Finished hacker theme mostly and added some other configs

This commit is contained in:
ManOfGoldForever 2026-04-03 10:57:53 -04:00
parent 0c499ecbd6
commit ad06f5284e
91 changed files with 1928 additions and 3 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
agent/ agent/
.claude/

View file

@ -0,0 +1,16 @@
# sway does not set DISPLAY/WAYLAND_DISPLAY in the systemd user environment
# See FS#63021
# Adapted from xorg's 50-systemd-user.sh, which achieves a similar goal.
# Upstream refuses to set XDG_CURRENT_DESKTOP so we have to.
exec systemctl --user set-environment XDG_CURRENT_DESKTOP=sway
exec systemctl --user import-environment DISPLAY \
SWAYSOCK \
WAYLAND_DISPLAY \
XDG_CURRENT_DESKTOP
exec hash dbus-update-activation-environment 2>/dev/null && \
dbus-update-activation-environment --systemd DISPLAY \
SWAYSOCK \
XDG_CURRENT_DESKTOP=sway \
WAYLAND_DISPLAY

View file

@ -0,0 +1,6 @@
#!/bin/bash
export WLR_NO_HARDWARE_CURSORS=1
export GBM_BACKEND=nvidia-drm
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export WLR_RENDERER=vulkan
exec sway --unsupported-gpu

View file

@ -0,0 +1,9 @@
# Wallpaper
output * bg /mnt/data/Wallpapers/solid_background_dark.png fill
# My monitors (change to work for yours):
output HDMI-A-1 res 1920x1080@239.76Hz pos 0,0 transform 0
output DP-1 res 2560x1440@59.95Hz pos 1920,0 transform 270
output eDP-2 disable
# You can get the names of your outputs by running: swaymsg -t get_outputs

View file

