diff --git a/.gitignore b/.gitignore
index 751553b..e7e69ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,10 @@
-*.bak
+# fish shell
+fish/dot-config/fish/completions/
+fish/dot-config/fish/conf.d/
+fish/dot-config/fish/functions/
+fish/dot-config/fish/themes/
+fish/dot-config/fish/fish_variables
+
+# Yazi file manager
+yazi/dot-config/yazi/flavors/
+yazi/dot-config/yazi/plugins/
diff --git a/README.md b/README.md
index 2247ddc..74d980d 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,16 @@
-# pancakes' setup
+# pancakes' config
-This is the setup that I use for my personal Arch Linux setup. This includes my ~~window manager~~ (I'm using GNOME atm) and frequently used software.
+A repo containing my current desktop setup with stow modules and just recipes.
-General install steps:
+## Dependencies
-```sh
-git clone https://codeberg.org/pancakes/config.git
-cd config
-just
-```
+- Arch Linux (or derivative)
+- just
-Each folder in the root of this repository functions as a module with files inside being stowed (symlinked) relative to `~`. For example, when stowing *river*, `river/.config/river/` is symlinked to `~/.config/river`, `river/.config/xdg-desktop-portal/river-portals.conf` to `~/.config/xdg-desktop-portal/river-portals.conf`, and `river/.config/xdg-desktop-portal-wlr/` to `~/.config/xdg-desktop-portal-wlr`.
+## Usage
+**WARNING:** All just recipes in this repository are destructive. Make sure you know what they do before using them.
+
+Clone the repository and run `just` in the repo directory for a list of recipes.
+
+You can use `just full-auto` or `just full-auto-gui` for fully automated setups. You can pick and choose recipes manually but you should `just packages` first to make sure Flatpak, Chaotic AUR, and paru are setup correctly.
diff --git a/fish/dot-config/fish/config.fish b/fish/dot-config/fish/config.fish
new file mode 100644
index 0000000..873b398
--- /dev/null
+++ b/fish/dot-config/fish/config.fish
@@ -0,0 +1,12 @@
+set -U fish_greeting
+
+if status is-interactive
+ # Commands to run in interactive sessions can go here
+
+ # Aliases
+ alias cat="bat"
+ alias ls="eza --group-directories-first -x"
+
+ # Load prompt (KEEP THIS AT THE END)
+ starship init fish | source
+end
diff --git a/fish/dot-config/fish/fish_plugins b/fish/dot-config/fish/fish_plugins
new file mode 100644
index 0000000..25e9cc5
--- /dev/null
+++ b/fish/dot-config/fish/fish_plugins
@@ -0,0 +1,3 @@
+franciscolourenco/done
+laughedelic/pisces
+gazorby/fish-abbreviation-tips
diff --git a/fish/dot-config/starship.toml b/fish/dot-config/starship.toml
new file mode 100644
index 0000000..85bfb36
--- /dev/null
+++ b/fish/dot-config/starship.toml
@@ -0,0 +1,22 @@
+# Get editor completions based on the config schema
+"$schema" = 'https://starship.rs/config-schema.json'
+
+format = "$directory$git_branch$git_status$character"
+right_format = "$cmd_duration$status"
+add_newline = true
+
+[character]
+success_symbol = "[❯](bold purple)"
+
+[cmd_duration]
+format = " [$duration]($style)"
+
+[git_branch]
+format = "[$branch(:$remote_branch)]($style) "
+
+[git_status]
+format = "([$all_status$ahead_behind]($style) )"
+
+[status]
+format = " [$status]($style)"
+disabled = false
diff --git a/foot/dot-config/foot/foot.ini b/foot/dot-config/foot/foot.ini
deleted file mode 100644
index d70f789..0000000
--- a/foot/dot-config/foot/foot.ini
+++ /dev/null
@@ -1,35 +0,0 @@
-[main]
-font=FiraCode Nerd Font:size=13
-box-drawings-uses-font-glyphs=yes
-
-[environment]
-RANGER_LOAD_DEFAULT_RC="FALSE"
-
-[bell]
-urgent=yes
-notify=yes
-visual=yes
-
-[mouse]
-hide-when-typing=yes
-
-[colors]
-foreground=a9b1d6
-background=1a1b26
-regular0=32344a
-regular1=f7768e
-regular2=9ece6a
-regular3=e0af68
-regular4=7aa2f7
-regular5=ad8ee6
-regular6=449dab
-regular7=787c99
-bright0=444b6a
-bright1=ff7a93
-bright2=b9f27c
-bright3=ff9e64
-bright4=7da6ff
-bright5=bb9af7
-bright6=0db9d7
-bright7=acb0d0
-alpha=0.9
\ No newline at end of file
diff --git a/helix/dot-config/helix/config.toml b/helix/dot-config/helix/config.toml
new file mode 100644
index 0000000..f7c0b31
--- /dev/null
+++ b/helix/dot-config/helix/config.toml
@@ -0,0 +1,15 @@
+theme = "tokyonight"
+
+[editor]
+cursorline = true
+popup-border = "all"
+
+[editor.cursor-shape]
+insert = "bar"
+
+[editor.indent-guides]
+render = true
+
+[editor.lsp]
+display-inlay-hints = true
+
diff --git a/helix/dot-config/helix/languages.toml b/helix/dot-config/helix/languages.toml
new file mode 100644
index 0000000..7342e67
--- /dev/null
+++ b/helix/dot-config/helix/languages.toml
@@ -0,0 +1,13 @@
+[[language]]
+name = "bash"
+auto-format = true
+
+[[language]]
+name = "xml"
+file-types = [ "xml", "svg", "xsd", "xslt", "xsl", "ui" ]
+auto-format = true
+formatter = { command = "xmllint", args = ["--format", "-"] }
+language-servers = [ "xml" ]
+
+[language-server.xml]
+command = "lemminx"
diff --git a/justfile b/justfile
index d807cf6..fa9f76e 100644
--- a/justfile
+++ b/justfile
@@ -1,108 +1,116 @@
-username := env_var('USER')
-
-# Displays this message
+[private]
default:
- @just --list --justfile {{justfile()}}
+ @just --list
-# Arch Linux package mirrors & timer for fetching best mirrors
-arch-mirrors:
- sudo reflector --country 'Australia,New Zealand,' --latest 15 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
- sudo systemctl enable --now reflector.timer
+_echoerror text:
+ @echo -e "{{ style("error") }}{{ text }}{{ NORMAL }}"
-# Arch User Repository
-aur:
- rustup install stable
- rm -rf /tmp/paru-git
- git clone https://aur.archlinux.org/paru-git.git /tmp/paru-git
- cd /tmp/paru-git; makepkg -si
- rm -rf /tmp/paru-git
+_echowarning text:
+ @echo -e "{{ style("warning") }}{{ text }}{{ NORMAL }}"
-# Essential CLI tools & utils
-cli:
- sudo pacman -S base-devel btop curl eza fastfetch ffmpeg fwupd fzf man-db man-pages nvtop openssh reflector ripgrep unrar vim vulkan-tools xdg-user-dirs yt-dlp
+full-auto: packages dev-setup fish-shell helix-editor yazi-file-manager
-# ranger terminal file browser
-cli-ranger:
- sudo pacman -S atool ffmpegthumbnailer highlight mediainfo p7zip transmission-cli unzip w3m zip
- paru -S ranger-git
- pipx install no_vtf python-bidi
+full-auto-gui: full-auto kitty-terminal niri-window-manager
- stow --dotfiles -S ranger
+# (Run first unless running full-auto) Setup Flatpak, pacman mirrors, Chaotic AUR, and paru AUR helper
+packages:
+ @just _echowarning "1) Installing Flatpak and adding Flathub repository"
+ sudo pacman -S flatpak flatpak-xdg-utils
+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
-codecs:
- sudo pacman -S gst-libav gst-plugin-va gst-plugins-bad gst-plugins-base gst-plugins-good gstreamer
+ @just _echowarning "\n2) Installing reflector (automatic mirror configuration)"
+ sudo pacman -S reflector
-# C#/.NET dev environment & Rider editor
-dev-csharp:
- sudo pacman -S aspnet-runtime aspnet-targeting-pack dotnet-sdk dotnet-runtime dotnet-targeting-pack
- sudo dotnet workload install wasm-tools
- paru -S rider
+ @just _echoerror "\n\n----- IMPORTANT -----\nPlease modify /etc/xdg/reflector/reflector.conf before continuing\n---------------------"
+ @read -p "Press enter to continue"
-# Node dev environment
-dev-node:
- sudo pacman -S nodejs npm
+ sudo systemctl enable --now reflector.timer
-# Python dev environment & PyCharm editor
-dev-python:
- sudo pacman -S pycharm-community-edition python python-pip python-pipx python-venv
-
- fish -c "fish_add_path $HOME/.local/bin"
+ @just _echowarning "\n3) Adding Chaotic AUR repository to pacman"
+ sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
+ sudo pacman-key --lsign-key 3056513887B78AEB
-# Rust dev environment
-dev-rust:
- sudo pacman -S rustup
- rustup install stable
+ sudo pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst'
+ sudo pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'
-# Docker container runtime
-docker:
- sudo pacman -S docker docker-compose
- sudo systemctl enable --now docker
+ @just _echoerror "\n\n----- IMPORTANT -----\nPlease add the following 2 lines to the end of /etc/pacman.conf before continuing\n\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist\n---------------------"
+ @read -p "Press enter to continue"
-# Flatpak & Flathub package repository
-flatpak:
- sudo pacman -S flatpak flatpak-xdg-utils
- flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
+ @just _echowarning "\n4) Installing paru AUR helper"
+ sudo pacman -Sy paru
-# Steam, Heroic, Prism Launcher, Gamescope, MangoHud & other utils
-games:
- sudo pacman -S goverlay mangohud steam ttf-liberation wine wine-gecko wine-mono winetricks wqy-zenhei
- paru -S protontricks
- flatpak install ca.parallel_launcher.ParallelLauncher com.heroicgameslauncher.hgl net.davidotek.pupgui2 org.prismlauncher.PrismLauncher
+# Programming languages, runtimes, toolchains, and git
+[group("essentials")]
+dev-setup:
+ @just _echowarning "1) Installing languages, runtimes, and toolchains"
+ paru -S aspnet-runtime aspnet-targeting-pack dotnet-sdk nodejs npm python3 rustup zig
-# git global config
-git:
- git config --global commit.gpgsign true
- git config --global init.defaultBranch "main"
- git config --global user.name "pancakes"
+ @just _echowarning "\n2) Installing Rust language"
+ rustup toolchain add stable-x86_64-unknown-linux-gnu
-# Syncthing file sync
-syncthing:
- sudo pacman -S syncthing
- systemctl enable --now --user syncthing
+ @just _echowarning "\n3) Setting git global config"
+ git config --global init.defaultBranch "main"
-# Tailscale private VPN
-tailscale:
- sudo pacman -S tailscale
- sudo systemctl enable --now tailscaled
- sudo tailscale up --operator={{username}} --ssh=true
+# fish shell and plugins
+[group("essentials")]
+fish-shell:
+ @just _echowarning "1) Installing fish, fish plugin manager, and Starship prompt"
+ paru -S fisher fish starship
-# window manager and required programs
-wm:
- sudo pacman -S bluez bluez-utils cliphist easyeffects firefox fuzzel gdm gnome-keyring gtklock hunspell hunspell-en_au hunspell-en_us mako niri noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra power-profiles-daemon swayidle swww ttf-firacode-nerd ttf-font-awesome waybar wl-clipboard xdg-desktop-portal-gnome
- paru -S xwayland-satellite
- flatpak install it.mijorus.smile
+ @just _echowarning "\n2) Stowing fish config"
+ stow --dotfiles -S fish
- sudo systemctl enable --now bluetooth
- sudo systemctl enable gdm
- sudo systemctl enable --now power-profiles-daemon
+ @just _echowarning "\n3) Setting user shell"
+ chsh -s /usr/bin/fish
- stow --dotfiles -S wm
+ @just _echowarning "\n4) Installing fish plugins"
+ fish -c "fisher update"
+
+[group("essentials")]
+helix-editor:
+ @just _echowarning "1) Installing Helix and dependencies"
+ paru -S bash-language-server clang fish-lsp helix just-lsp lemminx marksman python-lsp-server shfmt taplo-cli typescript-language-server vscode-css-languageserver vscode-html-languageserver vscode-json-languageserver yaml-language-server zls
+
+ @just _echowarning "\n2) Stowing Helix config"
+ stow --dotfiles -S helix
+
+[group("graphical")]
+kitty-terminal:
+ @just _echowarning "1) Installing Kitty and dependencies"
+ paru -S imagemagick kitty python-pygments ttf-firacode-nerd
+
+ @just _echowarning "\n2) Stowing Kitty config"
+ stow --dotfiles -S kitty
+
+# Install niri and tools used with it
+[group("graphical")]
+niri-window-manager:
+ @just _echowarning "1) Installing niri and related tools"
+ paru -S cliphist fuzzel gdm gnome-keyring niri-git noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra polkit-kde-agent swayidle swaylock swaync ttf-firacode-nerd ttf-font-awesome waybar wl-clipboard wlsunset wpaperd xdg-desktop-portal-gnome xwayland-satellite-git
+
+ @just _echowarning "\n2) Stowing niri config"
+ stow --dotfiles -S niri
+
+ @just _echowarning "\n3) Enabling GNOME display manager service"
+ sudo systemctl enable gdm
+
+[group("other")]
+syncthing-file-sync:
+ @just _echowarning "1) Installing Syncthing"
+ paru -S syncthing
+
+ @just _echowarning "\n2) Enabling and starting Syncthing user service"
+ systemctl enable --now --user syncthing
+
+# Yazi terminal file manager and plugins
+[group("essentials")]
+yazi-file-manager:
+ @just _echowarning "1) Installing Yazi and dependencies"
+ paru -S 7zip fd ffmpeg fzf imagemagick jq poppler resvg ripgrep wl-clipboard yazi zoxide
+
+ @just _echowarning "\n2) Stowing Yazi config"
+ stow --dotfiles -S yazi
+
+ @just _echowarning "\n3) Installing Yazi plugins"
+ ya pkg install
-zsh:
- sudo pacman -S zsh
- chsh -s /usr/bin/zsh
- curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh
- mv ~/.zimrc ~/.zimrc.old
- mv ~/.zshenv ~/.zshenv.old
- mv ~/.zshrc ~/.zshrc.old
- stow --dotfiles -S zsh
diff --git a/kitty/dot-config/kitty/Tokyo Night.conf b/kitty/dot-config/kitty/Tokyo Night.conf
new file mode 100644
index 0000000..f2d9728
--- /dev/null
+++ b/kitty/dot-config/kitty/Tokyo Night.conf
@@ -0,0 +1,50 @@
+# vim:ft=kitty
+
+## name: Tokyo Night
+## license: MIT
+## author: Folke Lemaitre
+## upstream: https://github.com/folke/tokyonight.nvim/raw/main/extras/kitty/tokyonight_night.conf
+
+
+background #1a1b26
+foreground #c0caf5
+selection_background #283457
+selection_foreground #c0caf5
+url_color #73daca
+cursor #c0caf5
+cursor_text_color #1a1b26
+
+# Tabs
+active_tab_background #7aa2f7
+active_tab_foreground #16161e
+inactive_tab_background #292e42
+inactive_tab_foreground #545c7e
+#tab_bar_background #15161e
+
+# Windows
+active_border_color #7aa2f7
+inactive_border_color #292e42
+
+# normal
+color0 #15161e
+color1 #f7768e
+color2 #9ece6a
+color3 #e0af68
+color4 #7aa2f7
+color5 #bb9af7
+color6 #7dcfff
+color7 #a9b1d6
+
+# bright
+color8 #414868
+color9 #f7768e
+color10 #9ece6a
+color11 #e0af68
+color12 #7aa2f7
+color13 #bb9af7
+color14 #7dcfff
+color15 #c0caf5
+
+# extended colors
+color16 #ff9e64
+color17 #db4b4b
diff --git a/kitty/dot-config/kitty/kitty.conf b/kitty/dot-config/kitty/kitty.conf
new file mode 100644
index 0000000..870531a
--- /dev/null
+++ b/kitty/dot-config/kitty/kitty.conf
@@ -0,0 +1,25 @@
+# Theme
+include Tokyo Night.conf
+
+# Fonts
+font_family FiraCode Nerd Font
+font_size 12.0
+
+# Bell
+enable_audio_bell no
+window_alert_on_bell yes
+
+# Window
+enabled_layouts tall:bias=50;full_size=1;mirrored=false
+draw_minimal_borders no
+wayland_titlebar_color background
+
+# Keymaps
+map alt+shift+enter launch --cwd=current
+map alt+q close_window
+map alt+n layout_action bias 50 62 70
+
+map alt+h neighboring_window left
+map alt+j neighboring_window down
+map alt+k neighboring_window up
+map alt+l neighboring_window right
diff --git a/niri/dot-config/fuzzel/fuzzel.ini b/niri/dot-config/fuzzel/fuzzel.ini
new file mode 100644
index 0000000..3821fc0
--- /dev/null
+++ b/niri/dot-config/fuzzel/fuzzel.ini
@@ -0,0 +1,26 @@
+font=Inter
+use-bold=yes
+placeholder=run
+prompt="❯ "
+anchor=top
+y-margin=20
+lines=10
+tabs=4
+horizontal-pad=8
+vertical-pad=8
+inner-pad=8
+
+[colors]
+background=1a1b26e5
+text=c0caf5ff
+prompt=bb9af7ff
+placeholder=c4a7e770
+input=c0caf5ff
+selection=bb9af7ff
+selection-text=15161e70
+selection-match=232136ff
+border=bb9af7ff
+
+[border]
+width=2
+radius=5
diff --git a/wm/dot-config/niri/config.kdl b/niri/dot-config/niri/config.kdl
similarity index 51%
rename from wm/dot-config/niri/config.kdl
rename to niri/dot-config/niri/config.kdl
index 0a2617d..021d585 100644
--- a/wm/dot-config/niri/config.kdl
+++ b/niri/dot-config/niri/config.kdl
@@ -1,27 +1,13 @@
-// This config is in the KDL format: https://kdl.dev
-// "/-" comments out the following node.
-// Check the wiki for a full description of the configuration:
-// https://github.com/YaLTeR/niri/wiki/Configuration:-Overview
+debug {
+ disable-cursor-plane
+}
-// Input device configuration.
-// Find the full list of options on the wiki:
-// https://github.com/YaLTeR/niri/wiki/Configuration:-Input
input {
- keyboard {
- xkb {
- // You can set rules, model, layout, variant and options.
- // For more information, see xkeyboard-config(7).
-
- // For example:
- // layout "us,ru"
- // options "grp:win_space_toggle,compose:ralt,ctrl:nocaps"
- }
- }
-
touchpad {
tap
// dwt
// dwtp
+ drag-lock
natural-scroll
scroll-method "two-finger"
disabled-on-external-mouse
@@ -30,100 +16,104 @@ input {
mouse {
accel-profile "flat"
}
-
- // warp-mouse-to-focus
}
// You can configure outputs by their name, which you can find
// by running `niri msg outputs` while inside a niri instance.
-// Remember to uncomment the node by removing "/-"!
+
output "eDP-1" {
scale 1.5
+ transform "normal"
+ // position x=1280 y=0
}
output "LG Electronics LG ULTRAGEAR 404NTCZ0R931" {
scale 1.5
- // variable-refresh-rate
+ variable-refresh-rate on-demand=true
}
-// Settings that influence how windows are positioned and sized.
-// Find more information on the wiki:
-// https://github.com/YaLTeR/niri/wiki/Configuration:-Layout
layout {
- // Set gaps around windows in logical pixels.
gaps 10
- // When to center a column when changing focus, options are:
- // - "never", default behavior, focusing an off-screen column will keep at the left
- // or right edge of the screen.
- // - "always", the focused column will always be centered.
- // - "on-overflow", focusing a column will center it if it doesn't fit
- // together with the previously focused column.
center-focused-column "on-overflow"
+ always-center-single-column
- // You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
preset-column-widths {
- // Proportion sets the width as a fraction of the output width, taking gaps into account.
- // For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
- // The default preset widths are 1/3, 1/2 and 2/3 of the output.
- proportion 0.33333
- proportion 0.5
- proportion 0.66667
-
- // Fixed sets the width in logical pixels exactly.
- // fixed 1920
- }
-
- // You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between.
- preset-window-heights {
proportion 0.33333
proportion 0.5
proportion 0.66667
}
- // You can change the default width of the new windows.
- // default-column-width { proportion 0.5; }
- // If you leave the brackets empty, the windows themselves will decide their initial width.
- default-column-width {}
+ default-column-width { proportion 0.5; }
focus-ring {
- off
+ off
}
border {
width 2
active-color "#bb9af7"
- inactive-color "#565f89"
+ inactive-color "#414868"
+ }
+
+ shadow {
+ on
+ softness 30
+ spread 5
+ offset x=0 y=5
+ color "#0007"
+ }
+
+ tab-indicator {
+ place-within-column
+ gap 4
+ width 4
+ gaps-between-tabs 4
+ corner-radius 5
+ }
+
+ background-color "transparent"
+}
+
+hotkey-overlay {
+ skip-at-startup
+}
+
+overview {
+ workspace-shadow {
+ off
}
}
-environment {
- DISPLAY ":10"
- MOZ_ENABLE_WAYLAND "1"
- MOZ_USE_XINPUT2 "1"
-}
-
-// Add lines like this to spawn processes at startup.
-// Note that running niri as a session supports xdg-desktop-autostart
-
-// Services
-spawn-at-startup "mako"
-spawn-at-startup "xwayland-satellite" ":10"
+// Utilities
+spawn-at-startup "/usr/lib/polkit-kde-authentication-agent-1"
spawn-at-startup "swayidle" "-w"
+spawn-at-startup "wlsunset" "-l" "-27.4" "-L" "153"
+spawn-at-startup "wpaperd" "-d"
+spawn-at-startup "swaync"
spawn-at-startup "waybar"
-spawn-at-startup "swww-daemon"
+spawn-at-startup "udiskie"
spawn-at-startup "wl-paste" "--watch" "cliphist" "store"
+spawn-at-startup "cliphist" "wipe"
spawn-at-startup "flatpak" "run" "it.mijorus.smile" "--start-hidden"
-// Applications
-spawn-at-startup "firefox"
-spawn-at-startup "easyeffects"
-spawn-at-startup "vesktop"
-spawn-at-startup "foot" "-e" "btop"
+environment {
+ CLIPHIST_MAX_ITEMS "20"
+ ELECTRON_OZONE_PLATFORM_HINT "auto"
+ PROTON_ENABLE_WAYLAND "1"
+ TERMINAL "kitty"
+}
+
+cursor {
+ xcursor-theme "Adwaita"
+ xcursor-size 24
+}
+
+workspace "web"
+workspace "chat"
+workspace "dev"
+workspace "games"
-// Uncomment this line to ask the clients to omit their client-side decorations if possible.
-// If the client will specifically ask for CSD, the request will be honored.
-// Additionally, clients will be informed that they are tiled, removing some rounded corners.
prefer-no-csd
// You can change the path where screenshots are saved.
@@ -131,84 +121,132 @@ prefer-no-csd
// The path is formatted with strftime(3) to give you the screenshot date and time.
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
-// You can also set this to null to disable saving screenshots to disk.
-// screenshot-path null
-
-// Animation settings.
-// The wiki explains how to configure individual animations:
-// https://github.com/YaLTeR/niri/wiki/Configuration:-Animations
-animations {
- // Uncomment to turn off all animations.
- // off
-
- // Slow down all animations by this factor. Values below 1 speed them up instead.
- // slowdown 3.0
-}
-
-workspace "web"
-workspace "chat"
-
// Window rules let you adjust behavior for individual windows.
// Find more information on the wiki:
// https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules
-// Round corners
+// Make windows open floating
+window-rule {
+ match app-id=r#"^it\.mijorus\.smile$"#
+
+ open-floating true
+}
+
+// Open the Firefox picture-in-picture player as floating by default.
+window-rule {
+ match app-id=r#"firefox"# title="^Picture-in-Picture$"
+
+ open-floating true
+}
+
+// Block out windows from screen capture
+window-rule {
+ match app-id=r#"discord"#
+
+ block-out-from "screencast"
+}
+
+// Display Steam notifications in corner of the screen
+window-rule {
+ match app-id="steam" title=r#"^notificationtoasts_\d+_desktop$"#
+
+ default-floating-position x=0 y=0 relative-to="bottom-right"
+}
+
+// Open windows in web workspace
+window-rule {
+ match app-id=r#"firefox$"# at-startup=true
+ match app-id=r#"thunderbird$"#
+
+ open-on-workspace "web"
+}
+
+// Open windows in chat workspace
+window-rule {
+ match app-id="discord"
+
+ open-on-workspace "chat"
+}
+
+// Open windows in games workspace
+window-rule {
+ match app-id="gamescope"
+ match app-id=r#"PrismLauncher$"#
+ match app-id="steam"
+
+ open-on-workspace "games"
+}
+
+// Dont auto focus
+window-rule {
+ match app-id="steam"
+
+ open-focused false
+}
+
+// Maximize at startup
+window-rule {
+ match app-id=r#"firefox$"# at-startup=true
+ match app-id="discord" at-startup=true
+ match app-id="steam" at-startup=true
+
+ open-maximized true
+}
+
+// Enable rounded corners for all windows.
window-rule {
geometry-corner-radius 5
clip-to-geometry true
}
-// Firefox
+// Indicate screencasted windows with red colors.
window-rule {
- match app-id="firefox"
+ match is-window-cast-target=true
- open-on-workspace "web"
+ border {
+ active-color "#ff0000"
+ inactive-color "#aa0000"
+ }
+
+ shadow {
+ color "#aa0000"
+ }
+
+ tab-indicator {
+ active-color "#ff0000"
+ inactive-color "#aa0000"
+ }
}
-// Chat applications
-window-rule {
- match app-id="vesktop"
+// Enable shadows on launcher and notifications
+layer-rule {
+ match namespace="^launcher$"
- block-out-from "screencast"
- open-maximized true
- open-on-workspace "chat"
+ shadow {
+ on
+ }
+
+ geometry-corner-radius 5
}
-window-rule {
- match app-id="com.github.wwmm.easyeffects"
+layer-rule {
+ match namespace=r#"^wpaperd-"#
- open-on-workspace "chat"
+ place-within-backdrop true
}
-// Steam
-window-rule {
- match app-id="steam" title="Steam"
-
- open-maximized true
-}
-
-window-rule {
- match app-id="gamescope"
-
- open-fullscreen true
-}
-
-// foot
-window-rule {
- match app-id="foot"
-
- default-column-width { proportion 0.5; }
-}
-
-// Hide private stuff :3
-window-rule {
- match app-id="firefox" title=r#"^Extension: \(Bitwarden Password Manager\)"#
- match app-id="org.gnome.Nautilus"
+// Block out mako notifications from screencasts.
+layer-rule {
+ match namespace="swaync-notification-window"
block-out-from "screencast"
}
binds {
+ // Keys consist of modifiers separated by + signs, followed by an XKB key name
+ // in the end. To find an XKB name for a particular key, you may use a program
+ // like wev.
+ //
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
// when running as a winit window.
@@ -216,23 +254,35 @@ binds {
// shows a list of important hotkeys.
Mod+Shift+Slash { show-hotkey-overlay; }
- Mod+Return { spawn "foot"; }
- Mod+D { spawn "fuzzel"; }
- Mod+E { spawn "foot" "-e" "ranger"; }
- Mod+Alt+L { spawn "gtklock" "-d"; }
- Mod+V { spawn "sh" "-c" "cliphist list | fuzzel -d -p '> ' --placeholder=clipboard | cliphist decode | wl-copy"; }
- Mod+slash { spawn "flatpak" "run" "it.mijorus.smile"; }
+ // Suggested binds for running programs: terminal, app launcher, screen locker.
+ Mod+Return { spawn "kitty"; }
+ Mod+D { spawn "fuzzel"; }
+ Mod+V hotkey-overlay-title="Manage clipboard" { spawn "sh" "-c" "cliphist list | fuzzel --dmenu --placeholder clipboard --with-nth 2 | cliphist decode | wl-copy"; }
+ Super+Alt+L { spawn "swaylock"; }
+ Mod+E { spawn "kitty" "-e" "yazi"; }
+ Mod+Shift+E { spawn "nautilus"; }
+ Mod+Shift+D { spawn "emacsclient" "--alternate-editor=" "--create-frame"; }
+ Mod+Period { spawn "flatpak" "run" "it.mijorus.smile"; }
+ Control+Shift+Escape { spawn "kitty" "-e" "btop"; }
+ // You can also use a shell. Do this if you need pipes, multiple commands, etc.
+ // Note: the entire command goes as a single argument in the end.
+ // Mod+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; }
+
+ // Volume keys mappings for PipeWire & WirePlumber.
XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; }
XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
+ Alt+F4 { close-window; }
Mod+Shift+Q { close-window; }
+ Mod+O { toggle-overview; }
+
Mod+H { focus-column-left; }
- Mod+J { focus-window-down; }
- Mod+K { focus-window-up; }
+ Mod+J { focus-window-down-or-top; }
+ Mod+K { focus-window-up-or-bottom; }
Mod+L { focus-column-right; }
Mod+Shift+H { move-column-left; }
@@ -240,16 +290,19 @@ binds {
Mod+Shift+K { move-window-up; }
Mod+Shift+L { move-column-right; }
- Mod+Home { focus-column-first; }
- Mod+End { focus-column-last; }
+ Mod+Home { focus-column-first; }
+ Mod+End { focus-column-last; }
Mod+Shift+Home { move-column-to-first; }
Mod+Shift+End { move-column-to-last; }
- Mod+Page_Down { focus-workspace-down; }
+ Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+U { focus-workspace-down; }
Mod+I { focus-workspace-up; }
-
+ Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
+ Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
+ Mod+Ctrl+U { move-column-to-workspace-down; }
+ Mod+Ctrl+I { move-column-to-workspace-up; }
Mod+Shift+Page_Down { move-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }
@@ -269,15 +322,11 @@ binds {
Mod+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; }
- Mod+Ctrl+WheelScrollRight { move-column-right; }
- Mod+Ctrl+WheelScrollLeft { move-column-left; }
// Usually scrolling up and down with Shift in applications results in
// horizontal scrolling; these binds replicate that.
Mod+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
- Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
- Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
// Similarly, you can bind touchpad scroll "ticks".
// Touchpad scrolling is continuous, so for these binds it is split into
@@ -305,23 +354,32 @@ binds {
Mod+7 { focus-workspace 7; }
Mod+8 { focus-workspace 8; }
Mod+9 { focus-workspace 9; }
- Mod+Shift+1 { move-window-to-workspace 1; }
- Mod+Shift+2 { move-window-to-workspace 2; }
- Mod+Shift+3 { move-window-to-workspace 3; }
- Mod+Shift+4 { move-window-to-workspace 4; }
- Mod+Shift+5 { move-window-to-workspace 5; }
- Mod+Shift+6 { move-window-to-workspace 6; }
- Mod+Shift+7 { move-window-to-workspace 7; }
- Mod+Shift+8 { move-window-to-workspace 8; }
- Mod+Shift+9 { move-window-to-workspace 9; }
+ Mod+Shift+1 { move-column-to-workspace 1; }
+ Mod+Shift+2 { move-column-to-workspace 2; }
+ Mod+Shift+3 { move-column-to-workspace 3; }
+ Mod+Shift+4 { move-column-to-workspace 4; }
+ Mod+Shift+5 { move-column-to-workspace 5; }
+ Mod+Shift+6 { move-column-to-workspace 6; }
+ Mod+Shift+7 { move-column-to-workspace 7; }
+ Mod+Shift+8 { move-column-to-workspace 8; }
+ Mod+Shift+9 { move-column-to-workspace 9; }
+
+ Mod+Ctrl+1 { move-window-to-workspace 1; }
+ Mod+Ctrl+2 { move-window-to-workspace 2; }
+ Mod+Ctrl+3 { move-window-to-workspace 3; }
+ Mod+Ctrl+4 { move-window-to-workspace 4; }
+ Mod+Ctrl+5 { move-window-to-workspace 5; }
+ Mod+Ctrl+6 { move-window-to-workspace 6; }
+ Mod+Ctrl+7 { move-window-to-workspace 7; }
+ Mod+Ctrl+8 { move-window-to-workspace 8; }
+ Mod+Ctrl+9 { move-window-to-workspace 9; }
// Switches focus between the current and the previous workspace.
- // Mod+Tab { focus-workspace-previous; }
+ Mod+Tab { focus-workspace-previous; }
- Mod+Comma { consume-window-into-column; }
- Mod+Period { expel-window-from-column; }
-
- // There are also commands that consume or expel a single window to the side.
+ // The following binds move the focused window in and out of a column.
+ // If the window is alone, they will consume it into the nearby column to the side.
+ // If the window is already in a column, they will expel it out.
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
@@ -330,6 +388,11 @@ binds {
Mod+Ctrl+R { reset-window-height; }
Mod+F { maximize-column; }
Mod+Shift+F { fullscreen-window; }
+
+ // Expand the focused column to space not taken up by other fully visible columns.
+ // Makes the column "fill the rest of the space".
+ Mod+Ctrl+F { expand-column-to-available-width; }
+
Mod+C { center-column; }
// Finer width adjustments.
@@ -347,6 +410,15 @@ binds {
Mod+Shift+Minus { set-window-height "-10%"; }
Mod+Shift+Equal { set-window-height "+10%"; }
+ // Move the focused window between the floating and the tiling layout.
+ Mod+B { toggle-window-floating; }
+ Mod+Shift+B { switch-focus-between-floating-and-tiling; }
+
+ // Toggle tabbed column display mode.
+ // Windows in this column will appear as vertical tabs,
+ // rather than stacked on top of each other.
+ Mod+W { toggle-column-tabbed-display; }
+
// Actions to switch layouts.
// Note: if you uncomment these, make sure you do NOT have
// a matching layout switch hotkey configured in xkb options above.
@@ -355,19 +427,29 @@ binds {
// Mod+Space { switch-layout "next"; }
// Mod+Shift+Space { switch-layout "prev"; }
- Print { screenshot; }
- Ctrl+Print { screenshot-screen; }
- Alt+Print { screenshot-window; }
+ Print { screenshot; }
+ Shift+Print { screenshot-screen; }
+ Alt+Print { screenshot-window; }
+
+ Mod+Alt+Return { set-dynamic-cast-window; }
+ Mod+Alt+Shift+Return { set-dynamic-cast-monitor; }
+ Mod+Alt+Shift+Backspace { clear-dynamic-cast-target; }
+
+ // Applications such as remote-desktop clients and software KVM switches may
+ // request that niri stops processing the keyboard shortcuts defined here
+ // so they may, for example, forward the key presses as-is to a remote machine.
+ // It's a good idea to bind an escape hatch to toggle the inhibitor,
+ // so a buggy application can't hold your session hostage.
+ //
+ // The allow-inhibiting=false property can be applied to other binds as well,
+ // which ensures niri always processes them, even when an inhibitor is active.
+ Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
// The quit action will show a confirmation dialog to avoid accidental exits.
- Mod+Shift+E { quit; }
+ Mod+Shift+Escape { quit; }
+ Ctrl+Alt+Delete { quit; }
// Powers off the monitors. To turn them back on, do any input like
// moving the mouse or pressing any other key.
Mod+Shift+P { power-off-monitors; }
}
-
-hotkey-overlay {
- skip-at-startup
-}
-
diff --git a/niri/dot-config/swayidle/config b/niri/dot-config/swayidle/config
new file mode 100644
index 0000000..3e7aa2b
--- /dev/null
+++ b/niri/dot-config/swayidle/config
@@ -0,0 +1,4 @@
+timeout 300 swaylock
+timeout 600 "niri msg action power-off-monitors"
+before-sleep swaylock
+lock swaylock
diff --git a/niri/dot-config/swaylock/config b/niri/dot-config/swaylock/config
new file mode 100644
index 0000000..858bb4b
--- /dev/null
+++ b/niri/dot-config/swaylock/config
@@ -0,0 +1,7 @@
+ignore-empty-password
+show-failed-attempts
+daemonize
+color=232136
+font=Inter
+font-size=12
+indicator-thickness=8
diff --git a/niri/dot-config/waybar/config.jsonc b/niri/dot-config/waybar/config.jsonc
new file mode 100644
index 0000000..232dd61
--- /dev/null
+++ b/niri/dot-config/waybar/config.jsonc
@@ -0,0 +1,103 @@
+// -*- mode: jsonc -*-
+{
+ "layer": "top",
+ "spacing": 8,
+ "modules-left": [
+ "niri/workspaces",
+ "privacy",
+ "niri/window"
+ ],
+ "modules-center": [
+ "clock"
+ ],
+ "modules-right": [
+ "tray",
+ "idle_inhibitor",
+ "battery",
+ "power-profiles-daemon",
+ "wireplumber",
+ "bluetooth",
+ "network",
+ "custom/notifications"
+ ],
+ "niri/workspaces": {
+ "format": "{icon}",
+ "format-icons": {
+ "web": "",
+ "chat": "",
+ "dev": "",
+ "games": ""
+ }
+ },
+ "privacy": {
+ "icon-size": 12
+ },
+ "clock": {
+ "format": "{:%a %H:%M}",
+ "tooltip-format": "{calendar}",
+ "calendar": {
+ "format": {
+ "today": "{}"
+ }
+ }
+ },
+ "tray": {
+ "spacing": 4,
+ "reverse-direction": true
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "",
+ "deactivated": ""
+ }
+ },
+ "battery": {
+ "format": "{icon} {capacity}%"
+ },
+ "power-profiles-daemon": {
+ "format-icons": {
+ "default": "",
+ "performance": "",
+ "balanced": "",
+ "power-saver": ""
+ }
+ },
+ "wireplumber": {
+ "format": "{icon} {volume}%",
+ "format-muted": " Muted",
+ "format-icons": ["", "", ""]
+ },
+ "bluetooth": {
+ "format-disabled": "",
+ "format-connected": " {num_connections}"
+ },
+ "network": {
+ "format-ethernet": " Wired",
+ "format-wifi": " {essid}",
+ "format-disconnected": " Disconnected",
+ "tooltip-format-ethernet": "Interface: {ifname}\nIP: {ipaddr}\nGateway: {gwaddr}",
+ "tooltip-format-wifi": "{frequency}GHz {signalStrength}%\n\nInterface: {ifname}\nIP: {ipaddr}\nGateway: {gwaddr}",
+ "tooltip-format-disconnected": ""
+ },
+ "custom/notifications": {
+ "exec": "swaync-client -swb",
+ "exec-if": "which swaync-client",
+ "return-type": "json",
+ "format": "{icon}",
+ "format-icons": {
+ "notification": "",
+ "none": "",
+ "dnd-notification": "",
+ "dnd-none": "",
+ "inhibited-notification": "",
+ "inhibited-none": "",
+ "dnd-inhibited-notification": "",
+ "dnd-inhibited-none": ""
+ },
+ "on-click": "swaync-client -t -sw",
+ "on-click-right": "swaync-client -d -sw",
+ "tooltip-format": "Notifications",
+ "escape": true
+ }
+}
diff --git a/niri/dot-config/waybar/style.css b/niri/dot-config/waybar/style.css
new file mode 100644
index 0000000..8ad17d9
--- /dev/null
+++ b/niri/dot-config/waybar/style.css
@@ -0,0 +1,130 @@
+* {
+ /* `otf-font-awesome` is required to be installed for icons */
+ font-family: FontAwesome, Inter, sans-serif;
+ font-size: 12px;
+}
+
+window#waybar {
+ background-color: rgba(26, 27, 38, 0.95);
+ color: #c0caf5;
+ transition-property: background-color;
+ transition-duration: .5s;
+}
+
+button {
+ /* Avoid rounded borders under each button name */
+ border: none;
+ border-radius: 0;
+ padding: 0 4px;
+}
+
+/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+button:hover {
+ background: inherit;
+ box-shadow: inset 0 0 transparent;
+}
+
+#workspaces button {
+ background-color: transparent;
+ color: #ffffff;
+}
+
+#workspaces button:hover {
+ background: rgba(0, 0, 0, 0.2);
+}
+
+#workspaces button.focused {
+ background-color: #bb9af7;
+ color: #15161e;
+}
+
+#workspaces button.urgent {
+ background-color: #e0af68;
+ color: #15161e;
+}
+
+#clock,
+#battery,
+#network,
+#wireplumber,
+#tray,
+#idle_inhibitor,
+#power-profiles-daemon,
+#custom-notifications {
+ padding: 0 4px;
+ min-width: 1.5em;
+ color: #c0caf5;
+}
+
+#window,
+#workspaces {
+ margin: 0 4px;
+}
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left > widget:first-child > #workspaces {
+ margin-left: 0;
+}
+
+#clock {
+ font-weight: bold;
+}
+
+#battery.charging, #battery.plugged {
+ background-color: #9ece6a;
+ color: #15161e;
+}
+
+#battery.critical:not(.charging) {
+ background-color: #f7768e;
+ color: #15161e;
+}
+
+#power-profiles-daemon.performance {
+ background-color: #e0af68;
+ color: #15161e;
+}
+
+#power-profiles-daemon.power-saver {
+ background-color: #9ece6a;
+ color: #15161e;
+}
+
+label:focus {
+ background-color: #000000;
+}
+
+#network.disconnected {
+ background-color: #f7768e;
+ color: #15161e;
+}
+
+#wireplumber.muted {
+ background-color: #f7768e;
+ color: #15161e;
+}
+
+#tray > .passive {
+ -gtk-icon-effect: dim;
+}
+
+#tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #e0af68;
+ color: #15161e;
+}
+
+#idle_inhibitor.activated {
+ background-color: #e0af68;
+ color: #15161e;
+}
+
+#privacy {
+ padding: 0;
+}
+
+#privacy-item {
+ padding: 0 4px;
+ background-color: #e0af68;
+ color: #15161e;
+}
diff --git a/niri/dot-config/wpaperd/config.toml b/niri/dot-config/wpaperd/config.toml
new file mode 100644
index 0000000..bfdbea2
--- /dev/null
+++ b/niri/dot-config/wpaperd/config.toml
@@ -0,0 +1,7 @@
+[default]
+duration = "1h"
+mode = "center"
+initial-transition = false
+
+[any]
+path = "~/Pictures/Wallpapers"
diff --git a/ranger/dot-config/ranger/rc.conf b/ranger/dot-config/ranger/rc.conf
deleted file mode 100644
index 9ea8e37..0000000
--- a/ranger/dot-config/ranger/rc.conf
+++ /dev/null
@@ -1,757 +0,0 @@
-# ===================================================================
-# This file contains the default startup commands for ranger.
-# To change them, it is recommended to create either /etc/ranger/rc.conf
-# (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom
-# commands there.
-#
-# If you copy this whole file there, you may want to set the environment
-# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
-#
-# The purpose of this file is mainly to define keybindings and settings.
-# For running more complex python code, please create a plugin in "plugins/" or
-# a command in "commands.py".
-#
-# Each line is a command that will be run before the user interface
-# is initialized. As a result, you can not use commands which rely
-# on the UI such as :delete or :mark.
-# ===================================================================
-
-# ===================================================================
-# == Options
-# ===================================================================
-
-# Which viewmode should be used? Possible values are:
-# miller: Use miller columns which show multiple levels of the hierarchy
-# multipane: Midnight-commander like multipane view showing all tabs next
-# to each other
-set viewmode miller
-#set viewmode multipane
-
-# How many columns are there, and what are their relative widths?
-set column_ratios 1,3,4
-
-# Which files should be hidden? (regular expression)
-set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
-
-# Show hidden files? You can toggle this by typing 'zh'
-set show_hidden false
-
-# Ask for a confirmation when running the "delete" command?
-# Valid values are "always", "never", "multiple" (default)
-# With "multiple", ranger will ask only if you delete multiple files at once.
-set confirm_on_delete always
-
-# Use non-default path for file preview script?
-# ranger ships with scope.sh, a script that calls external programs (see
-# README.md for dependencies) to preview images, archives, etc.
-#set preview_script ~/.config/ranger/scope.sh
-
-# Use the external preview script or display simple plain text or image previews?
-set use_preview_script true
-
-# Automatically count files in the directory, even before entering them?
-set automatically_count_files true
-
-# Open all images in this directory when running certain image viewers
-# like feh or sxiv? You can still open selected files by marking them.
-set open_all_images true
-
-# Be aware of version control systems and display information.
-set vcs_aware false
-
-# State of the four backends git, hg, bzr, svn. The possible states are
-# disabled, local (only show local info), enabled (show local and remote
-# information).
-set vcs_backend_git enabled
-set vcs_backend_hg disabled
-set vcs_backend_bzr disabled
-set vcs_backend_svn disabled
-
-# Truncate the long commit messages to this length when shown in the statusbar.
-set vcs_msg_length 50
-
-# Use one of the supported image preview protocols
-set preview_images true
-
-# Set the preview image method. Supported methods:
-#
-# * w3m (default):
-# Preview images in full color with the external command "w3mimgpreview"?
-# This requires the console web browser "w3m" and a supported terminal.
-# It has been successfully tested with "xterm" and "urxvt" without tmux.
-#
-# * iterm2:
-# Preview images in full color using iTerm2 image previews
-# (http://iterm2.com/images.html). This requires using iTerm2 compiled
-# with image preview support.
-#
-# This feature relies on the dimensions of the terminal's font. By default, a
-# width of 8 and height of 11 are used. To use other values, set the options
-# iterm2_font_width and iterm2_font_height to the desired values.
-#
-# * terminology:
-# Previews images in full color in the terminology terminal emulator.
-# Supports a wide variety of formats, even vector graphics like svg.
-#
-# * urxvt:
-# Preview images in full color using urxvt image backgrounds. This
-# requires using urxvt compiled with pixbuf support.
-#
-# * urxvt-full:
-# The same as urxvt but utilizing not only the preview pane but the
-# whole terminal window.
-#
-# * kitty:
-# Preview images in full color using kitty image protocol.
-# Requires python PIL or pillow library.
-# If ranger does not share the local filesystem with kitty
-# the transfer method is changed to encode the whole image;
-# while slower, this allows remote previews,
-# for example during an ssh session.
-# Tmux is unsupported.
-#
-# * ueberzug:
-# Preview images in full color with the external command "ueberzug".
-# Images are shown by using a child window.
-# Only for users who run X11 in GNU/Linux.
-set preview_images_method sixel
-
-# Delay in seconds before displaying an image with the w3m method.
-# Increase it in case of experiencing display corruption.
-set w3m_delay 0.02
-
-# Manually adjust the w3mimg offset when using a terminal which needs this
-set w3m_offset 0
-
-# Default iTerm2 font size (see: preview_images_method: iterm2)
-set iterm2_font_width 8
-set iterm2_font_height 11
-
-# Use a unicode "..." character to mark cut-off filenames?
-set unicode_ellipsis true
-
-# BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic).
-# Requires the python-bidi pip package
-set bidi_support true
-
-# Show dotfiles in the bookmark preview box?
-set show_hidden_bookmarks true
-
-# Which colorscheme to use? These colorschemes are available by default:
-# default, jungle, snow, solarized
-set colorscheme default
-
-# Preview files on the rightmost column?
-# And collapse (shrink) the last column if there is nothing to preview?
-set preview_files true
-set preview_directories true
-set collapse_preview true
-
-# Wrap long lines in plain text previews?
-set wrap_plaintext_previews true
-
-# Save the console history on exit?
-set save_console_history true
-
-# Draw the status bar on top of the browser window (default: bottom)
-set status_bar_on_top false
-
-# Draw a progress bar in the status bar which displays the average state of all
-# currently running tasks which support progress bars?
-set draw_progress_bar_in_status_bar true
-
-# Draw borders around columns? (separators, outline, both, or none)
-# Separators are vertical lines between columns.
-# Outline draws a box around all the columns.
-# Both combines the two.
-set draw_borders separators
-
-# Display the directory name in tabs?
-set dirname_in_tabs true
-
-# Enable the mouse support?
-set mouse_enabled true
-
-# Display the file size in the main column or status bar?
-set display_size_in_main_column true
-set display_size_in_status_bar true
-
-# Display the free disk space in the status bar?
-set display_free_space_in_status_bar true
-
-# Display files tags in all columns or only in main column?
-set display_tags_in_all_columns true
-
-# Set a title for the window? Updates both `WM_NAME` and `WM_ICON_NAME`
-set update_title true
-
-# Set the tmux/screen window-name to "ranger"?
-set update_tmux_title true
-
-# Shorten the title if it gets long? The number defines how many
-# directories are displayed at once, 0 turns off this feature.
-set shorten_title 3
-
-# Show hostname in titlebar?
-set hostname_in_titlebar false
-
-# Abbreviate $HOME with ~ in the titlebar (first line) of ranger?
-set tilde_in_titlebar true
-
-# How many directory-changes or console-commands should be kept in history?
-set max_history_size 20
-set max_console_history_size 50
-
-# Try to keep so much space between the top/bottom border when scrolling:
-set scroll_offset 8
-
-# Flush the input after each key hit? (Noticeable when ranger lags)
-set flushinput true
-
-# Padding on the right when there's no preview?
-# This allows you to click into the space to run the file.
-set padding_right true
-
-# Save bookmarks (used with mX and `X) instantly?
-# This helps to synchronize bookmarks between multiple ranger
-# instances but leads to *slight* performance loss.
-# When false, bookmarks are saved when ranger is exited.
-set autosave_bookmarks true
-
-# Save the "`" bookmark to disk. This can be used to switch to the last
-# directory by typing "``".
-set save_backtick_bookmark true
-
-# You can display the "real" cumulative size of directories by using the
-# command :get_cumulative_size or typing "dc". The size is expensive to
-# calculate and will not be updated automatically. You can choose
-# to update it automatically though by turning on this option:
-set autoupdate_cumulative_size false
-
-# Turning this on makes sense for screen readers:
-set show_cursor false
-
-# One of: size, natural, basename, atime, ctime, mtime, type, random
-set sort natural
-
-# Additional sorting options
-set sort_reverse false
-set sort_case_insensitive true
-set sort_directories_first true
-set sort_unicode false
-
-# Enable this if key combinations with the Alt Key don't work for you.
-# (Especially on xterm)
-set xterm_alt_key false
-
-# Whether to include bookmarks in cd command
-set cd_bookmarks true
-
-# Changes case sensitivity for the cd command tab completion
-set cd_tab_case sensitive
-
-# Use fuzzy tab completion with the "cd" command. For example,
-# ":cd /u/lo/b" expands to ":cd /usr/local/bin".
-set cd_tab_fuzzy false
-
-# Avoid previewing files larger than this size, in bytes. Use a value of 0 to
-# disable this feature.
-set preview_max_size 0
-
-# The key hint lists up to this size have their sublists expanded.
-# Otherwise the submaps are replaced with "...".
-set hint_collapse_threshold 10
-
-# Add the highlighted file to the path in the titlebar
-set show_selection_in_titlebar true
-
-# The delay that ranger idly waits for user input, in milliseconds, with a
-# resolution of 100ms. Lower delay reduces lag between directory updates but
-# increases CPU load.
-set idle_delay 2000
-
-# When the metadata manager module looks for metadata, should it only look for
-# a ".metadata.json" file in the current directory, or do a deep search and
-# check all directories above the current one as well?
-set metadata_deep_search false
-
-# Clear all existing filters when leaving a directory
-set clear_filters_on_dir_change false
-
-# Disable displaying line numbers in main column.
-# Possible values: false, absolute, relative.
-set line_numbers false
-
-# When line_numbers=relative show the absolute line number in the
-# current line.
-set relative_current_zero false
-
-# Start line numbers from 1 instead of 0
-set one_indexed false
-
-# Save tabs on exit
-set save_tabs_on_exit false
-
-# Enable scroll wrapping - moving down while on the last item will wrap around to
-# the top and vice versa.
-set wrap_scroll true
-
-# Set the global_inode_type_filter to nothing. Possible options: d, f and l for
-# directories, files and symlinks respectively.
-set global_inode_type_filter
-
-# This setting allows to freeze the list of files to save I/O bandwidth. It
-# should be 'false' during start-up, but you can toggle it by pressing F.
-set freeze_files false
-
-# Print file sizes in bytes instead of the default human-readable format.
-set size_in_bytes false
-
-# Warn at startup if RANGER_LEVEL env var is greater than 0, in other words
-# give a warning when you nest ranger in a subshell started by ranger.
-# Special value "error" makes the warning more visible.
-set nested_ranger_warning true
-
-# ===================================================================
-# == Local Options
-# ===================================================================
-# You can set local options that only affect a single directory.
-
-# Examples:
-# setlocal path=~/downloads sort mtime
-
-# ===================================================================
-# == Command Aliases in the Console
-# ===================================================================
-
-alias e edit
-alias q quit
-alias q! quit!
-alias qa quitall
-alias qa! quitall!
-alias qall quitall
-alias qall! quitall!
-alias setl setlocal
-
-alias filter scout -prts
-alias find scout -aets
-alias mark scout -mr
-alias unmark scout -Mr
-alias search scout -rs
-alias search_inc scout -rts
-alias travel scout -aefklst
-
-# ===================================================================
-# == Define keys for the browser
-# ===================================================================
-
-# Basic
-map Q quitall
-map q quit
-copymap q ZZ ZQ
-
-map R reload_cwd
-map F set freeze_files!
-map reset
-map redraw_window
-map abort
-map change_mode normal
-map ~ set viewmode!
-
-map i display_file
-map scroll_preview 1
-map scroll_preview -1
-map ? help
-map W display_log
-map w taskview_open
-map S shell $SHELL
-
-map : console
-map ; console
-map ! console shell%space
-map @ console -p6 shell %%s
-map # console shell -p%space
-map s console shell%space
-map r chain draw_possible_programs; console open_with%space
-map f console find%space
-map cd console cd%space
-
-map chain console; eval fm.ui.console.history_move(-1)
-
-# Change the line mode
-map Mf linemode filename
-map Mi linemode fileinfo
-map Mm linemode mtime
-map Mh linemode humanreadablemtime
-map Mp linemode permissions
-map Ms linemode sizemtime
-map MH linemode sizehumanreadablemtime
-map Mt linemode metatitle
-
-# Tagging / Marking
-map t tag_toggle
-map ut tag_remove
-map " tag_toggle tag=%any
-map mark_files toggle=True
-map v mark_files all=True toggle=True
-map uv mark_files all=True val=False
-map V toggle_visual_mode
-map uV toggle_visual_mode reverse=True
-
-# For the nostalgics: Midnight Commander bindings
-map help
-map rename_append
-map display_file
-map edit
-map copy
-map cut
-map console mkdir%space
-map console delete
-#map console trash
-map exit
-
-# In case you work on a keyboard with dvorak layout
-map move up=1
-map move down=1
-map move left=1
-map move right=1
-map move to=0
-map move to=-1
-map move down=1 pages=True
-map move up=1 pages=True
-map move right=1
-#map console delete
-map console touch%space
-
-# VIM-like
-copymap k
-copymap j
-copymap h
-copymap l
-copymap gg
-copymap G
-copymap
-copymap
-
-map J move down=0.5 pages=True
-map K move up=0.5 pages=True
-copymap J
-copymap K
-
-# Jumping around
-map H history_go -1
-map L history_go 1
-map ] move_parent 1
-map [ move_parent -1
-map } traverse
-map { traverse_backwards
-map ) jump_non
-
-map ghh cd ~
-map ghc cd ~/config
-map ghC cd ~/.config
-map ghd cd ~/Documents
-map ghD cd ~/Downloads
-map ghgm cd ~/.var/app/org.prismlauncher.PrismLauncher/data/PrismLauncher
-map ghgs cd ~/.local/share/Steam/steamapps/common
-map ghm cd ~/Music
-map ghp cd ~/Pictures
-map ghP cd ~/Projects
-map ghv cd ~/Videos
-map gl cd -r .
-map gL cd -r %f
-map gi eval fm.cd('/run/media/' + os.getenv('USER'))
-map g/ cd /
-
-# External Programs
-map E edit
-map du shell -p du --max-depth=1 -h --apparent-size
-map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
-map yp yank path
-map yd yank dir
-map yn yank name
-map y. yank name_without_extension
-
-# Filesystem Operations
-map = chmod
-
-map cw console rename%space
-map a rename_append
-map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
-map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
-
-map pp paste
-map po paste overwrite=True
-map pP paste append=True
-map pO paste overwrite=True append=True
-map pl paste_symlink relative=False
-map pL paste_symlink relative=True
-map phl paste_hardlink
-map pht paste_hardlinked_subtree
-map pd console paste dest=
-map p` paste dest=%any_path
-map p' paste dest=%any_path
-
-map dD console delete
-map dT console trash
-
-map dd cut
-map ud uncut
-map da cut mode=add
-map dr cut mode=remove
-map dt cut mode=toggle
-
-map yy copy
-map uy uncut
-map ya copy mode=add
-map yr copy mode=remove
-map yt copy mode=toggle
-
-# Temporary workarounds
-map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
-map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
-map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier)
-map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier)
-map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
-map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
-map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier)
-map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier)
-
-# Searching
-map / console search%space
-map n search_next
-map N search_next forward=False
-map ct search_next order=tag
-map cs search_next order=size
-map ci search_next order=mimetype
-map cc search_next order=ctime
-map cm search_next order=mtime
-map ca search_next order=atime
-
-# Tabs
-map tab_new
-map tab_close
-map tab_move 1
-map tab_move -1
-map tab_move 1
-map tab_move -1
-map gt tab_move 1
-map gT tab_move -1
-map gn tab_new
-map gc tab_close
-map uq tab_restore
-map tab_open 1
-map tab_open 2
-map tab_open 3
-map tab_open 4
-map tab_open 5
-map tab_open 6
-map tab_open 7
-map tab_open 8
-map tab_open 9
-map tab_shift 1
-map tab_shift -1
-
-# Sorting
-map or set sort_reverse!
-map oz set sort=random
-map os chain set sort=size; set sort_reverse=False
-map ob chain set sort=basename; set sort_reverse=False
-map on chain set sort=natural; set sort_reverse=False
-map om chain set sort=mtime; set sort_reverse=False
-map oc chain set sort=ctime; set sort_reverse=False
-map oa chain set sort=atime; set sort_reverse=False
-map ot chain set sort=type; set sort_reverse=False
-map oe chain set sort=extension; set sort_reverse=False
-
-map oS chain set sort=size; set sort_reverse=True
-map oB chain set sort=basename; set sort_reverse=True
-map oN chain set sort=natural; set sort_reverse=True
-map oM chain set sort=mtime; set sort_reverse=True
-map oC chain set sort=ctime; set sort_reverse=True
-map oA chain set sort=atime; set sort_reverse=True
-map oT chain set sort=type; set sort_reverse=True
-map oE chain set sort=extension; set sort_reverse=True
-
-map dc get_cumulative_size
-
-# Settings
-map zc set collapse_preview!
-map zd set sort_directories_first!
-map zh set show_hidden!
-map set show_hidden!
-copymap
-copymap
-map zI set flushinput!
-map zi set preview_images!
-map zm set mouse_enabled!
-map zp set preview_files!
-map zP set preview_directories!
-map zs set sort_case_insensitive!
-map zu set autoupdate_cumulative_size!
-map zv set use_preview_script!
-map zf console filter%space
-copymap zf zz
-
-# Filter stack
-map .d filter_stack add type d
-map .f filter_stack add type f
-map .l filter_stack add type l
-map .m console filter_stack add mime%space
-map .n console filter_stack add name%space
-map .# console filter_stack add hash%space
-map ." filter_stack add duplicate
-map .' filter_stack add unique
-map .| filter_stack add or
-map .& filter_stack add and
-map .! filter_stack add not
-map .r filter_stack rotate
-map .c filter_stack clear
-map .* filter_stack decompose
-map .p filter_stack pop
-map .. filter_stack show
-
-# Bookmarks
-map ` enter_bookmark %any
-map ' enter_bookmark %any
-map m set_bookmark %any
-map um unset_bookmark %any
-
-map m draw_bookmarks
-copymap m um ` '
-
-# Generate all the chmod bindings with some python help:
-eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg))
-
-eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg))
-eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg))
-
-# ===================================================================
-# == Define keys for the console
-# ===================================================================
-# Note: Unmapped keys are passed directly to the console.
-
-# Basic
-cmap eval fm.ui.console.tab()
-cmap eval fm.ui.console.tab(-1)
-cmap eval fm.ui.console.close()
-cmap eval fm.ui.console.execute()
-cmap redraw_window
-
-copycmap
-copycmap
-
-# Move around
-cmap eval fm.ui.console.history_move(-1)
-cmap eval fm.ui.console.history_move(1)
-cmap eval fm.ui.console.move(left=1)
-cmap eval fm.ui.console.move(right=1)
-cmap eval fm.ui.console.move(right=0, absolute=True)
-cmap eval fm.ui.console.move(right=-1, absolute=True)
-cmap eval fm.ui.console.move_word(left=1)
-cmap eval fm.ui.console.move_word(right=1)
-
-copycmap
-copycmap
-
-# Line Editing
-cmap eval fm.ui.console.delete(-1)
-cmap eval fm.ui.console.delete(0)
-cmap eval fm.ui.console.delete_word()
-cmap eval fm.ui.console.delete_word(backward=False)
-cmap eval fm.ui.console.delete_rest(1)
-cmap eval fm.ui.console.delete_rest(-1)
-cmap eval fm.ui.console.paste()
-
-# And of course the emacs way
-copycmap
-copycmap
-copycmap
-copycmap
-copycmap
-copycmap
-copycmap
-copycmap
-copycmap
-
-# Note: There are multiple ways to express backspaces. (code 263)
-# and (code 127). To be sure, use both.
-copycmap
-
-# This special expression allows typing in numerals:
-cmap false
-
-# ===================================================================
-# == Pager Keybindings
-# ===================================================================
-
-# Movement
-pmap pager_move down=1
-pmap pager_move up=1
-pmap pager_move left=4
-pmap pager_move right=4
-pmap pager_move to=0
-pmap pager_move to=-1
-pmap pager_move down=1.0 pages=True
-pmap pager_move up=1.0 pages=True
-pmap pager_move down=0.5 pages=True
-pmap pager_move up=0.5 pages=True
-
-copypmap k
-copypmap j
-copypmap h
-copypmap l
-copypmap g
-copypmap G
-copypmap d
-copypmap u
-copypmap n f
-copypmap p b
-
-# Basic
-pmap redraw_window
-pmap pager_close
-copypmap q Q i
-pmap E edit_file
-
-# ===================================================================
-# == Taskview Keybindings
-# ===================================================================
-
-# Movement
-tmap taskview_move up=1
-tmap taskview_move down=1
-tmap taskview_move to=0
-tmap taskview_move to=-1
-tmap taskview_move down=1.0 pages=True
-tmap taskview_move up=1.0 pages=True
-tmap taskview_move down=0.5 pages=True
-tmap taskview_move up=0.5 pages=True
-
-copytmap k
-copytmap j
-copytmap g
-copytmap G
-copytmap u
-copytmap n f
-copytmap p b
-
-# Changing priority and deleting tasks
-tmap J eval -q fm.ui.taskview.task_move(-1)
-tmap K eval -q fm.ui.taskview.task_move(0)
-tmap dd eval -q fm.ui.taskview.task_remove()
-tmap eval -q fm.ui.taskview.task_move(-1)
-tmap eval -q fm.ui.taskview.task_move(0)
-tmap eval -q fm.ui.taskview.task_remove()
-
-# Basic
-tmap redraw_window
-tmap taskview_close
-copytmap q Q w
diff --git a/ranger/dot-config/ranger/scope.sh b/ranger/dot-config/ranger/scope.sh
deleted file mode 100755
index e21ebfc..0000000
--- a/ranger/dot-config/ranger/scope.sh
+++ /dev/null
@@ -1,356 +0,0 @@
-#!/usr/bin/env bash
-
-set -o noclobber -o noglob -o nounset -o pipefail
-IFS=$'\n'
-
-## If the option `use_preview_script` is set to `true`,
-## then this script will be called and its output will be displayed in ranger.
-## ANSI color codes are supported.
-## STDIN is disabled, so interactive scripts won't work properly
-
-## This script is considered a configuration file and must be updated manually.
-## It will be left untouched if you upgrade ranger.
-
-## Because of some automated testing we do on the script #'s for comments need
-## to be doubled up. Code that is commented out, because it's an alternative for
-## example, gets only one #.
-
-## Meanings of exit codes:
-## code | meaning | action of ranger
-## -----+------------+-------------------------------------------
-## 0 | success | Display stdout as preview
-## 1 | no preview | Display no preview at all
-## 2 | plain text | Display the plain content of the file
-## 3 | fix width | Don't reload when width changes
-## 4 | fix height | Don't reload when height changes
-## 5 | fix both | Don't ever reload
-## 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview
-## 7 | image | Display the file directly as an image
-
-## Script arguments
-FILE_PATH="${1}" # Full path of the highlighted file
-PV_WIDTH="${2}" # Width of the preview pane (number of fitting characters)
-## shellcheck disable=SC2034 # PV_HEIGHT is provided for convenience and unused
-PV_HEIGHT="${3}" # Height of the preview pane (number of fitting characters)
-IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview
-PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise.
-
-FILE_EXTENSION="${FILE_PATH##*.}"
-FILE_EXTENSION_LOWER="$(printf "%s" "${FILE_EXTENSION}" | tr '[:upper:]' '[:lower:]')"
-
-## Settings
-HIGHLIGHT_SIZE_MAX=262143 # 256KiB
-HIGHLIGHT_TABWIDTH=${HIGHLIGHT_TABWIDTH:-8}
-HIGHLIGHT_STYLE=${HIGHLIGHT_STYLE:-pablo}
-HIGHLIGHT_OPTIONS="--replace-tabs=${HIGHLIGHT_TABWIDTH} --style=${HIGHLIGHT_STYLE} ${HIGHLIGHT_OPTIONS:-}"
-PYGMENTIZE_STYLE=${PYGMENTIZE_STYLE:-autumn}
-OPENSCAD_IMGSIZE=${RNGR_OPENSCAD_IMGSIZE:-1000,1000}
-OPENSCAD_COLORSCHEME=${RNGR_OPENSCAD_COLORSCHEME:-Tomorrow Night}
-
-handle_extension() {
- case "${FILE_EXTENSION_LOWER}" in
- ## Archive
- a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
- rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
- atool --list -- "${FILE_PATH}" && exit 5
- bsdtar --list --file "${FILE_PATH}" && exit 5
- exit 1;;
- rar)
- ## Avoid password prompt by providing empty password
- unrar lt -p- -- "${FILE_PATH}" && exit 5
- exit 1;;
- 7z)
- ## Avoid password prompt by providing empty password
- 7z l -p -- "${FILE_PATH}" && exit 5
- exit 1;;
-
- ## PDF
- pdf)
- ## Preview as text conversion
- pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | \
- fmt -w "${PV_WIDTH}" && exit 5
- mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | \
- fmt -w "${PV_WIDTH}" && exit 5
- exiftool "${FILE_PATH}" && exit 5
- exit 1;;
-
- ## BitTorrent
- torrent)
- transmission-show -- "${FILE_PATH}" && exit 5
- exit 1;;
-
- ## OpenDocument
- odt|ods|odp|sxw)
- ## Preview as text conversion
- odt2txt "${FILE_PATH}" && exit 5
- ## Preview as markdown conversion
- pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
- exit 1;;
-
- ## XLSX
- xlsx)
- ## Preview as csv conversion
- ## Uses: https://github.com/dilshod/xlsx2csv
- xlsx2csv -- "${FILE_PATH}" && exit 5
- exit 1;;
-
- ## HTML
- htm|html|xhtml)
- ## Preview as text conversion
- w3m -dump "${FILE_PATH}" && exit 5
- lynx -dump -- "${FILE_PATH}" && exit 5
- elinks -dump "${FILE_PATH}" && exit 5
- pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
- ;;
-
- ## JSON
- json)
- jq --color-output . "${FILE_PATH}" && exit 5
- python -m json.tool -- "${FILE_PATH}" && exit 5
- ;;
-
- ## Valve Texture Format
- vtf)
- # You need to install no_vtf with pipx
- no_vtf --always-write --no-progress -f "png|apng" -O "${IMAGE_CACHE_PATH}" -- "${FILE_PATH}" && exit 6
- ;;
-
- ## Direct Stream Digital/Transfer (DSDIFF) and wavpack aren't detected
- ## by file(1).
- dff|dsf|wv|wvc)
- mediainfo "${FILE_PATH}" && exit 5
- exiftool "${FILE_PATH}" && exit 5
- ;; # Continue with next handler on failure
- esac
-}
-
-handle_image() {
- ## Size of the preview if there are multiple options or it has to be
- ## rendered from vector graphics. If the conversion program allows
- ## specifying only one dimension while keeping the aspect ratio, the width
- ## will be used.
- local DEFAULT_SIZE="1920x1080"
-
- local mimetype="${1}"
- case "${mimetype}" in
- ## SVG
- # image/svg+xml|image/svg)
- # convert -- "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6
- # exit 1;;
-
- ## DjVu
- # image/vnd.djvu)
- # ddjvu -format=tiff -quality=90 -page=1 -size="${DEFAULT_SIZE}" \
- # - "${IMAGE_CACHE_PATH}" < "${FILE_PATH}" \
- # && exit 6 || exit 1;;
-
- ## Image
- image/*)
- local orientation
- orientation="$( identify -format '%[EXIF:Orientation]\n' -- "${FILE_PATH}" )"
- ## If orientation data is present and the image actually
- ## needs rotating ("1" means no rotation)...
- if [[ -n "$orientation" && "$orientation" != 1 ]]; then
- ## ...auto-rotate the image according to the EXIF data.
- convert -- "${FILE_PATH}" -auto-orient "${IMAGE_CACHE_PATH}" && exit 6
- fi
-
- ## `w3mimgdisplay` will be called for all images (unless overriden
- ## as above), but might fail for unsupported types.
- exit 7;;
-
- ## Video
- # video/*)
- # # Thumbnail
- # ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
- # exit 1;;
-
- ## PDF
- # application/pdf)
- # pdftoppm -f 1 -l 1 \
- # -scale-to-x "${DEFAULT_SIZE%x*}" \
- # -scale-to-y -1 \
- # -singlefile \
- # -jpeg -tiffcompression jpeg \
- # -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
- # && exit 6 || exit 1;;
-
-
- ## ePub, MOBI, FB2 (using Calibre)
- # application/epub+zip|application/x-mobipocket-ebook|\
- # application/x-fictionbook+xml)
- # # ePub (using https://github.com/marianosimone/epub-thumbnailer)
- # epub-thumbnailer "${FILE_PATH}" "${IMAGE_CACHE_PATH}" \
- # "${DEFAULT_SIZE%x*}" && exit 6
- # ebook-meta --get-cover="${IMAGE_CACHE_PATH}" -- "${FILE_PATH}" \
- # >/dev/null && exit 6
- # exit 1;;
-
- ## Font
- application/font*|application/*opentype)
- preview_png="/tmp/$(basename "${IMAGE_CACHE_PATH%.*}").png"
- if fontimage -o "${preview_png}" \
- --pixelsize "120" \
- --fontname \
- --pixelsize "80" \
- --text " ABCDEFGHIJKLMNOPQRSTUVWXYZ " \
- --text " abcdefghijklmnopqrstuvwxyz " \
- --text " 0123456789.:,;(*!?') ff fl fi ffi ffl " \
- --text " The quick brown fox jumps over the lazy dog. " \
- "${FILE_PATH}";
- then
- convert -- "${preview_png}" "${IMAGE_CACHE_PATH}" \
- && rm "${preview_png}" \
- && exit 6
- else
- exit 1
- fi
- ;;
-
- ## Preview archives using the first image inside.
- ## (Very useful for comic book collections for example.)
- # application/zip|application/x-rar|application/x-7z-compressed|\
- # application/x-xz|application/x-bzip2|application/x-gzip|application/x-tar)
- # local fn=""; local fe=""
- # local zip=""; local rar=""; local tar=""; local bsd=""
- # case "${mimetype}" in
- # application/zip) zip=1 ;;
- # application/x-rar) rar=1 ;;
- # application/x-7z-compressed) ;;
- # *) tar=1 ;;
- # esac
- # { [ "$tar" ] && fn=$(tar --list --file "${FILE_PATH}"); } || \
- # { fn=$(bsdtar --list --file "${FILE_PATH}") && bsd=1 && tar=""; } || \
- # { [ "$rar" ] && fn=$(unrar lb -p- -- "${FILE_PATH}"); } || \
- # { [ "$zip" ] && fn=$(zipinfo -1 -- "${FILE_PATH}"); } || return
- #
- # fn=$(echo "$fn" | python -c "import sys; import mimetypes as m; \
- # [ print(l, end='') for l in sys.stdin if \
- # (m.guess_type(l[:-1])[0] or '').startswith('image/') ]" |\
- # sort -V | head -n 1)
- # [ "$fn" = "" ] && return
- # [ "$bsd" ] && fn=$(printf '%b' "$fn")
- #
- # [ "$tar" ] && tar --extract --to-stdout \
- # --file "${FILE_PATH}" -- "$fn" > "${IMAGE_CACHE_PATH}" && exit 6
- # fe=$(echo -n "$fn" | sed 's/[][*?\]/\\\0/g')
- # [ "$bsd" ] && bsdtar --extract --to-stdout \
- # --file "${FILE_PATH}" -- "$fe" > "${IMAGE_CACHE_PATH}" && exit 6
- # [ "$bsd" ] || [ "$tar" ] && rm -- "${IMAGE_CACHE_PATH}"
- # [ "$rar" ] && unrar p -p- -inul -- "${FILE_PATH}" "$fn" > \
- # "${IMAGE_CACHE_PATH}" && exit 6
- # [ "$zip" ] && unzip -pP "" -- "${FILE_PATH}" "$fe" > \
- # "${IMAGE_CACHE_PATH}" && exit 6
- # [ "$rar" ] || [ "$zip" ] && rm -- "${IMAGE_CACHE_PATH}"
- # ;;
- esac
-
- # openscad_image() {
- # TMPPNG="$(mktemp -t XXXXXX.png)"
- # openscad --colorscheme="${OPENSCAD_COLORSCHEME}" \
- # --imgsize="${OPENSCAD_IMGSIZE/x/,}" \
- # -o "${TMPPNG}" "${1}"
- # mv "${TMPPNG}" "${IMAGE_CACHE_PATH}"
- # }
-
- # case "${FILE_EXTENSION_LOWER}" in
- # ## 3D models
- # ## OpenSCAD only supports png image output, and ${IMAGE_CACHE_PATH}
- # ## is hardcoded as jpeg. So we make a tempfile.png and just
- # ## move/rename it to jpg. This works because image libraries are
- # ## smart enough to handle it.
- # csg|scad)
- # openscad_image "${FILE_PATH}" && exit 6
- # ;;
- # 3mf|amf|dxf|off|stl)
- # openscad_image <(echo "import(\"${FILE_PATH}\");") && exit 6
- # ;;
- # esac
-}
-
-handle_mime() {
- local mimetype="${1}"
- case "${mimetype}" in
- ## RTF and DOC
- text/rtf|*msword)
- ## Preview as text conversion
- ## note: catdoc does not always work for .doc files
- ## catdoc: http://www.wagner.pp.ru/~vitus/software/catdoc/
- catdoc -- "${FILE_PATH}" && exit 5
- exit 1;;
-
- ## DOCX, ePub, FB2 (using markdown)
- ## You might want to remove "|epub" and/or "|fb2" below if you have
- ## uncommented other methods to preview those formats
- *wordprocessingml.document|*/epub+zip|*/x-fictionbook+xml)
- ## Preview as markdown conversion
- pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
- exit 1;;
-
- ## XLS
- *ms-excel)
- ## Preview as csv conversion
- ## xls2csv comes with catdoc:
- ## http://www.wagner.pp.ru/~vitus/software/catdoc/
- xls2csv -- "${FILE_PATH}" && exit 5
- exit 1;;
-
- ## Text
- text/* | */xml)
- ## Syntax highlight
- if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then
- exit 2
- fi
- if [[ "$( tput colors )" -ge 256 ]]; then
- local pygmentize_format='terminal256'
- local highlight_format='xterm256'
- else
- local pygmentize_format='terminal'
- local highlight_format='ansi'
- fi
- env HIGHLIGHT_OPTIONS="${HIGHLIGHT_OPTIONS}" highlight \
- --out-format="${highlight_format}" \
- --force -- "${FILE_PATH}" && exit 5
- env COLORTERM=8bit bat --color=always --style="plain" \
- -- "${FILE_PATH}" && exit 5
- pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}"\
- -- "${FILE_PATH}" && exit 5
- exit 2;;
-
- ## DjVu
- image/vnd.djvu)
- ## Preview as text conversion (requires djvulibre)
- djvutxt "${FILE_PATH}" | fmt -w "${PV_WIDTH}" && exit 5
- exiftool "${FILE_PATH}" && exit 5
- exit 1;;
-
- ## Image
- image/*)
- ## Preview as text conversion
- # img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
- exiftool "${FILE_PATH}" && exit 5
- exit 1;;
-
- ## Video and audio
- video/* | audio/*)
- mediainfo "${FILE_PATH}" && exit 5
- exiftool "${FILE_PATH}" && exit 5
- exit 1;;
- esac
-}
-
-handle_fallback() {
- echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" && exit 5
- exit 1
-}
-
-
-MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )"
-if [[ "${PV_IMAGE_ENABLED}" == 'True' ]]; then
- handle_image "${MIMETYPE}"
-fi
-handle_extension
-handle_mime "${MIMETYPE}"
-handle_fallback
-
-exit 1
diff --git a/ssh/dot-ssh/config b/ssh/dot-ssh/config
deleted file mode 100644
index 3c04601..0000000
--- a/ssh/dot-ssh/config
+++ /dev/null
@@ -1,2 +0,0 @@
-Host *
-SetEnv TERM=xterm-256color
\ No newline at end of file
diff --git a/wm/dot-config/fuzzel/fuzzel.ini b/wm/dot-config/fuzzel/fuzzel.ini
deleted file mode 100644
index c732f70..0000000
--- a/wm/dot-config/fuzzel/fuzzel.ini
+++ /dev/null
@@ -1,29 +0,0 @@
-[main]
-font=Noto Sans:size=13
-use-bold=yes
-dpi-aware=no
-placeholder=program name
-prompt=":3 "
-show-actions=yes
-terminal=alacritty -e
-y-margin=15
-lines=5
-horizontal-pad=5
-vertical-pad=5
-inner-pad=5
-
-[colors]
-background=1a1b26e5
-text=a9b1d6ff
-prompt=bb9af7ff
-placeholder=bb9af7b2
-input=bb9af7ff
-match=bb9af7ff
-selection=bb9af7ff
-selection-text=565f89ff
-selection-match=1a1b26ff
-border=bb9af7ff
-
-[border]
-width=2
-radius=5
diff --git a/wm/dot-config/gtklock/config.ini b/wm/dot-config/gtklock/config.ini
deleted file mode 100644
index 8caad4a..0000000
--- a/wm/dot-config/gtklock/config.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[main]
-gtk-theme=Adwaita-dark
-background=Pictures/Wallpapers/cafe.png
-idle-hide=true
-idle-timeout=30
-start-hidden=true
\ No newline at end of file
diff --git a/wm/dot-config/mako/config b/wm/dot-config/mako/config
deleted file mode 100644
index c33bf49..0000000
--- a/wm/dot-config/mako/config
+++ /dev/null
@@ -1,14 +0,0 @@
-font=Noto Sans 13
-background-color=#1a1b26e5
-text-color=#a9b1d6ff
-width=400
-height=200
-border-color=#bb9af7ff
-margin=15
-border-radius=5
-format=%a - %s\n%b
-default-timeout=30000
-group-by=app-name,summary
-
-[grouped]
-format=(%g) %a - %s\n%b
\ No newline at end of file
diff --git a/wm/dot-config/swayidle/config b/wm/dot-config/swayidle/config
deleted file mode 100644
index 0643783..0000000
--- a/wm/dot-config/swayidle/config
+++ /dev/null
@@ -1,3 +0,0 @@
-timeout 300 'gtklock -d'
-timeout 600 'niri msg action power-off-monitors'
-before-sleep 'gtklock -d'
\ No newline at end of file
diff --git a/wm/dot-config/waybar/config.jsonc b/wm/dot-config/waybar/config.jsonc
deleted file mode 100644
index 6edc516..0000000
--- a/wm/dot-config/waybar/config.jsonc
+++ /dev/null
@@ -1,93 +0,0 @@
-{
- // make sure this renders above all non-fullscreen windows
- "layer": "top",
- // modules
- "modules-left": [
- "niri/workspaces",
- "niri/window"
- ],
- "modules-center": [
- "clock"
- ],
- "modules-right": [
- "privacy",
- "gamemode",
- "tray",
- "idle_inhibitor",
- "battery",
- "wireplumber",
- "bluetooth",
- "network"
- ],
- // config
- "niri/workspaces": {
- "format": "{icon}{name}",
- "format-icons": {
- "web": " ",
- "chat": " "
- }
- },
- "niri/window": {
- // "format": "{app_id} | {title}"
- },
- "clock": {
- "format": "{:%a %R}",
- "tooltip-format": "{calendar}",
- "calendar": {
- "mode": "month",
- "weeks-pos": "right",
- "format": {
- "months": "{}",
- "days": "{}",
- "weeks": "W{}",
- "weekdays": "{}",
- "today": "{}"
- }
- }
- },
- "privacy": {
- "icon-size": 13,
- "icon-spacing": 5
- },
- "gamemode": {
- "icon-size": 13
- },
- "tray": {
- "reverse-direction": true,
- "show-passive-items": true,
- "spacing": 5
- },
- "idle_inhibitor": {
- "format": "{icon}",
- "format-icons": {
- "activated": "",
- "deactivated": ""
- }
- },
- "wireplumber": {
- "format": "{icon} {volume}%",
- "format-icons": [
- "",
- "",
- " "
- ],
- "format-muted": "",
- "on-click": "pavucontrol",
- "on-click-right": "helvum"
- },
- "bluetooth": {
- "format": "",
- "format-connected": " {num_connections}",
- "format-disabled": "",
- "tooltip-format": "{controller_alias} {controller_address}",
- "tooltip-format-connected": "{controller_alias} {controller_address}\n\n{num_connections} connected:\n{device_enumerate}",
- "tooltip-format-enumerate-connected": "{device_alias} {device_address}"
- },
- "network": {
- "format-disconnected": "Disconnected",
- "format-ethernet": "",
- "format-wifi": " {essid}",
- "tooltip-format-ethernet": "{ipaddr}/{cidr} via {ifname}",
- "tooltip-format-wifi": "{ipaddr}/{cidr} via {ifname}\n{signalStrength}% signal"
- }
-}
\ No newline at end of file
diff --git a/wm/dot-config/waybar/style.css b/wm/dot-config/waybar/style.css
deleted file mode 100644
index b24f300..0000000
--- a/wm/dot-config/waybar/style.css
+++ /dev/null
@@ -1,97 +0,0 @@
-* {
- border: none;
- border-radius: 0;
- font-family: "Noto Sans", sans-serif;
- font-size: 13px;
- min-height: 0;
-}
-
-window#waybar {
- background: rgba(26, 27, 38, 0.9);
- color: #a9b1d6;
-}
-
-tooltip {
- background: rgba(26, 27, 38, 0.9);
- border: 2px solid #565f89;
- border-radius: 5px;
-}
-
-tooltip label {
- color: #a9b1d6;
-}
-
-#workspaces button {
- margin: 5px 5px;
- padding: 2px 5px;
- background: transparent;
- border-radius: 5px;
- color: #a9b1d6;
-}
-
-#workspaces button.focused {
- background: #bb9af7;
- color: #1a1b26;
-}
-
-#window,
-#clock,
-#privacy,
-#gamemode,
-#tray,
-#idle_inhibitor,
-#battery,
-#wireplumber,
-#bluetooth,
-#network {
- margin: 5px 5px;
- padding: 0 5px;
- border-radius: 5px;
-}
-
-#window,
-#tray {
- background-color: #24283b;
-}
-
-#privacy {
- background-color: #e0af68;
- color: black;
-}
-
-#gamemode.running {
- background-color: #7dcfff;
- color: black;
-}
-
-#idle_inhibitor.activated {
- background-color: #ff9e64;
- color: black;
-}
-
-#battery {
- background-color: #ffffff;
- color: black;
-}
-
-#battery.charging {
- background-color: #9ece6a;
- color: #1a1b26;
-}
-
-#battery.warning:not(.charging),
-#network.disconnected {
- background: #f7768e;
- color: #1a1b26;
-}
-
-#bluetooth.connected {
- background: #7aa2f7;
- color: #1a1b26;
-}
-
-#network.ethernet,
-#network.wifi {
- background: #73daca;
- color: #1a1b26;
-}
\ No newline at end of file
diff --git a/yazi/dot-config/yazi/keymap.toml b/yazi/dot-config/yazi/keymap.toml
new file mode 100644
index 0000000..609f979
--- /dev/null
+++ b/yazi/dot-config/yazi/keymap.toml
@@ -0,0 +1,49 @@
+[[mgr.prepend_keymap]]
+on = [ "g", "C" ]
+run = "cd ~/config"
+desc = "Go to dotfiles"
+
+[[mgr.prepend_keymap]]
+on = [ "g", "d" ]
+run = "cd ~/Documents"
+desc = "Go to Documents"
+
+[[mgr.prepend_keymap]]
+on = [ "g", "D" ]
+run = "cd ~/Downloads"
+desc = "Go to Downloads"
+
+[[mgr.prepend_keymap]]
+on = [ "g", "g", "s" ]
+run = "cd ~/.local/share/Steam/steamapps/common"
+desc = "Go to steamapps"
+
+[[mgr.prepend_keymap]]
+on = [ "g", "m" ]
+run = "cd ~/Music"
+desc = "Go to Music"
+
+[[mgr.prepend_keymap]]
+on = [ "g", "P" ]
+run = "cd ~/Projects"
+desc = "Go to Projects"
+
+[[mgr.prepend_keymap]]
+on = [ "g", "p", "p" ]
+run = "cd ~/Pictures"
+desc = "Go to Pictures"
+
+[[mgr.prepend_keymap]]
+on = [ "g", "p", "s" ]
+run = "cd ~/Pictures/Screenshots"
+desc = "Go to Screenshots"
+
+[[mgr.prepend_keymap]]
+on = [ "g", "v", "v" ]
+run = "cd ~/Videos"
+desc = "Go to Videos"
+
+[[mgr.prepend_keymap]]
+on = [ "g", "v", "r" ]
+run = "cd ~/Videos/Recording"
+desc = "Go to Recordings"
diff --git a/yazi/dot-config/yazi/keymap.toml-1753599537122504 b/yazi/dot-config/yazi/keymap.toml-1753599537122504
new file mode 100644
index 0000000..e5abde3
--- /dev/null
+++ b/yazi/dot-config/yazi/keymap.toml-1753599537122504
@@ -0,0 +1,49 @@
+[[manager.prepend_keymap]]
+on = [ "g", "C" ]
+run = "cd ~/config"
+desc = "Go to dotfiles"
+
+[[manager.prepend_keymap]]
+on = [ "g", "d" ]
+run = "cd ~/Documents"
+desc = "Go to Documents"
+
+[[manager.prepend_keymap]]
+on = [ "g", "D" ]
+run = "cd ~/Downloads"
+desc = "Go to Downloads"
+
+[[manager.prepend_keymap]]
+on = [ "g", "g", "s" ]
+run = "cd ~/.local/share/Steam/steamapps/common"
+desc = "Go to steamapps"
+
+[[manager.prepend_keymap]]
+on = [ "g", "m" ]
+run = "cd ~/Music"
+desc = "Go to Music"
+
+[[manager.prepend_keymap]]
+on = [ "g", "P" ]
+run = "cd ~/Projects"
+desc = "Go to Projects"
+
+[[manager.prepend_keymap]]
+on = [ "g", "p", "p" ]
+run = "cd ~/Pictures"
+desc = "Go to Pictures"
+
+[[manager.prepend_keymap]]
+on = [ "g", "p", "s" ]
+run = "cd ~/Pictures/Screenshots"
+desc = "Go to Screenshots"
+
+[[manager.prepend_keymap]]
+on = [ "g", "v", "v" ]
+run = "cd ~/Videos"
+desc = "Go to Videos"
+
+[[manager.prepend_keymap]]
+on = [ "g", "v", "r" ]
+run = "cd ~/Videos/Recording"
+desc = "Go to Recordings"
diff --git a/yazi/dot-config/yazi/package.toml b/yazi/dot-config/yazi/package.toml
new file mode 100644
index 0000000..2b7c2cd
--- /dev/null
+++ b/yazi/dot-config/yazi/package.toml
@@ -0,0 +1,7 @@
+[plugin]
+deps = []
+
+[[flavor.deps]]
+use = "BennyOe/tokyo-night"
+rev = "5f56364"
+hash = "c0bf69ad2c44005892d586e9693993c6"
diff --git a/yazi/dot-config/yazi/theme.toml b/yazi/dot-config/yazi/theme.toml
new file mode 100644
index 0000000..a1460bf
--- /dev/null
+++ b/yazi/dot-config/yazi/theme.toml
@@ -0,0 +1,2 @@
+[flavor]
+use = "tokyo-night"
diff --git a/yazi/dot-config/yazi/yazi.toml b/yazi/dot-config/yazi/yazi.toml
new file mode 100644
index 0000000..3b0b37e
--- /dev/null
+++ b/yazi/dot-config/yazi/yazi.toml
@@ -0,0 +1,3 @@
+[preview]
+wrap = "yes"
+tab_size = 4
diff --git a/zsh/dot-zimrc b/zsh/dot-zimrc
deleted file mode 100644
index 3a28637..0000000
--- a/zsh/dot-zimrc
+++ /dev/null
@@ -1,58 +0,0 @@
-# Start configuration added by Zim install {{{
-#
-# This is not sourced during shell startup, and it's only used to configure the
-# zimfw plugin manager.
-#
-
-#
-# Modules
-#
-
-# Sets sane Zsh built-in environment options.
-zmodule environment
-# Provides handy git aliases and functions.
-zmodule git
-# Applies correct bindkeys for input events.
-zmodule input
-# Sets a custom terminal title.
-zmodule termtitle
-# Utility aliases and functions. Adds colour to ls, grep and less.
-zmodule utility
-
-#
-# Prompt
-#
-
-# Exposes to prompts how long the last command took to execute
-zmodule duration-info
-# Exposes git repository status information to prompts
-zmodule git-info
-# Exposes currently working directory to prompts
-zmodule prompt-pwd
-
-zmodule s1ck94
-
-#
-# Completion
-#
-
-# Additional completion definitions for Zsh.
-zmodule zsh-users/zsh-completions --fpath src
-# Enables and configures smart and extensive tab completion.
-# completion must be sourced after all modules that add completion definitions.
-zmodule completion
-
-#
-# Modules that must be initialized last
-#
-
-# Fish-like syntax highlighting for Zsh.
-# zsh-users/zsh-syntax-highlighting must be sourced after completion
-zmodule zsh-users/zsh-syntax-highlighting
-# Fish-like history search (up arrow) for Zsh.
-# zsh-users/zsh-history-substring-search must be sourced after zsh-users/zsh-syntax-highlighting
-zmodule zsh-users/zsh-history-substring-search
-# Fish-like autosuggestions for Zsh.
-zmodule zsh-users/zsh-autosuggestions
-# }}} End configuration added by Zim install
-
diff --git a/zsh/dot-zshenv b/zsh/dot-zshenv
deleted file mode 100644
index 2c60bef..0000000
--- a/zsh/dot-zshenv
+++ /dev/null
@@ -1 +0,0 @@
-ON_COLOR=magenta
diff --git a/zsh/dot-zshrc b/zsh/dot-zshrc
deleted file mode 100644
index fd01ac2..0000000
--- a/zsh/dot-zshrc
+++ /dev/null
@@ -1,135 +0,0 @@
-# Start configuration added by Zim install {{{
-#
-# User configuration sourced by interactive shells
-#
-
-# -----------------
-# Zsh configuration
-# -----------------
-
-#
-# History
-#
-
-# Remove older command from the history if a duplicate is to be added.
-setopt HIST_IGNORE_ALL_DUPS
-
-#
-# Input/output
-#
-
-# Set editor default keymap to emacs (`-e`) or vi (`-v`)
-bindkey -e
-
-# Prompt for spelling correction of commands.
-#setopt CORRECT
-
-# Customize spelling correction prompt.
-#SPROMPT='zsh: correct %F{red}%R%f to %F{green}%r%f [nyae]? '
-
-# Remove path separator from WORDCHARS.
-WORDCHARS=${WORDCHARS//[\/]}
-
-# -----------------
-# Zim configuration
-# -----------------
-
-# Use degit instead of git as the default tool to install and update modules.
-#zstyle ':zim:zmodule' use 'degit'
-
-# --------------------
-# Module configuration
-# --------------------
-
-#
-# git
-#
-
-# Set a custom prefix for the generated aliases. The default prefix is 'G'.
-#zstyle ':zim:git' aliases-prefix 'g'
-
-#
-# input
-#
-
-# Append `../` to your input for each `.` you type after an initial `..`
-#zstyle ':zim:input' double-dot-expand yes
-
-#
-# termtitle
-#
-
-# Set a custom terminal title format using prompt expansion escape sequences.
-# See http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Simple-Prompt-Escapes
-# If none is provided, the default '%n@%m: %~' is used.
-#zstyle ':zim:termtitle' format '%1~'
-
-#
-# zsh-autosuggestions
-#
-
-# Disable automatic widget re-binding on each precmd. This can be set when
-# zsh-users/zsh-autosuggestions is the last module in your ~/.zimrc.
-ZSH_AUTOSUGGEST_MANUAL_REBIND=1
-
-# Customize the style that the suggestions are shown with.
-# See https://github.com/zsh-users/zsh-autosuggestions/blob/master/README.md#suggestion-highlight-style
-#ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=242'
-
-#
-# zsh-syntax-highlighting
-#
-
-# Set what highlighters will be used.
-# See https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md
-ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets)
-
-# Customize the main highlighter styles.
-# See https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters/main.md#how-to-tweak-it
-#typeset -A ZSH_HIGHLIGHT_STYLES
-#ZSH_HIGHLIGHT_STYLES[comment]='fg=242'
-
-# ------------------
-# Initialize modules
-# ------------------
-
-ZIM_HOME=${ZDOTDIR:-${HOME}}/.zim
-# Download zimfw plugin manager if missing.
-if [[ ! -e ${ZIM_HOME}/zimfw.zsh ]]; then
- if (( ${+commands[curl]} )); then
- curl -fsSL --create-dirs -o ${ZIM_HOME}/zimfw.zsh \
- https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh
- else
- mkdir -p ${ZIM_HOME} && wget -nv -O ${ZIM_HOME}/zimfw.zsh \
- https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh
- fi
-fi
-# Install missing modules, and update ${ZIM_HOME}/init.zsh if missing or outdated.
-if [[ ! ${ZIM_HOME}/init.zsh -nt ${ZIM_CONFIG_FILE:-${ZDOTDIR:-${HOME}}/.zimrc} ]]; then
- source ${ZIM_HOME}/zimfw.zsh init
-fi
-# Initialize modules.
-source ${ZIM_HOME}/init.zsh
-
-# ------------------------------
-# Post-init module configuration
-# ------------------------------
-
-#
-# zsh-history-substring-search
-#
-
-zmodload -F zsh/terminfo +p:terminfo
-# Bind ^[[A/^[[B manually so up/down works both before and after zle-line-init
-for key ('^[[A' '^P' ${terminfo[kcuu1]}) bindkey ${key} history-substring-search-up
-for key ('^[[B' '^N' ${terminfo[kcud1]}) bindkey ${key} history-substring-search-down
-for key ('k') bindkey -M vicmd ${key} history-substring-search-up
-for key ('j') bindkey -M vicmd ${key} history-substring-search-down
-unset key
-# }}} End configuration added by Zim install
-
-HISTFILE=~/.histfile
-HISTSIZE=1000
-SAVEHIST=5000
-unsetopt beep
-bindkey -v