@ -0,0 +1,170 @@
include ./monitors
include ./exec
include ./theme
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
set $gnome-schema org.gnome.desktop.interface
exec_always {
export WLR_NO_HARDWARE_CURSORS=1
export GBM_BACKEND=nvidia-drm
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export WLR_RENDERER=vulkan
}
include "$(/usr/libexec/sway/layered-include '/usr/share/sway/config.d/*.conf' '/etc/sway/config.d/*.conf')"
set $mod Mod4
# direction keys
set $left h
set $down j
set $up k
set $right l
set $term kitty
set $menu rofi -show drun
set $browser /home/henry/AppImages/helium.appimage
set $filemanager kitty -e yazi
for_window [app_id="rofi"] floating enable
# -Key bindings-
# Basics:
bindsym $mod+Return exec $term
bindsym $mod+q kill
bindsym $mod+space exec $menu
floating_modifier $mod normal
bindsym $mod+Shift+r reload
bindsym $mod+Shift+e exit
# App launchers:
bindsym $mod+b exec $browser
bindsym $mod+e exec $filemanager
bindsym $mod+w exec ~/.config/rofi/wallpaper_selector.sh
bindsym $mod+p exec wlogout
bindsym $mod+s exec steam
bindsym $mod+a exec mumble
bindsym $mod+z exec swaylock -f -c 282a36
bindsym $mod+o exec killall -SIGUSR2 waybar
# Moving around:
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# Workspaces:
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
bindsym $mod+n workspace number 11
bindsym $mod+m workspace number 12
# Move window silently to workspace:
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
bindsym $mod+Shift+n move container to workspace number 11
bindsym $mod+Shift+m move container to workspace number 12
# Move window to workspace and follow:
bindsym $mod+Ctrl+1 move container to workspace number 1; workspace number 1
bindsym $mod+Ctrl+2 move container to workspace number 2; workspace number 2
bindsym $mod+Ctrl+3 move container to workspace number 3; workspace number 3
bindsym $mod+Ctrl+4 move container to workspace number 4; workspace number 4
bindsym $mod+Ctrl+5 move container to workspace number 5; workspace number 5
bindsym $mod+Ctrl+6 move container to workspace number 6; workspace number 6
bindsym $mod+Ctrl+7 move container to workspace number 7; workspace number 7
bindsym $mod+Ctrl+8 move container to workspace number 8; workspace number 8
bindsym $mod+Ctrl+9 move container to workspace number 9; workspace number 9
bindsym $mod+Ctrl+0 move container to workspace number 10; workspace number 10
bindsym $mod+Ctrl+Left move container to workspace prev; workspace prev
bindsym $mod+Ctrl+Right move container to workspace next; workspace next
# Workspace cycling:
bindsym $mod+period workspace next_on_output
bindsym $mod+comma workspace prev_on_output
bindsym $mod+slash workspace back_and_forth
# Scratchpad:
bindsym $mod+minus move scratchpad
bindsym $mod+equal scratchpad show
# Layout stuff:
bindsym $mod+Shift+b splith
bindsym $mod+Shift+v splitv
bindsym $mod+Shift+s layout stacking
bindsym $mod+Shift+w layout tabbed
bindsym $mod+t layout toggle split
bindsym $mod+f fullscreen
bindsym $mod+v floating toggle
# Resize mode:
bindsym $mod+r mode "resize"
mode "resize" {
bindsym $left resize shrink width 15px
bindsym $down resize grow height 15px
bindsym $up resize shrink height 15px
bindsym $right resize grow width 15px
bindsym Left resize shrink width 15px
bindsym Down resize grow height 15px
bindsym Up resize shrink height 15px
bindsym Right resize grow width 15px
bindsym $mod+Ctrl+Shift+Left resize shrink width 15px
bindsym $mod+Ctrl+Shift+Down resize grow height 15px
bindsym $mod+Ctrl+Shift+Up resize shrink height 15px
bindsym $mod+Ctrl+Shift+Right resize grow width 15px
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
# Utilities:
# Volume
bindsym --locked XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym --locked XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
# Brightness
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
# Screenshots
bindsym Print exec grim -g "$(slurp)" - | wl-copy
bindsym Shift+Print exec grim - | wl-copy
bindsym Ctrl+Print exec grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') - | wl-copy
# Playback
bindsym $mod+bracketright exec playerctl --player=spotify_player next
bindsym $mod+bracketleft exec playerctl --player=spotify_player previous
bindsym $mod+backslash exec playerctl --player=spotify_player play-pause
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
include @sysconfdir@/sway/config.d/*

View file

@ -0,0 +1,8 @@
exec_always autotiling
exec export QT_QPA_PLATFORMTHEME=qt6ct
exec export XDG_CURRENT_DESKTOP=sway
exec systemctl --user set-environment XDG_CURRENT_DESKTOP=sway
exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
exec systemctl --user start xdg-desktop-portal-wlr.service
exec waybar -c ~/.config/waybar/sway-config -s ~/.config/waybar/style.css
exec $term

View file

@ -0,0 +1,27 @@
gaps inner 2px
gaps outer 2px
default_border pixel 2px
default_floating_border pixel 2px
# cursor
seat seat0 xcursor_theme Dracula 24
# Status Bar:
bar {
swaybar_command waybar
}
# -Colors-
# name border bg text ind child_border
client.focused #bd93f9 #282a36 #f8f8f2 #bd93f9 #bd93f9
client.focused_inactive #44475a #282a36 #f8f8f2 #44475a #44475a
client.unfocused #282a36 #282a36 #6272a4 #282a36 #282a36
client.urgent #ff5555 #282a36 #f8f8f2 #ff5555 #ff5555
client.placeholder #282a36 #282a36 #f8f8f2 #282a36 #282a36
# Swayfx
# comment these out if you don't use swayfx
#blur enable
#corner_radius 4
#shadows enable

View file

@ -0,0 +1,58 @@
{
"layer": "top",
"position": "top",
"height": 24,
"spacing": 4,
"modules-left": [
"sway/workspaces"
],
"modules-center": [
"sway/window"
],
"modules-right": [
"custom/media",
"custom/updates",
"custom/storage",
"tray",
"clock"
],
"sway/workspaces": {
"disable-scroll": false,
"all-outputs": false,
"format": "{name}"
},
"sway/window": {
"max-length": 128
},
"clock": {
"format": "{:%m/%d/%Y %I:%M %p}",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
},
"tray": {
"spacing": 4
},
"custom/media": {
"exec": "~/.config/waybar/mediaplayer.py --player spotify_player",
"return-type": "json",
"interval": 0,
"on-click": "playerctl play-pause",
"tooltip": false
},
"custom/storage": {
"exec": "~/.config/waybar/modules/storage.sh",
"return-type": "json",
"interval": 900,
"format": "{}",
"tooltip": false
},
"custom/updates": {
"exec": "~/.config/waybar/modules/update-check.sh",
"interval": 900,
"return-type": "json",
"format": "{text}",
"on-click": "kitty -e fish -ic 'update'",
"on-output": "class: no-updates",
"on-error": "class: updates-available",
"tooltip": false
}
}

View file

@ -1,3 +0,0 @@
[flavor]
dark = "dracula"
light = "dracula"

View file

@ -0,0 +1,38 @@
## Configuration file for CAVA.
[general]
; framerate = 60
; autosens = 1
; bars = 0
; bar_width = 2
; bar_spacing = 1
[input]
; method = pipewire
; source = auto
[output]
; method = noncurses
[color]
# Gradient from dim to bright orange
gradient = 1
gradient_color_1 = '#2a2b2a'
gradient_color_2 = '#7a4020'
gradient_color_3 = '#b05a28'
gradient_color_4 = '#d07038'
gradient_color_5 = '#ef934d'
gradient_color_6 = '#f4a868'
gradient_color_7 = '#f8c090'
gradient_color_8 = '#f4decd'
[smoothing]
; noise_reduction = 77
[eq]
; 1 = 1
; 2 = 1
; 3 = 1
; 4 = 1
; 5 = 1

View file

@ -0,0 +1,34 @@
source /usr/share/cachyos-fish-config/cachyos-config.fish
fish_config theme choose "Hacker"
oh-my-posh init fish --config ~/.config/oh-my-posh/hacker.omp.json | source
alias mntnas="sudo mount -a"
# Set Zed as the default editor
set -gx EDITOR /usr/local/bin/zed_sudo_wrapper
set -gx VISUAL "zeditor --wait"
set -gx SUDO_EDITOR "zeditor --wait"
# Start SSH agent if not already running
if not set -q SSH_AGENT_PID
eval (ssh-agent -c)
end
function update
sudo pacman -Syu --noconfirm
paru -Syu --noconfirm
sudo pacman -Sc --noconfirm
paru -Sc --noconfirm
end
function helium
exec /usr/bin/helium-0.6.9.1-x86_64.AppImage
end
function add_ssh_key
set -l ssh_key ~/.ssh/github-ssh
echo "Adding SSH key..."
ssh-add $ssh_key
end

View file

@ -0,0 +1,32 @@
# Hacker theme for fish shell
fish_color_normal f4decd
fish_color_command ef934d
fish_color_keyword ef934d
fish_color_quote e8c97e
fish_color_redirection 71b4d6
fish_color_end f4decd
fish_color_error f16e65
fish_color_param f4decd
fish_color_comment 6a6a6a
fish_color_selection --background=2a2b2a
fish_color_search_match --background=1e1f1e
fish_color_operator ef934d
fish_color_escape f4decd
fish_color_autosuggestion 6a6a6a
fish_color_cwd ef934d
fish_color_cwd_root f16e65
fish_color_valid_path --underline
fish_color_user ef934d
fish_color_host f4decd
fish_color_host_remote e8c97e
fish_color_cancel f16e65
fish_pager_color_progress 6a6a6a
fish_pager_color_background
fish_pager_color_prefix ef934d
fish_pager_color_completion f4decd
fish_pager_color_description 6a6a6a
fish_pager_color_selected_background --background=2a2b2a
fish_pager_color_selected_prefix ef934d
fish_pager_color_selected_completion f4decd
fish_pager_color_selected_description e8c97e

View file

@ -0,0 +1,21 @@
highlight_color = "#ef934d"
cursor = "█"
terminal_launcher = "kitty -e"
hard_stop = false
rounded_borders = false
main_border_color = "#3b403c"
apps_border_color = "#3b403c"
input_border_color = "#3b403c"
main_text_color = "#f4decd"
apps_text_color = "#f4decd"
input_text_color = "#f4decd"
fancy_mode = true
header_title_color = "#ef934d"
title_panel_height_percent = 30
input_panel_height = 3

View file

@ -0,0 +1,17 @@
[Settings]
gtk-theme-name=Adwaita-dark
gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Inter Variable 11
gtk-cursor-theme-name=Bibata-Original-Ice
gtk-cursor-theme-size=24
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
gtk-application-prefer-dark-theme=1

View file

@ -0,0 +1,7 @@
[Settings]
gtk-theme-name=Adwaita-dark
gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Inter Variable 11
gtk-cursor-theme-name=Bibata-Original-Ice
gtk-cursor-theme-size=24
gtk-application-prefer-dark-theme=1

View file

@ -0,0 +1,56 @@
foreground #f4decd
background #141514
selection_foreground #141514
selection_background #ef934d
url_color #71b4d6
# black
color0 #141514
color8 #2a2b2a
# red
color1 #f16e65
color9 #ff8a82
# green
color2 #7ec97e
color10 #a8e6a8
# yellow
color3 #e8c97e
color11 #f5dfa0
# blue
color4 #71b4d6
color12 #9ecfe8
# magenta
color5 #ef934d
color13 #f5b07a
# cyan
color6 #7ec9c4
color14 #a8e6e2
# white
color7 #f4decd
color15 #ffffff
# Cursor colors
cursor #ef934d
cursor_text_color background
# Tab bar colors
active_tab_foreground #141514
active_tab_background #ef934d
inactive_tab_foreground #6a6a6a
inactive_tab_background #1e1f1e
# Marks
mark1_foreground #141514
mark1_background #f16e65
# Splits/Windows
active_border_color #ef934d
inactive_border_color #1e1f1e

View file

@ -0,0 +1,10 @@
include hacker.conf
confirm_os_window_close 0
# BEGIN_KITTY_FONTS
font_family family="Iosevka Term"
bold_font auto
italic_font auto
bold_italic_font auto
# END_KITTY_FONTS

View file

@ -0,0 +1,14 @@
width=350
height=110
margin=5
padding=10
border-size=2
border-radius=0
icons=1
max-icon-size=64
default-timeout=5000
text-alignment=left
background-color=#141514
text-color=#f4decd
border-color=#ef934d

View file

@ -0,0 +1,7 @@
{
"export-settings-ini": true,
"export-gtkrc-20": true,
"export-index-theme": true,
"export-xsettingsd": true,
"export-gtk4-symlinks": true
}

View file

@ -0,0 +1,90 @@
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": [
{
"alignment": "left",
"segments": [
{
"foreground": "#ef934d",
"style": "plain",
"template": "{{ .UserName }}@{{ .HostName }} ",
"type": "session"
},
{
"foreground": "#f4decd",
"style": "plain",
"properties": {
"style": "folder"
},
"template": "{{ .Path }} ",
"type": "path"
},
{
"foreground": "#6a6a6a",
"style": "plain",
"properties": {
"branch_icon": " ",
"fetch_status": true,
"fetch_upstream_icon": true
},
"template": "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }}<#ef934d> *</>{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }}<#7ec97e> +</>{{ end }}{{ if gt .StashCount 0 }}<#6a6a6a> {{ .StashCount }}</>{{ end }} ",
"type": "git"
},
{
"foreground": "#6a6a6a",
"style": "plain",
"properties": {
"style": "austin",
"threshold": 500
},
"template": "{{ .FormattedMs }} ",
"type": "executiontime"
}
],
"type": "prompt"
},
{
"alignment": "right",
"segments": [
{
"foreground": "#6a6a6a",
"style": "plain",
"properties": {
"time_format": "01/02 15:04"
},
"template": "{{ .CurrentDate | date .Format }}",
"type": "time"
}
],
"type": "prompt"
},
{
"alignment": "left",
"newline": true,
"segments": [
{
"foreground": "#ef934d",
"foreground_templates": [
"{{ if gt .Code 0 }}#f16e65{{ end }}"
],
"style": "plain",
"properties": {
"always_enabled": true
},
"template": " ",
"type": "status"
}
],
"type": "prompt"
}
],
"transient_prompt": {
"foreground": "#ef934d",
"foreground_templates": [
"{{ if gt .Code 0 }}#f16e65{{ end }}"
],
"template": " "
},
"console_title_template": "{{ .Folder }}",
"version": 3
}

View file

@ -0,0 +1,117 @@
[general]
default_module = "app"
empty_module = "a"
exec_cmd = "sh -c"
vi_mode = true
esc_to_abort = true
cheatsheet_entry = "?"
cheatsheet_viewer = "less -R; clear"
clear_screen_after_execution = false
loop_mode = false
external_editor = ""
[interface]
header = """
\u001B[34;1m >\u001B[0m $USER@$(echo $HOSTNAME) \u001B[31m\u001B[0m $(cat /proc/loadavg | cut -d ' ' -f 1) \u001B[33m󰍛\u001B[0m $(free -h | awk 'FNR == 2 {print $3}' | sed 's/i//')
\u001B[34;1m>\u001B[0;1m """
header_cmd = ""
header_cmd_trimmed_lines = 0
header_concatenate = false
list_prefix = " "
selection_prefix = " \u001B[31;1m> "
place_holder = "type and search"
default_module_message = " \u001B[33msearch\u001B[0m the internet"
empty_module_message = ""
suggestion_mode = "list"
suggestion_lines = 12
indicator_with_arg_module = "\u001B[31m^\u001B[0m "
indicator_no_arg_module = "\u001B[31m$\u001B[0m "
prefix_padding = 3
prefix_color = "\u001B[33m"
description_color = "\u001B[39m"
place_holder_color = "\u001B[30m"
hint_color = "\u001B[30m"
move_right = 0
move_up = 0
[[modules]]
description = "search with brave"
prefix = "br"
cmd = "setsid -f xdg-open 'https://search.brave.com/search?q={}'"
with_argument = true
url_encode = true
[[modules]]
description = "kill a running app"
prefix = "k"
cmd = 'ps -u "$USER" -o comm= | sort -u | fsel --dmenu | xargs -r pkill -9'
with_argument = true
url_encode = true
[[modules]]
description = "launch apps with fsel"
prefix = "a"
cmd = "fsel -vv -r -d -ss \"{}\""
with_argument = true
[[modules]]
description = "launch apps instantly"
prefix = "app"
cmd = "fsel -vv -r -d -p {}"
with_argument = true
[[modules]]
description = "manage clipboard with fsel"
prefix = "cl"
cmd = """
fsel --cclip
"""
[[modules]]
description = "find pkgs"
prefix = "pm"
cmd = "pmux -SD {}"
with_argument = true
[[modules]]
description = "install pkgs"
prefix = "i"
cmd = "pmux -S {}"
with_argument = true
[[modules]]
description = "power menu"
prefix = "p"
cmd = """
function power {
if [[ -n $1 ]]; then
case $1 in
"logout") swaymsg exit ;;
"suspend") systemctl suspend ;;
"hibernate") systemctl hibernate ;;
"reboot") systemctl reboot ;;
"shutdown") systemctl poweroff ;;
esac fi }
power $(echo -e 'reboot\nshutdown\nlogout\nsuspend\nhibernate' | fzf --reverse --no-scrollbar --padding 1,3 --prompt 'Power Menu: ' | tail -1)
"""
[[modules]]
description = "run command in terminal"
prefix = "s"
cmd = "setsid -f kitty -e {}"
with_argument = true
[[modules]]
description = "search archwiki"
prefix = "w"
cmd = "setsid -f xdg-open https://wiki.archlinux.org/index.php?search='{}'"
with_argument = true
url_encode = true
[[modules]]
description = "cambridge dictionary"
prefix = "dc"
cmd = "setsid -f xdg-open 'https://dictionary.cambridge.org/dictionary/english/{}'"
with_argument = true
url_encode = true

View file

@ -0,0 +1,86 @@
* {
bg: #141514;
bg-alt: #1e1f1e;
bg-active: #2a2b2a;
fg: #f4decd;
fg-dim: #6a6a6a;
accent: #ef934d;
urgent: #f16e65;
}
configuration {
font: "RobotoMono Nerd Font 11";
show-icons: true;
icon-theme: "Papirus-Dark";
}
window {
background-color: @bg;
border: 2px solid;
border-color: @accent;
border-radius: 0px;
padding: 0px;
width: 600px;
}
mainbox {
background-color: transparent;
children: [inputbar, listview];
spacing: 0px;
}
inputbar {
background-color: @bg-alt;
border: 0 0 2px 0;
border-color: @bg-active;
border-radius: 0px;
padding: 8px;
children: [prompt, entry];
}
prompt {
background-color: transparent;
text-color: @accent;
padding: 0 6px 0 0;
}
entry {
background-color: transparent;
text-color: @fg;
placeholder-color: @fg-dim;
placeholder: "search...";
}
listview {
background-color: transparent;
columns: 1;
lines: 8;
spacing: 0px;
scrollbar: false;
padding: 4px 0;
}
element {
background-color: transparent;
padding: 6px 8px;
border-radius: 0px;
}
element selected {
background-color: @bg-active;
text-color: @fg;
border: 0 0 0 2px;
border-color: @accent;
}
element-text {
background-color: transparent;
text-color: inherit;
vertical-align: 0.5;
}
element-icon {
background-color: transparent;
size: 1.2em;
vertical-align: 0.5;
}

View file

@ -0,0 +1,73 @@
theme = "Hacker"
client_id = "a5e67511fd004d1d96bc0d1cfc8c29fc"
client_port = 8080
login_redirect_uri = "http://127.0.0.1:8989/login"
playback_format = """
{status} {track} {artists} {liked}
{album} {genres}
{metadata}"""
playback_metadata_fields = [
"repeat",
"shuffle",
"volume",
"device",
]
notify_timeout_in_secs = 0
tracks_playback_limit = 50
app_refresh_duration_in_ms = 32
playback_refresh_duration_in_ms = 0
page_size_in_rows = 20
play_icon = "▶"
pause_icon = "▌▌"
liked_icon = "♥"
border_type = "Plain"
progress_bar_type = "Rectangle"
progress_bar_position = "Bottom"
genre_num = 2
cover_img_length = 9
cover_img_width = 5
cover_img_scale = 1.0
enable_media_control = true
enable_streaming = "Always"
enable_notify = true
enable_cover_image_cache = true
default_device = "cachyos-player"
notify_streaming_only = false
seek_duration_secs = 5
sort_artist_albums_by_type = false
[notify_format]
summary = "{track} • {artists}"
body = "{album}"
[layout]
playback_window_position = "Top"
playback_window_height = 6
[layout.library]
playlist_percent = 40
album_percent = 40
[device]
name = "cachyos-player"
device_type = "speaker"
volume = 70
bitrate = 320
audio_cache = false
normalization = false
autoplay = false
[[themes]]
name = "Hacker"
[themes.component_style]
block_title = { fg = "Yellow" }
border = { fg = "DarkGray" }
playback_track = { fg = "Yellow", modifiers = "Bold" }
playback_artists = { fg = "White" }
playback_album = { fg = "DarkGray" }
playback_metadata = { fg = "DarkGray" }
playback_progress_bar = { bg = "Yellow", fg = "DarkGray" }
current_playing = { fg = "Yellow", modifiers = "Bold" }
page_desc = { fg = "DarkGray", modifiers = "Italic" }
table_header = { fg = "Yellow" }
selection = { bg = "DarkGray", modifiers = "Bold" }

View file

@ -0,0 +1,171 @@
include ./monitors
include ./exec
include ./theme
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
set $gnome-schema org.gnome.desktop.interface
exec_always {
export WLR_NO_HARDWARE_CURSORS=1
export GBM_BACKEND=nvidia-drm
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export WLR_RENDERER=vulkan
}
include "$(/usr/libexec/sway/layered-include '/usr/share/sway/config.d/*.conf' '/etc/sway/config.d/*.conf')"
set $mod Mod4
# direction keys
set $left h
set $down j
set $up k
set $right l
set $term kitty
set $menu kitty --app-id fsel fsel -r -d
set $launcher kitty --app-id otter-launcher otter-launcher
set $browser /home/henry/AppImages/helium.appimage
set $filemanager kitty -e yazi
for_window [app_id="fsel"] border pixel 2
for_window [app_id="otter-launcher"] border pixel 2
# -Key bindings-
# Basics:
bindsym $mod+Return exec $term
bindsym $mod+q kill
bindsym $mod+space exec $menu
bindsym $mod+d exec $launcher
floating_modifier $mod normal
bindsym $mod+Shift+r reload
bindsym $mod+Shift+e exit
# App launchers:
bindsym $mod+b exec $browser
bindsym $mod+e exec $filemanager
bindsym $mod+w exec ~/.config/rofi/wallpaper_selector.sh
bindsym $mod+p exec wlogout
bindsym $mod+s exec steam
bindsym $mod+a exec mumble
# Moving around:
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# Workspaces:
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
bindsym $mod+n workspace number 11
bindsym $mod+m workspace number 12
# Move window silently to workspace:
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
bindsym $mod+Shift+n move container to workspace number 11
bindsym $mod+Shift+m move container to workspace number 12
# Move window to workspace and follow:
bindsym $mod+Ctrl+1 move container to workspace number 1; workspace number 1
bindsym $mod+Ctrl+2 move container to workspace number 2; workspace number 2
bindsym $mod+Ctrl+3 move container to workspace number 3; workspace number 3
bindsym $mod+Ctrl+4 move container to workspace number 4; workspace number 4
bindsym $mod+Ctrl+5 move container to workspace number 5; workspace number 5
bindsym $mod+Ctrl+6 move container to workspace number 6; workspace number 6
bindsym $mod+Ctrl+7 move container to workspace number 7; workspace number 7
bindsym $mod+Ctrl+8 move container to workspace number 8; workspace number 8
bindsym $mod+Ctrl+9 move container to workspace number 9; workspace number 9
bindsym $mod+Ctrl+0 move container to workspace number 10; workspace number 10
bindsym $mod+Ctrl+Left move container to workspace prev; workspace prev
bindsym $mod+Ctrl+Right move container to workspace next; workspace next
# Workspace cycling:
bindsym $mod+period workspace next_on_output
bindsym $mod+comma workspace prev_on_output
bindsym $mod+slash workspace back_and_forth
# Scratchpad:
bindsym $mod+minus move scratchpad
bindsym $mod+equal scratchpad show
# Layout stuff:
bindsym $mod+Shift+b splith
bindsym $mod+Shift+v splitv
bindsym $mod+Shift+s layout stacking
bindsym $mod+Shift+w layout tabbed
bindsym $mod+t layout toggle split
bindsym $mod+f fullscreen
bindsym $mod+v floating toggle
# Resize mode:
bindsym $mod+r mode "resize"
mode "resize" {
bindsym $left resize shrink width 15px
bindsym $down resize grow height 15px
bindsym $up resize shrink height 15px
bindsym $right resize grow width 15px
bindsym Left resize shrink width 15px
bindsym Down resize grow height 15px
bindsym Up resize shrink height 15px
bindsym Right resize grow width 15px
bindsym $mod+Ctrl+Shift+Left resize shrink width 15px
bindsym $mod+Ctrl+Shift+Down resize grow height 15px
bindsym $mod+Ctrl+Shift+Up resize shrink height 15px
bindsym $mod+Ctrl+Shift+Right resize grow width 15px
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
# Utilities:
# Volume
bindsym --locked XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym --locked XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
# Brightness
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
# Screenshots
bindsym Print exec grim -g "$(slurp)" - | wl-copy
bindsym Shift+Print exec grim - | wl-copy
bindsym Ctrl+Print exec grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') - | wl-copy
# Playback
bindsym $mod+bracketright exec playerctl --player=spotify_player next
bindsym $mod+bracketleft exec playerctl --player=spotify_player previous
bindsym $mod+backslash exec playerctl --player=spotify_player play-pause
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
include @sysconfdir@/sway/config.d/*

View file

@ -0,0 +1,6 @@
exec_always autotiling
exec export QT_QPA_PLATFORMTHEME=qt6ct
exec export XDG_CURRENT_DESKTOP=sway
exec systemctl --user set-environment XDG_CURRENT_DESKTOP=sway
exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
exec systemctl --user start xdg-desktop-portal-wlr.service

View file

@ -0,0 +1,19 @@
# Wallpaper - solid color
output * bg #141514 solid_color
# Monitors:
output HDMI-A-1 res 1920x1080@239.76Hz pos 0,0 transform 0
output DP-1 res 2560x1440@59.95Hz pos 1920,0 transform 270
output eDP-2 disable
# Workspace assignments:
# 1-2 → HDMI-A-1 (primary)
# 3-5 → DP-1 (secondary)
# 6-12 → follows focused output
workspace 1 output HDMI-A-1
workspace 2 output HDMI-A-1
workspace 3 output DP-1
workspace 4 output DP-1
workspace 5 output DP-1
workspace 1

View file

@ -0,0 +1,44 @@
gaps inner 2px
gaps outer 2px
default_border pixel 2px
default_floating_border pixel 2px
# cursor
seat seat0 xcursor_theme Bibata-Original-Ice 14
# Status Bar:
bar {
swaybar_command swaybar
font Iosevka Term 12
position top
workspace_min_width 36
tray_padding 4
status_command while date +'%m/%d/%Y %I:%M %p'; do sleep 30; done
colors {
background #141514
statusline #ef934d
separator #ef934d
focused_background #1e1f1e
focused_statusline #ef934d
focused_separator #ef934d
focused_workspace #ef934d #141514 #ef934d
active_workspace #7ec97e #141514 #7ec97e
inactive_workspace #141514 #141514 #6a6a6a
urgent_workspace #f16e65 #141514 #f16e65
binding_mode #71b4d6 #141514 #71b4d6
}
}
# -Colors-
# name border bg text ind child_border
client.focused #ef944d #141514 #f4decd #ef944d #ef944d
client.focused_inactive #1e1f1e #141514 #f4decd #1e1f1e #1e1f1e
client.unfocused #1e1f1e #141514 #f4decd #1e1f1e #1e1f1e
client.urgent #f16e65 #141514 #f4decd #f16e65 #f16e65
client.placeholder #1e1f1e #141514 #f4decd #1e1f1e #1e1f1e
# Swayfx
#blur enable
#corner_radius 0
#shadows enable

View file

@ -0,0 +1,13 @@
@define-color background-darkest rgba(12, 14, 12, 255);
@define-color background-darker rgba(20, 21, 20, 230);
@define-color background #141514;
@define-color background-active #1e1f1e;
@define-color selection #2a2b2a;
@define-color foreground #f4decd;
@define-color comment #6a6a6a;
@define-color orange #ef934d;
@define-color red #f16e65;
@define-color green #7ec97e;
@define-color blue #71b4d6;
@define-color yellow #e8c97e;
@define-color cyan #7ec9c4;

View file

@ -0,0 +1,58 @@
{
"layer": "top",
"position": "top",
"height": 24,
"spacing": 4,
"modules-left": [
"sway/workspaces"
],
"modules-center": [
"sway/window"
],
"modules-right": [
"custom/media",
"custom/updates",
"custom/storage",
"tray",
"clock"
],
"sway/workspaces": {
"disable-scroll": false,
"all-outputs": false,
"format": "{name}"
},
"sway/window": {
"max-length": 128
},
"clock": {
"format": "{:%m/%d/%Y %I:%M %p}",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
},
"tray": {
"spacing": 4
},
"custom/media": {
"exec": "~/.config/waybar/mediaplayer.py --player spotify_player",
"return-type": "json",
"interval": 0,
"on-click": "playerctl play-pause",
"tooltip": false
},
"custom/storage": {
"exec": "~/.config/waybar/modules/storage.sh",
"return-type": "json",
"interval": 900,
"format": "{}",
"tooltip": false
},
"custom/updates": {
"exec": "~/.config/waybar/modules/update-check.sh",
"interval": 900,
"return-type": "json",
"format": "{text}",
"on-click": "kitty -e fish -ic 'update'",
"on-output": "class: no-updates",
"on-error": "class: updates-available",
"tooltip": false
}
}

View file

@ -0,0 +1,61 @@
@import url("./colors.css");
* {
border: none;
border-radius: 0;
font-family: "RobotoMono Nerd Font", "Iosevka Term", monospace;
font-size: 11pt;
min-height: 0;
}
window#waybar {
background: @background;
color: @foreground;
border-bottom: 2px solid @orange;
}
#workspaces button {
padding: 0 10px;
background: @background;
color: @comment;
border-radius: 0;
}
#workspaces button:hover {
box-shadow: inherit;
text-shadow: inherit;
background: @background-active;
color: @foreground;
}
#workspaces button.focused,
#workspaces button.active {
background: @background-active;
color: @orange;
border-bottom: 2px solid @orange;
}
#workspaces button.urgent {
background: @background-active;
color: @red;
border-bottom: 2px solid @red;
}
#clock {
padding: 0 8px;
color: @foreground;
}
#custom-updates.no-updates {
color: @comment;
}
#custom-updates.updates-available {
color: @orange;
}
#custom-media {
color: @foreground;
padding: 0 4px;
}
#custom-storage {
color: @comment;
padding: 0 4px;
}
#tray {
padding: 0 4px;
}
#window {
color: @comment;
padding: 0 4px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -0,0 +1,30 @@
{
"label" : "hibernate",
"action" : "systemctl hibernate",
"text" : "Hibernate",
"keybind" : "h"
}
{
"label" : "logout",
"action" : "swaymsg exit",
"text" : "Logout",
"keybind" : "e"
}
{
"label" : "shutdown",
"action" : "systemctl poweroff",
"text" : "Shutdown",
"keybind" : "s"
}
{
"label" : "suspend",
"action" : "systemctl suspend",
"text" : "Suspend",
"keybind" : "u"
}
{
"label" : "reboot",
"action" : "systemctl reboot",
"text" : "Reboot",
"keybind" : "r"
}

View file

@ -0,0 +1,47 @@
* {
background-image: none;
box-shadow: none;
}
window {
background-color: rgba(20, 21, 20, 0.92);
}
button {
border-radius: 0px;
margin: 4px;
border-style: solid;
border-width: 2px;
border-color: #ef934d;
background-color: #1e1f1e;
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
color: #ef934d;
}
button:focus, button:active, button:hover {
border-color: #ef934d;
background-color: #2a2b2a;
outline-style: none;
}
#logout {
background-image: image(url("icons/logout.png"));
}
#suspend {
background-image: image(url("icons/suspend.png"));
}
#hibernate {
background-image: image(url("icons/hibernate.png"));
}
#shutdown {
background-image: image(url("icons/shutdown.png"));
}
#reboot {
background-image: image(url("icons/reboot.png"));
}

View file

@ -0,0 +1,14 @@
margin = 50
anchor = bottom center
background_color = 141514ff
bar_color = ef934dff
border_color = ef934dff
overflow_background_color = 141514ff
overflow_bar_color = f16e65ff
overflow_border_color = f16e65ff
[style.muted]
bar_color = 2a2b2aff
overflow_bar_color = 2a2b2aff

View file

@ -0,0 +1,9 @@
Net/ThemeName "Adwaita-dark"
Net/IconThemeName "Papirus-Dark"
Gtk/CursorThemeName "Bibata-Original-Ice"
Net/EnableEventSounds 1
EnableInputFeedbackSounds 0
Xft/Antialias 1
Xft/Hinting 1
Xft/HintStyle "hintslight"
Xft/RGBA "rgb"

View file

@ -0,0 +1,81 @@
[manager]
cwd = { fg = "#ef934d" }
hovered = { fg = "#f4decd", bg = "#2a2b2a", bold = true }
preview_hovered = { fg = "#f4decd", bg = "#1e1f1e" }
find_keyword = { fg = "#ef934d", bold = true }
find_position = { fg = "#f4decd", bg = "#2a2b2a" }
marker_selected = { fg = "#ef934d", bg = "#ef934d" }
marker_copied = { fg = "#7ec97e", bg = "#7ec97e" }
marker_cut = { fg = "#f16e65", bg = "#f16e65" }
tab_active = { fg = "#141514", bg = "#ef934d", bold = true }
tab_inactive = { fg = "#6a6a6a", bg = "#1e1f1e" }
tab_width = 1
count_copied = { fg = "#141514", bg = "#7ec97e" }
count_cut = { fg = "#141514", bg = "#f16e65" }
border_symbol = "│"
border_style = { fg = "#2a2b2a" }
[status]
separator_open = ""
separator_close = ""
separator_style = { fg = "#1e1f1e", bg = "#1e1f1e" }
mode_normal = { fg = "#141514", bg = "#ef934d", bold = true }
mode_select = { fg = "#141514", bg = "#7ec97e", bold = true }
mode_unset = { fg = "#141514", bg = "#f16e65", bold = true }
progress_label = { fg = "#f4decd", bold = true }
progress_normal = { fg = "#ef934d", bg = "#1e1f1e" }
progress_error = { fg = "#f16e65", bg = "#1e1f1e" }
permissions_t = { fg = "#ef934d" }
permissions_r = { fg = "#e8c97e" }
permissions_w = { fg = "#f16e65" }
permissions_x = { fg = "#7ec97e" }
permissions_s = { fg = "#6a6a6a" }
[input]
border = { fg = "#ef934d" }
title = { fg = "#ef934d" }
value = { fg = "#f4decd" }
selected = { fg = "#141514", bg = "#ef934d" }
[completion]
border = { fg = "#2a2b2a" }
active = { fg = "#f4decd", bg = "#2a2b2a" }
inactive = { fg = "#6a6a6a" }
[tasks]
border = { fg = "#ef934d" }
title = { fg = "#ef934d" }
hovered = { fg = "#f4decd", bg = "#2a2b2a" }
[which]
mask = { bg = "#141514" }
cand = { fg = "#ef934d" }
rest = { fg = "#6a6a6a" }
desc = { fg = "#f4decd" }
separator = " "
separator_style = { fg = "#2a2b2a" }
[notify]
title_info = { fg = "#ef934d", bold = true }
title_warn = { fg = "#e8c97e", bold = true }
title_error = { fg = "#f16e65", bold = true }
icon_info = ""
icon_warn = ""
icon_error = ""
[help]
on = { fg = "#ef934d" }
run = { fg = "#f4decd" }
desc = { fg = "#6a6a6a" }
hovered = { fg = "#141514", bg = "#ef934d" }
footer = { fg = "#141514", bg = "#2a2b2a" }

View file

@ -0,0 +1,20 @@
[filetype]
rules = [
# Directories (trailing slash in name matches dirs)
{ name = "*/", fg = "#ef934d" },
# Executables
{ is = "exec", fg = "#7ec97e" },
# Symlinks
{ is = "link", fg = "#71b4d6" },
{ is = "orphan", fg = "#f16e65" },
# Archives
{ mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio}", fg = "#e8c97e" },
# Images
{ mime = "image/*", fg = "#f4decd" },
# Audio/Video
{ mime = "{audio,video}/*", fg = "#bd93f9" },
# Documents/Text
{ mime = "text/*", fg = "#f4decd" },
# Fallback
{ name = "*", fg = "#c8c8c8" },
]

View file

@ -0,0 +1,258 @@
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
"$schema" = "https://yazi-rs.github.io/schemas/yazi.json"
[mgr]
ratio = [ 1, 4, 3 ]
sort_by = "alphabetical"
sort_sensitive = false
sort_reverse = false
sort_dir_first = true
sort_translit = false
linemode = "none"
show_hidden = true
show_symlink = true
scrolloff = 5
mouse_events = [ "click", "scroll" ]
title_format = "Yazi: {cwd}"
[preview]
wrap = "no"
tab_size = 2
max_width = 600
max_height = 900
cache_dir = ""
image_delay = 30
image_filter = "triangle"
image_quality = 75
ueberzug_scale = 1
ueberzug_offset = [ 0, 0, 0, 0 ]
[opener]
edit = [
{ run = "/usr/local/bin/zed_sudo_wrapper %s", desc = "Zed (sudo fallback)", for = "unix", block = true },
{ run = "code %s", desc = "code", for = "windows", orphan = true },
{ run = "code -w %s", desc = "code (block)", for = "windows", block = true },
]
play = [
{ run = "xdg-open %s1", desc = "Play", for = "linux" },
{ run = "open %s", desc = "Play", for = "macos" },
{ run = 'start "" %s1', orphan = true, desc = "Play", for = "windows" },
{ run = "termux-open %s1", desc = "Play", for = "android" },
{ run = "mediainfo %s1; echo 'Press enter to exit'; read _", block = true, desc = "Show media info", for = "unix" },
{ run = "mediainfo %s1 & pause", block = true, desc = "Show media info", for = "windows" },
]
open = [
{ run = "xdg-open %s1", desc = "Open", for = "linux" },
{ run = "open %s", desc = "Open", for = "macos" },
{ run = 'start "" %s1', desc = "Open", for = "windows", orphan = true },
{ run = "termux-open %s1", desc = "Open", for = "android" },
]
reveal = [
{ run = "xdg-open %d1", desc = "Reveal", for = "linux" },
{ run = "open -R %s1", desc = "Reveal", for = "macos" },
{ run = "explorer /select,%s1", desc = "Reveal", for = "windows", orphan = true },
{ run = "termux-open %d1", desc = "Reveal", for = "android" },
{ run = "clear; exiftool %s1; echo 'Press enter to exit'; read _", desc = "Show EXIF", for = "unix", block = true },
]
extract = [
{ run = "ya pub extract --list %s", desc = "Extract here" },
]
download = [
{ run = "ya emit download --open %S", desc = "Download and open" },
{ run = "ya emit download %S", desc = "Download" },
]
pdf = [
{ run = "zathura %s", desc = "Zathura", block = true },
]
zedproj = [
{ run = "zeditor -n %s", desc = "Zed (project)", for = "unix", orphan = true, block = false },
]
[open]
rules = [
# Folder
{ url = "*/", use = [ "zedproj", "open", "reveal" ] },
# TOML (force editor regardless of mime detector differences)
{ url = "*.toml", use = [ "edit", "reveal" ] },
{ mime = "application/{toml,x-toml}", use = [ "edit", "reveal" ] },
# Common config formats (force editor)
{ url = "*.{yaml,yml,conf,ini}", use = [ "edit", "reveal" ] },
# Text
{ mime = "text/*", use = [ "edit", "reveal" ] },
# Image
{ mime = "image/*", use = [ "open", "reveal" ] },
# Media
{ mime = "{audio,video}/*", use = [ "play", "reveal" ] },
# Archive
{ mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", use = [ "extract", "reveal" ] },
# JSON
{ mime = "application/{json,ndjson}", use = [ "edit", "reveal" ] },
{ mime = "*/javascript", use = [ "edit", "reveal" ] },
# Empty file
{ mime = "inode/empty", use = [ "edit", "reveal" ] },
# Virtual file system
{ mime = "vfs/{absent,stale}", use = "download" },
# PDF
{ mime = "application/pdf", use = [ "pdf" ], desc = "Open PDF" },
# Fallback
{ url = "*", use = [ "open", "reveal" ] },
]
[tasks]
micro_workers = 10
macro_workers = 10
bizarre_retry = 3
image_alloc = 536870912 # 512MB
image_bound = [ 10000, 10000 ]
suppress_preload = false
[plugin]
fetchers = [
# Mimetype
{ id = "mime", url = "*/", run = "mime.dir", prio = "high" },
{ id = "mime", url = "local://*", run = "mime.local", prio = "high" },
{ id = "mime", url = "remote://*", run = "mime.remote", prio = "high" },
]
spotters = [
{ url = "*/", run = "folder" },
# Code
{ mime = "text/*", run = "code" },
{ mime = "application/{mbox,javascript,wine-extension-ini}", run = "code" },
# Image
{ mime = "image/{avif,hei?,jxl}", run = "magick" },
{ mime = "image/svg+xml", run = "svg" },
{ mime = "image/*", run = "image" },
# Video
{ mime = "video/*", run = "video" },
# Virtual file system
{ mime = "vfs/*", run = "vfs" },
# Error
{ mime = "null/*", run = "null" },
# Fallback
{ url = "*", run = "file" },
]
preloaders = [
# Image
{ mime = "image/{avif,hei?,jxl}", run = "magick" },
{ mime = "image/svg+xml", run = "svg" },
{ mime = "image/*", run = "image" },
# Video
{ mime = "video/*", run = "video" },
# PDF
{ mime = "application/pdf", run = "pdf" },
# Font
{ mime = "font/*", run = "font" },
{ mime = "application/ms-opentype", run = "font" },
]
previewers = [
{ url = "*/", run = "folder" },
# Code
{ mime = "text/*", run = "code" },
{ mime = "application/{mbox,javascript,wine-extension-ini}", run = "code" },
# JSON
{ mime = "application/{json,ndjson}", run = "json" },
# Image
{ mime = "image/{avif,hei?,jxl}", run = "magick" },
{ mime = "image/svg+xml", run = "svg" },
{ mime = "image/*", run = "image" },
# Video
{ mime = "video/*", run = "video" },
# PDF
{ mime = "application/pdf", run = "pdf" },
# Archive
{ mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", run = "archive" },
{ mime = "application/{debian*-package,redhat-package-manager,rpm,android.package-archive}", run = "archive" },
{ url = "*.{AppImage,appimage}", run = "archive" },
# Virtual Disk / Disk Image
{ mime = "application/{iso9660-image,qemu-disk,ms-wim,apple-diskimage}", run = "archive" },
{ mime = "application/virtualbox-{vhd,vhdx}", run = "archive" },
{ url = "*.{img,fat,ext,ext2,ext3,ext4,squashfs,ntfs,hfs,hfsx}", run = "archive" },
# Font
{ mime = "font/*", run = "font" },
{ mime = "application/ms-opentype", run = "font" },
# Empty file
{ mime = "inode/empty", run = "empty" },
# Virtual file system
{ mime = "vfs/*", run = "vfs" },
# Error
{ mime = "null/*", run = "null" },
# Fallback
{ url = "*", run = "file" },
]
[input]
cursor_blink = false
# cd
cd_title = "Change directory:"
cd_origin = "top-center"
cd_offset = [ 0, 2, 50, 3 ]
# create
create_title = [ "Create:", "Create (dir):" ]
create_origin = "top-center"
create_offset = [ 0, 2, 50, 3 ]
# rename
rename_title = "Rename:"
rename_origin = "hovered"
rename_offset = [ 0, 1, 50, 3 ]
# filter
filter_title = "Filter:"
filter_origin = "top-center"
filter_offset = [ 0, 2, 50, 3 ]
# find
find_title = [ "Find next:", "Find previous:" ]
find_origin = "top-center"
find_offset = [ 0, 2, 50, 3 ]
# search
search_title = "Search via {n}:"
search_origin = "top-center"
search_offset = [ 0, 2, 50, 3 ]
# shell
shell_title = [ "Shell:", "Shell (block):" ]
shell_origin = "top-center"
shell_offset = [ 0, 2, 50, 3 ]
[confirm]
# trash
trash_title = "Trash {n} selected file{s}?"
trash_origin = "center"
trash_offset = [ 0, 0, 70, 20 ]
# delete
delete_title = "Permanently delete {n} selected file{s}?"
delete_origin = "center"
delete_offset = [ 0, 0, 70, 20 ]
# overwrite
overwrite_title = "Overwrite file?"
overwrite_body = "Will overwrite the following file:"
overwrite_origin = "center"
overwrite_offset = [ 0, 0, 50, 15 ]
# quit
quit_title = "Quit?"
quit_body = "The following tasks are still running, are you sure you want to quit?"
quit_origin = "center"
quit_offset = [ 0, 0, 50, 15 ]
[pick]
open_title = "Open with:"
open_origin = "hovered"
open_offset = [ 0, 1, 50, 7 ]
[which]
sort_by = "none"
sort_sensitive = false
sort_reverse = false
sort_translit = false
[flavor]
dark = "hacker"
light = "hacker"

View file

@ -0,0 +1,27 @@
borders: Plain
colors:
text: Reset
text_special: Reset
text_secondary: Reset
text_error: LightRed
outline: DarkGray
outline_selected: Yellow
outline_hover: LightRed
outline_secondary: DarkGray
message_outline: Yellow
message_error_outline: LightRed
message_success_outline: LightGreen
command_capture: Yellow
item_info:
tag: DarkGray
title: Yellow
description: DarkGray
author: White
viewcount: DarkGray
length: DarkGray
published: DarkGray
video_count: DarkGray
sub_count: DarkGray
likes: DarkGray
genre: DarkGray
page_turner: DarkGray

View file

@ -0,0 +1,27 @@
// Zed settings
{
"title_bar": {
"show_sign_in": false
},
"ui_font_family": "Inter Variable",
"buffer_font_family": "Iosevka Term",
"vim_mode": false,
"disable_ai": true,
"telemetry": {
"diagnostics": false,
"metrics": false
},
"languages": {
"Markdown": {
"format_on_save": "on"
}
},
"icon_theme": "Zed (Default)",
"ui_font_size": 16,
"buffer_font_size": 15,
"theme": {
"mode": "dark",
"light": "Hacker",
"dark": "Hacker"
}
}

View file

@ -0,0 +1,146 @@
{
"$schema": "https://zed.dev/schema/themes/v0.2.0.json",
"name": "Hacker",
"author": "local",
"themes": [
{
"name": "Hacker",
"appearance": "dark",
"style": {
"accents": [
"#ef934dff",
"#f4decdff",
"#71b4d6ff",
"#7ec97eff",
"#e8c97eff",
"#f16e65ff",
"#7ec9c4ff"
],
"border": "#2a2b2aff",
"border.variant": "#ef934d33",
"border.focused": "#ef934d99",
"border.selected": "#ef934dcc",
"border.transparent": "#00000000",
"border.disabled": null,
"elevated_surface.background": "#1e1f1eff",
"surface.background": "#1a1b1aff",
"background": "#141514ff",
"element.background": "#1e1f1eff",
"element.hover": "#2a2b2aff",
"element.active": "#3a3b3aff",
"element.selected": "#2a2b2aff",
"element.disabled": "#6a6a6aff",
"drop_target.background": "#2a2b2aff",
"ghost_element.background": "#00000000",
"ghost_element.hover": "#ef934d20",
"ghost_element.active": "#ef934d35",
"ghost_element.selected": "#ef934d18",
"ghost_element.disabled": "#6a6a6aff",
"text": "#f4decdff",
"text.muted": "#b09080ff",
"text.placeholder": "#6a6a6aff",
"text.disabled": "#6a6a6aaa",
"text.accent": "#ef934dff",
"icon": "#f4decdff",
"icon.muted": "#f4decd70",
"icon.disabled": "#f4decd40",
"icon.placeholder": "#6a6a6aff",
"icon.accent": "#ef934dff",
"status_bar.background": "#0c0e0cff",
"title_bar.background": "#0c0e0cff",
"title_bar.inactive_background": "#141514ff",
"toolbar.background": "#141514ff",
"tab_bar.background": "#1e1f1eff",
"tab.inactive_background": "#1e1f1eff",
"tab.active_background": "#141514ff",
"search.match_background": "#ef934d40",
"panel.background": "#0c0e0cff",
"panel.focused_border": "#ef934dff",
"panel.indent_guide": "#2a2b2aff",
"panel.indent_guide_active": "#ef934d99",
"pane.focused_border": "#ef934dff",
"scrollbar.thumb.background": "#2a2b2aff",
"scrollbar.thumb.hover_background": "#ef934d99",
"scrollbar.thumb.border": "#2a2b2aff",
"scrollbar.track.background": "#141514ff",
"scrollbar.track.border": "#1e1f1eff",
"editor.foreground": "#f4decdff",
"editor.background": "#141514ff",
"editor.gutter.background": "#141514ff",
"editor.subheader.background": "#1e1f1eff",
"editor.active_line.background": "#1e1f1e99",
"editor.highlighted_line.background": "#2a2b2a60",
"editor.line_number": "#6a6a6aff",
"editor.active_line_number": "#ef934dff",
"editor.invisible": "#2a2b2aff",
"editor.wrap_guide": "#2a2b2aff",
"editor.active_wrap_guide": "#3a3b3aff",
"editor.document_highlight.read_background": "#ef934d25",
"editor.document_highlight.write_background": "#ef934d40",
"terminal.background": "#141514ff",
"terminal.foreground": "#f4decdff",
"terminal.bright_foreground": "#ffffffff",
"terminal.dim_foreground": "#6a6a6aff",
"terminal.ansi.black": "#141514ff",
"terminal.ansi.bright_black": "#2a2b2aff",
"terminal.ansi.red": "#f16e65ff",
"terminal.ansi.bright_red": "#ff8a82ff",
"terminal.ansi.green": "#7ec97eff",
"terminal.ansi.bright_green": "#a8e6a8ff",
"terminal.ansi.yellow": "#e8c97eff",
"terminal.ansi.bright_yellow": "#f5dfa0ff",
"terminal.ansi.blue": "#71b4d6ff",
"terminal.ansi.bright_blue": "#9ecfe8ff",
"terminal.ansi.magenta": "#ef934dff",
"terminal.ansi.bright_magenta": "#f5b07aff",
"terminal.ansi.cyan": "#7ec9c4ff",
"terminal.ansi.bright_cyan": "#a8e6e2ff",
"terminal.ansi.white": "#f4decdff",
"terminal.ansi.bright_white": "#ffffffff",
"syntax": {
"attribute": { "color": "#ef934dff" },
"boolean": { "color": "#ef934dff" },
"comment": { "color": "#6a6a6aff", "font_style": "italic" },
"comment.doc": { "color": "#8a9a8aff", "font_style": "italic" },
"constant": { "color": "#ef934dff" },
"constructor": { "color": "#f4decdff", "font_weight": 700 },
"embedded": { "color": "#f4decdff" },
"emphasis": { "font_style": "italic" },
"emphasis.strong": { "font_weight": 700 },
"enum": { "color": "#e8c97eff" },
"function": { "color": "#f4decdff", "font_weight": 700 },
"hint": { "color": "#6a6a6aff" },
"keyword": { "color": "#ef934dff" },
"label": { "color": "#ef934dff" },
"link_text": { "color": "#71b4d6ff", "font_style": "italic" },
"link_uri": { "color": "#71b4d6ff" },
"number": { "color": "#ef934dff" },
"operator": { "color": "#f4decdff" },
"predictive": { "color": "#6a6a6aff", "font_style": "italic" },
"preproc": { "color": "#ef934dff" },
"primary": { "color": "#f4decdff" },
"property": { "color": "#f4decdff" },
"punctuation": { "color": "#6a6a6aff" },
"punctuation.bracket": { "color": "#6a6a6aff" },
"punctuation.delimiter": { "color": "#6a6a6aff" },
"punctuation.list_marker": { "color": "#ef934dff" },
"punctuation.special": { "color": "#ef934dff" },
"string": { "color": "#7ec97eff" },
"string.escape": { "color": "#f4decdff" },
"string.regex": { "color": "#7ec9c4ff" },
"string.special": { "color": "#7ec97eff" },
"string.special.symbol": { "color": "#ef934dff" },
"tag": { "color": "#ef934dff" },
"text.literal": { "color": "#7ec97eff" },
"title": { "color": "#f4decdff", "font_weight": 700 },
"type": { "color": "#e8c97eff" },
"type.builtin": { "color": "#e8c97eff" },
"variable": { "color": "#f4decdff" },
"variable.builtin": { "color": "#ef934dff" },
"variable.member": { "color": "#f4decdff" },
"variable.parameter": { "color": "#f4decdff", "font_style": "italic" }
}
}
}
]
}