diff --git a/misc/.config/fzf/config b/misc/.config/fzf/config
deleted file mode 100644
index eb23750..0000000
--- a/misc/.config/fzf/config
+++ /dev/null
@@ -1 +0,0 @@
---layout=reverse
diff --git a/misc/.config/hyprland-autoname-workspaces/config.toml b/misc/.config/hyprland-autoname-workspaces/config.toml
index acae548..058ccbc 100644
--- a/misc/.config/hyprland-autoname-workspaces/config.toml
+++ b/misc/.config/hyprland-autoname-workspaces/config.toml
@@ -1,40 +1,34 @@
version = "1.1.15"
+[title."(?i)foot"]
+Yazi = ""
+
[class]
DEFAULT = "{class}"
-"Anki" = " "
-"blueman-manager-wrapped" = " "
-"chromium" = " "
-"com.obsproject.Studio" = " "
-"com.usebottles.bottles" = " "
-"discord" = " "
-"Element" = " "
-"emacs" = " "
-"firefox" = " "
-"foot" = " "
-"ghidra" = " "
-"Gimp" = " "
-"kitty" = " "
-"libreoffice-calc" = " "
-"libreoffice-draw" = " "
-"libreoffice-impress" = " "
-"libreoffice-writer" = " "
-"mpv" = " "
-"mullvad vpn" = " "
-"Nsxiv" = " "
-"org.getmonero." = " "
-"org.kde.kdenlive" = " "
-"signal" = " "
-"Slack" = " "
-"spotify" = " "
-"st-256color" = " "
-"steam" = " "
-"teams-for-linux" = " "
-"VirtualBox" = " "
-"vlc" = " "
-"zathura" = " "
-"zen" = " "
-"zoom" = " "
+"(?i)anki" = " "
+"(?i)blueman-manager-wrapped" = " "
+"(?i)chromium" = " "
+"(?i)discord" = " "
+"(?i)element" = " "
+"(?i)emacs" = " "
+"(?i)firefox" = " "
+"(?i)foot" = " "
+"(?i)ghidra" = " "
+"(?i)gimp" = " "
+"(?i)kitty" = " "
+"(?i)libreoffice-draw" = " "
+"(?i)libreoffice-writer" = " "
+"(?i)mpv" = " "
+"(?i)mullvad vpn" = " "
+"(?i)nsxiv" = " "
+"(?i)signal" = " "
+"(?i)slack" = " "
+"(?i)spotify" = " "
+"(?i)st" = " "
+"(?i)steam" = " "
+"(?i)virtualbox" = " "
+"(?i)zathura" = " "
+"(?i)zen" = " "
[class_active]
@@ -55,21 +49,15 @@ DEFAULT = "{class}"
9 = "nine"
10 = "ten"
-[title_in_class."st-256color"]
-"Yazi" = " "
-"NVIM" = " "
-"btop" = " "
-"htop" = " "
+[title_in_class."(?i)foot"]
+"(?i)neovim" = "neovim"
+"(?i)nvim" = "nvim"
-# Sometimes windows do not set a class
-[title_in_class.""]
-"Steam" = " "
+[title_in_class."(?i)kitty"]
+"(?i)neomutt" = "neomutt"
-[title_in_class."VirtualBox Machine"]
-"Tiny11" = " "
-
-[title_in_class."steam"]
-"Halo: The Master Chief Collection" = " "
+[title_in_class_active."(?i)firefox"]
+"(?i)twitch" = "{icon}"
[title_in_initial_class]
@@ -94,13 +82,11 @@ aProgram = "^$"
dedup = false
dedup_inactive_fullscreen = false
delim = ""
-workspace = "{id} {clients}"
+workspace = "{id}:{delim}{clients}"
workspace_empty = "{id}"
-# client = "{icon}"
-client = "{icon}"
-client_fullscreen = "{icon}"
-# client_active = "{icon}"
-client_active = "{icon}"
+client = "{icon}"
+client_fullscreen = "[{icon}]"
+client_active = "{icon}"
client_dup = "{icon}{counter_sup}"
client_dup_active = "*{icon}*{delim}{icon}{counter_unfocused_sup}"
client_dup_fullscreen = "[{icon}]{delim}{icon}{counter_unfocused_sup}"
diff --git a/misc/.config/starship.toml b/misc/.config/starship.toml
index 6fde80b..97907f9 100644
--- a/misc/.config/starship.toml
+++ b/misc/.config/starship.toml
@@ -1,54 +1,18 @@
+# Use starship.def.toml to edit the starship configuration. There should be an entr daemon
+# running which, upon changes to the file, will replace each instance of blue with
+# the appropriate environment variable. This hack was cobbled together because starship currently
+# does not allow environment variables to be used as a style (which is dumb)
+
# Inserts a blank line between shell prompts
add_newline = false
-format = '''${custom.color}╭──\(${custom.bold}$username@$hostname${custom.color}\)-\[$directory${custom.color}(\]-\[$git_branch$git_metrics$git_status)${custom.color}\]( $nix_shell) $cmd_duration
-${custom.color}╰─$shell '''
-
+format = '''[╭──\([$username@$hostname](bold blue)\)-\[$directory\](-\[$git_branch$git_metrics$git_status\])(-\[$nix_shell\])](blue) $cmd_duration
+[╰─](blue)[$shell](bold blue) '''
+# format = '''
+# [\[$directory\](-\[$git_branch$git_metrics$git_status\])(-\[$nix_shell\])](blue)[λ ](blue bold)
+# '''
right_format = '$status'
-[custom.color]
-command = '''
-accent="$(cat ~/.config/colors/accent)"
-case "$accent" in
- black)
- code=30
- ;;
- red)
- code=31
- ;;
- green)
- code=32
- ;;
- yellow)
- code=33
- ;;
- blue)
- code=34
- ;;
- purple)
- code=35
- ;;
- cyan)
- code=36
- ;;
- *)
- code=0
- ;;
-esac
-
-printf "\\033[0;${code}m"
-'''
-when = true
-format = "$output"
-
-[custom.bold]
-command = '''
-printf "\\033[1m"
-'''
-when = true
-unsafe_no_escape = true
-format = "$output"
-
[line_break]
disabled = false
@@ -59,7 +23,7 @@ show_always = true
[nix_shell]
symbol = '❄️'
-format = '[$symbol $name](bold purple)'
+format = '[$symbol$name](bold purple)'
[hostname]
ssh_only = false
@@ -68,8 +32,9 @@ trim_at = '.companyname.com'
disabled = false
[git_branch]
+style = 'bold green'
symbol = ''
-format = '[$symbol$branch](bold green)'
+format = '[$symbol$branch(hello$banch)](bold green)'
[git_status]
modified = '[✘](bold red)'
@@ -83,19 +48,25 @@ truncate_to_repo = true
style = 'bold white'
format = '[$path]($style)[$read_only]($read_only_style)'
+[character]
+success_symbol = '[λ](bold blue)'
+error_symbol = '[λ](bold red)'
+# success_symbol = '[❯](bold blue)'
+# error_symbol = '[❯](bold red)'
+
[cmd_duration]
min_time = 1_000
style = "bold dimmed yellow"
format = '◷[$duration]($style) '
[shell]
-fish_indicator = ''
+fish_indicator = ''
powershell_indicator = '_'
-bash_indicator = '\$'
-zsh_indicator = 'λ'
-unknown_indicator = '?'
+bash_indicator = '\$'
+zsh_indicator = 'λ'
+unknown_indicator = '?'
disabled = false
-format = '[$indicator](bold)'
+format = '$indicator'
[status]
disabled = false
diff --git a/misc/.config/yazi/init.lua b/misc/.config/yazi/init.lua
index 1f3e0ec..2a10134 100644
--- a/misc/.config/yazi/init.lua
+++ b/misc/.config/yazi/init.lua
@@ -17,19 +17,18 @@ end, 500, Header.LEFT)
function Header:cwd()
local max = self._area.w - self._right_width
if max <= 0 then
- return ""
+ return ui.Span("")
end
- local cwd = ya.readable_path(tostring(self._current.cwd)) .. self:flags()
- local hovered = ""
- if cx.active.current.hovered then
- hovered = tostring(cx.active.current.hovered.name or "")
- end
- return ui.Line {
+ local cwd = ya.readable_path(tostring(self._tab.current.cwd)) .. self:flags()
+ local left = ui.Line {
ui.Span(cwd):fg("blue"):bold(true),
ui.Span("/"):fg("blue"):bold(true),
- ui.Span(hovered):fg("white"):bold(true),
+ ui.Span(tostring(cx.active.current.hovered.name)):fg("white"): bold(true),
}
+
+ return left
+
end
-- Remove file size from status bar
@@ -37,7 +36,7 @@ function Status:size()
end
-- Remove percentage from status bar
-function Status:percent()
+function Status:percentage()
end
-- Show symlink path in status bar
diff --git a/misc/.config/yazi/keymap.toml b/misc/.config/yazi/keymap.toml
index 460d73b..753e62e 100644
--- a/misc/.config/yazi/keymap.toml
+++ b/misc/.config/yazi/keymap.toml
@@ -1,39 +1,33 @@
-[mgr]
+# 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/keymap.json"
+
+[manager]
+
prepend_keymap = [
- # Jump
- { on = [ "i" ], run = [ "plugin easyjump" ], desc = "easyjump" },
- { on = [ "f" ], run = [ "plugin jump-to-char" ], desc = "Jump to char" },
-
- # Smart enter
- { on = [ "o" ], run = [ "plugin smart-enter --sync -- list", "escape --visual --select" ], desc = "List openers for file." },
- { on = [ "l" ], run = [ "plugin smart-enter --sync", "escape --visual --select" ], desc = "Enter the child directory, or open file." },
- { on = [ "L" ], run = [ "plugin smart-enter --sync -- detatch", "escape --visual --select" ], desc = "Open in new window." },
+ # Smart enter
+ { on = [ "o" ], run = [ "plugin smart-enter --sync --args='list'", "escape --visual --select" ], desc = "List openers for file." },
+ { on = [ "l" ], run = [ "plugin smart-enter --sync", "escape --visual --select" ], desc = "Enter the child directory, or open file." },
+ { on = [ "L" ], run = [ "plugin smart-enter --sync --args='detatch'", "escape --visual --select" ], desc = "Open in new window." },
+ { on = [ "1" ], run = [ "shell 'opener -n 1 $0' --block --confirm"], desc = "Open with program 1." },
+ { on = [ "2" ], run = [ "shell 'opener -n 2 $0' --block --confirm"], desc = "Open with program 2." },
+ { on = [ "3" ], run = [ "shell 'opener -n 3 $0' --block --confirm"], desc = "Open with program 3." },
+ { on = [ "!" ], run = [ "shell 'opener -n 1 detatch $0' --block --confirm"], desc = "Open in new window with program 1." },
+ { on = [ "@" ], run = [ "shell 'opener -n 2 detatch $0' --block --confirm"], desc = "Open in new window with program 2." },
+ { on = [ "#" ], run = [ "shell 'opener -n 3 detatch $0' --block --confirm"], desc = "Open in new window with program 3." },
- # Archives
- { on = [ "u" ], run = [ "shell 'punpack \"$0\"' --confirm"], desc = "Open archive" },
-
- # Openers
- { on = [ "1" ], run = [ "shell 'opener -n 1 \"$0\"' --block --confirm"], desc = "Open with program 1." },
- { on = [ "2" ], run = [ "shell 'opener -n 2 \"$0\"' --block --confirm"], desc = "Open with program 2." },
- { on = [ "3" ], run = [ "shell 'opener -n 3 \"$0\"' --block --confirm"], desc = "Open with program 3." },
- { on = [ "4" ], run = [ "shell 'opener -n 4 \"$0\"' --block --confirm"], desc = "Open with program 4." },
- { on = [ "5" ], run = [ "shell 'opener -n 5 \"$0\"' --block --confirm"], desc = "Open with program 5." },
- { on = [ "!" ], run = [ "shell 'opener -n 1 detatch \"$0\"' --block --confirm"], desc = "Open in new window with program 1." },
- { on = [ "@" ], run = [ "shell 'opener -n 2 detatch \"$0\"' --block --confirm"], desc = "Open in new window with program 2." },
- { on = [ "#" ], run = [ "shell 'opener -n 3 detatch \"$0\"' --block --confirm"], desc = "Open in new window with program 3." },
- { on = [ "$" ], run = [ "shell 'opener -n 4 detatch \"$0\"' --block --confirm"], desc = "Open in new window with program 4." },
- { on = [ "%" ], run = [ "shell 'opener -n 5 detatch \"$0\"' --block --confirm"], desc = "Open in new window with program 5." },
-
- { on = [ "" ], run = 'shell -- xdragon -x -T "$1"', desc = "Open file with dragon"},
-
- { on = [ "" ], run = "shell 'swallow thunar' --block --confirm", desc = "Open thunar"},
-
- { on = [ "=" ], run = """
- shell 'printf "Mode Bits: "; read ans; chmod $ans "$@"' --block --confirm
- """, desc = "chmod" },
-
- { on = [ "" ], run = """
- shell '$TERMINAL -e $SHELL -c -i \"cd $PWD && ya && exec $SHELL\"' --orphan --confirm
- """, desc = "Spawn new yazi window in CWD" },
+ { on = [ "j" ], run = [ "plugin --sync arrow --args=1"], desc = "Move selection downwards, or wrap." },
+ { on = [ "k" ], run = [ "plugin --sync arrow --args=-1"], desc = "Move selection upwards, or wrap." },
+ { on = [ "T" ], run = "plugin --sync max-preview", desc = "Maximize preview pane"},
+ { on = [ "n" ], run = "create", desc = "Create a file or directory (ends with / for directories)" },
+ { on = [ ""], run = '''
+ shell 'dragon -x -i -T "$1"' --confirm
+ ''', desc = "Open file with dragon"},
+ { on = [ "=" ], run = """
+ shell 'printf "Mode Bits: "; read ans; chmod $ans "$@"' --block --confirm
+ """, desc = "chmod" },
+ { on = [ "" ], run = """
+ shell '$TERMINAL -e $SHELL -c -i \"cd $PWD && ya && exec $SHELL\"' --orphan --confirm
+ """, desc = "Spawn new yazi window in CWD" },
]
diff --git a/misc/.config/yazi/plugins/arrow.yazi/init.lua b/misc/.config/yazi/plugins/arrow.yazi/init.lua
new file mode 100644
index 0000000..9034881
--- /dev/null
+++ b/misc/.config/yazi/plugins/arrow.yazi/init.lua
@@ -0,0 +1,10 @@
+---@diagnostic disable: undefined-global
+
+return {
+ entry = function(_, args)
+ local current = cx.active.current
+ local new = (current.cursor + args[1]) % #current.files
+ ya.manager_emit("arrow", { new - current.cursor })
+ end,
+}
+
diff --git a/misc/.config/yazi/plugins/easyjump.yazi b/misc/.config/yazi/plugins/easyjump.yazi
deleted file mode 160000
index 6606fb1..0000000
--- a/misc/.config/yazi/plugins/easyjump.yazi
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 6606fb1d56eea4c99809c056fd701e58890655be
diff --git a/misc/.config/yazi/plugins/jump-to-char.yazi/main.lua b/misc/.config/yazi/plugins/jump-to-char.yazi/main.lua
deleted file mode 100644
index f6bf648..0000000
--- a/misc/.config/yazi/plugins/jump-to-char.yazi/main.lua
+++ /dev/null
@@ -1,31 +0,0 @@
-local AVAILABLE_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789."
-
-local changed = ya.sync(function(st, new)
- local b = st.last ~= new
- st.last = new
- return b or not cx.active.finder
-end)
-
-local escape = function(s) return s == "." and "\\." or s end
-
-return {
- entry = function()
- local cands = {}
- for i = 1, #AVAILABLE_CHARS do
- cands[#cands + 1] = { on = AVAILABLE_CHARS:sub(i, i) }
- end
-
- local idx = ya.which { cands = cands, silent = true }
- if not idx then
- return
- end
-
- local kw = escape(cands[idx].on)
- if changed(kw) then
- ya.mgr_emit("find_do", { "^" .. kw })
- else
- ya.mgr_emit("find_arrow", {})
- end
- end,
-}
-
diff --git a/misc/.config/yazi/plugins/smart-enter.yazi/init.lua b/misc/.config/yazi/plugins/smart-enter.yazi/init.lua
new file mode 100644
index 0000000..048360c
--- /dev/null
+++ b/misc/.config/yazi/plugins/smart-enter.yazi/init.lua
@@ -0,0 +1,31 @@
+---@diagnostic disable: undefined-global
+
+return {
+ entry = function(self, args)
+ local h = cx.active.current.hovered
+ if h and h.cha.is_dir then
+ ya.manager_emit("enter", {})
+ return
+ end
+
+ if #args == 0 then
+ ya.manager_emit("open", {})
+ end
+
+ if args[1] == "detatch" then
+ os.execute(string.format("opener detatch \"%s\"", h.url))
+ elseif args[1] == "list" then
+ local f = assert(io.popen(string.format(
+ "opener list \"%s\"", h.url), 'r'))
+ local out = assert(f:read('*a'))
+ f:close()
+ ya.notify {
+ title = string.format("Openers for %s:", h.name),
+ content = out,
+ timeout = 6.5,
+ level = "info",
+ }
+ end
+ end,
+}
+
diff --git a/misc/.config/yazi/plugins/smart-enter.yazi/main.lua b/misc/.config/yazi/plugins/smart-enter.yazi/main.lua
deleted file mode 100644
index 8fc5fb2..0000000
--- a/misc/.config/yazi/plugins/smart-enter.yazi/main.lua
+++ /dev/null
@@ -1,35 +0,0 @@
---- @since 25.2.26
---- @sync entry
-
-local function setup(self, opts) self.open_multi = opts.open_multi end
-
-local function entry(_, job)
- local h = cx.active.current.hovered
- if h and h.cha.is_dir then
- ya.manager_emit("enter", {})
- return
- end
-
- if #job.args == 0 then
- ya.manager_emit("open", {})
- end
-
- if job.args[1] == "detatch" then
- os.execute(string.format("opener detatch \"%s\"", h.url))
- elseif job.args[1] == "list" then
- local f = assert(io.popen(string.format(
- "opener list \"%s\"", h.url), 'r'))
- local out = assert(f:read('*a'))
- f:close()
- ya.notify {
- title = string.format("Openers for %s:", h.name),
- content = out,
- timeout = 6.5,
- level = "info",
- }
- end
-end
-
-
-return { entry = entry, setup = setup }
-
diff --git a/misc/.config/yazi/theme.toml b/misc/.config/yazi/theme.toml
index 6908c3a..10a75f4 100644
--- a/misc/.config/yazi/theme.toml
+++ b/misc/.config/yazi/theme.toml
@@ -1,6 +1,66 @@
+# 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/theme.json"
+
+# vim:fileencoding=utf-8:foldmethod=marker
+
+# : Flavor {{{
+
+[flavor]
+use = ""
+
+# : }}}
+
+# : Manager {{{
+
+[manager]
+cwd = { fg = "cyan" }
+
+# Hovered
+hovered = { reversed = true }
+preview_hovered = { underline = true }
+
+# Find
+find_keyword = { fg = "yellow", bold = true, italic = true, underline = true }
+find_position = { fg = "magenta", bg = "reset", bold = true, italic = true }
+
+# Marker
+marker_copied = { fg = "lightgreen", bg = "lightgreen" }
+marker_cut = { fg = "lightred", bg = "lightred" }
+marker_marked = { fg = "lightcyan", bg = "lightcyan" }
+marker_selected = { fg = "lightyellow", bg = "lightyellow" }
+
+# Tab
+tab_active = { reversed = true }
+tab_inactive = {}
+tab_width = 1
+
+# Count
+count_copied = { fg = "white", bg = "green" }
+count_cut = { fg = "white", bg = "red" }
+count_selected = { fg = "white", bg = "yellow" }
+
+# Border
+border_symbol = "│"
+border_style = { fg = "gray" }
+
+# Highlighting
+syntect_theme = ""
+
+# : }}}
+
+
+# : Status {{{
+
[status]
-sep_left = { open = "", close = "" }
-sep_right = { open = "", close = "" }
+separator_open = ""
+separator_close = ""
+separator_style = { fg = "darkgray", bg = "darkgray" }
+
+# Mode
+mode_normal = { fg = "black", bg = "lightblue", bold = false }
+mode_select = { fg = "black", bg = "lightgreen", bold = false }
+mode_unset = { fg = "black", bg = "lightmagenta", bold = false }
# Progress
progress_label = { bold = false }
@@ -8,15 +68,103 @@ progress_normal = { fg = "lightblue", bg = "black" }
progress_error = { fg = "red", bg = "black" }
# Permissions
-perm_type = { fg = "lightgreen" }
-perm_read = { fg = "lightyellow" }
-perm_write = { fg = "lightred" }
-perm_exec = { fg = "lightcyan" }
+permissions_t = { fg = "lightgreen" }
+permissions_r = { fg = "lightyellow" }
+permissions_w = { fg = "lightred" }
+permissions_x = { fg = "lightcyan" }
+permissions_s = { fg = "darkgray" }
-[mode]
-normal_main = { fg = "black", bg = "lightblue", bold = false }
-select_main = { fg = "black", bg = "lightgreen", bold = false }
-unset_main = { fg = "black", bg = "lightmagenta", bold = false }
+# : }}}
+
+
+# : Select {{{
+
+[select]
+border = { fg = "blue" }
+active = { fg = "magenta", bold = true }
+inactive = {}
+
+# : }}}
+
+
+# : Input {{{
+
+[input]
+border = { fg = "blue" }
+title = {}
+value = {}
+selected = { reversed = true }
+
+# : }}}
+
+
+# : Completion {{{
+
+[completion]
+border = { fg = "blue" }
+active = { reversed = true }
+inactive = {}
+
+# Icons
+icon_file = ""
+icon_folder = ""
+icon_command = ""
+
+# : }}}
+
+
+# : Tasks {{{
+
+[tasks]
+border = { fg = "blue" }
+title = {}
+hovered = { fg = "magenta", underline = true }
+
+# : }}}
+
+
+# : Which {{{
+
+[which]
+cols = 3
+mask = { bg = "black" }
+cand = { fg = "lightcyan" }
+rest = { fg = "darkgray" }
+desc = { fg = "lightmagenta" }
+separator = " "
+separator_style = { fg = "darkgray" }
+
+# : }}}
+
+
+# : Help {{{
+
+[help]
+on = { fg = "cyan" }
+run = { fg = "magenta" }
+desc = {}
+hovered = { reversed = true, bold = true }
+footer = { fg = "black", bg = "white" }
+
+# : }}}
+
+
+# : Notify {{{
+
+[notify]
+title_info = { fg = "green" }
+title_warn = { fg = "yellow" }
+title_error = { fg = "red" }
+
+# Icons
+icon_info = ""
+icon_warn = ""
+icon_error = ""
+
+# : }}}
+
+
+# : File-specific styles {{{
[filetype]
@@ -50,24 +198,576 @@ rules = [
[icon]
+globs = []
dirs = [
+ # { name = ".config", text = "" },
+ # { name = ".git", text = "" },
+]
+files = [
+ { name = ".babelrc", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = ".bash_profile", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = ".bashrc", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = ".dockerignore", text = "", fg_dark = "#458ee6", fg_light = "#2e5f99" },
+ { name = ".ds_store", text = "", fg_dark = "#41535b", fg_light = "#41535b" },
+ { name = ".editorconfig", text = "", fg_dark = "#fff2f2", fg_light = "#333030" },
+ { name = ".env", text = "", fg_dark = "#faf743", fg_light = "#32310d" },
+ { name = ".eslintignore", text = "", fg_dark = "#4b32c3", fg_light = "#4b32c3" },
+ { name = ".eslintrc", text = "", fg_dark = "#4b32c3", fg_light = "#4b32c3" },
+ { name = ".gitattributes", text = "", fg_dark = "#f54d27", fg_light = "#b83a1d" },
+ { name = ".gitconfig", text = "", fg_dark = "#f54d27", fg_light = "#b83a1d" },
+ { name = ".gitignore", text = "", fg_dark = "#f54d27", fg_light = "#b83a1d" },
+ { name = ".gitlab-ci.yml", text = "", fg_dark = "#e24329", fg_light = "#aa321f" },
+ { name = ".gitmodules", text = "", fg_dark = "#f54d27", fg_light = "#b83a1d" },
+ { name = ".gtkrc-2.0", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = ".gvimrc", text = "", fg_dark = "#019833", fg_light = "#017226" },
+ { name = ".luaurc", text = "", fg_dark = "#00a2ff", fg_light = "#007abf" },
+ { name = ".mailmap", text = "", fg_dark = "#41535b", fg_light = "#41535b" },
+ { name = ".npmignore", text = "", fg_dark = "#e8274b", fg_light = "#ae1d38" },
+ { name = ".npmrc", text = "", fg_dark = "#e8274b", fg_light = "#ae1d38" },
+ { name = ".prettierrc", text = "", fg_dark = "#4285f4", fg_light = "#3264b7" },
+ { name = ".settings.json", text = "", fg_dark = "#854cc7", fg_light = "#643995" },
+ { name = ".SRCINFO", text = "", fg_dark = "#0f94d2", fg_light = "#0b6f9e" },
+ { name = ".vimrc", text = "", fg_dark = "#019833", fg_light = "#017226" },
+ { name = ".Xauthority", text = "", fg_dark = "#e54d18", fg_light = "#ac3a12" },
+ { name = ".xinitrc", text = "", fg_dark = "#e54d18", fg_light = "#ac3a12" },
+ { name = ".Xresources", text = "", fg_dark = "#e54d18", fg_light = "#ac3a12" },
+ { name = ".xsession", text = "", fg_dark = "#e54d18", fg_light = "#ac3a12" },
+ { name = ".zprofile", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = ".zshenv", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = ".zshrc", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = "_gvimrc", text = "", fg_dark = "#019833", fg_light = "#017226" },
+ { name = "_vimrc", text = "", fg_dark = "#019833", fg_light = "#017226" },
+ { name = "avif", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "brewfile", text = "", fg_dark = "#701516", fg_light = "#701516" },
+ { name = "bspwmrc", text = "", fg_dark = "#2f2f2f", fg_light = "#2f2f2f" },
+ { name = "build", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = "build.gradle", text = "", fg_dark = "#005f87", fg_light = "#005f87" },
+ { name = "build.zig.zon", text = "", fg_dark = "#f69a1b", fg_light = "#7b4d0e" },
+ { name = "cantorrc", text = "", fg_dark = "#1c99f3", fg_light = "#1573b6" },
+ { name = "checkhealth", text = "", fg_dark = "#75b4fb", fg_light = "#3a5a7e" },
+ { name = "cmakelists.txt", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "commit_editmsg", text = "", fg_dark = "#f54d27", fg_light = "#b83a1d" },
+ { name = "compose.yaml", text = "", fg_dark = "#458ee6", fg_light = "#2e5f99" },
+ { name = "compose.yml", text = "", fg_dark = "#458ee6", fg_light = "#2e5f99" },
+ { name = "config", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "containerfile", text = "", fg_dark = "#458ee6", fg_light = "#2e5f99" },
+ { name = "copying", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "copying.lesser", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "docker-compose.yaml", text = "", fg_dark = "#458ee6", fg_light = "#2e5f99" },
+ { name = "docker-compose.yml", text = "", fg_dark = "#458ee6", fg_light = "#2e5f99" },
+ { name = "dockerfile", text = "", fg_dark = "#458ee6", fg_light = "#2e5f99" },
+ { name = "ext_typoscript_setup.txt", text = "", fg_dark = "#ff8700", fg_light = "#aa5a00" },
+ { name = "favicon.ico", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "fp-info-cache", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "fp-lib-table", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "FreeCAD.conf", text = "", fg_dark = "#cb0d0d", fg_light = "#cb0d0d" },
+ { name = "gemfile$", text = "", fg_dark = "#701516", fg_light = "#701516" },
+ { name = "gnumakefile", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "gradle-wrapper.properties", text = "", fg_dark = "#005f87", fg_light = "#005f87" },
+ { name = "gradle.properties", text = "", fg_dark = "#005f87", fg_light = "#005f87" },
+ { name = "gradlew", text = "", fg_dark = "#005f87", fg_light = "#005f87" },
+ { name = "groovy", text = "", fg_dark = "#4a687c", fg_light = "#384e5d" },
+ { name = "gruntfile.babel.js", text = "", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "gruntfile.coffee", text = "", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "gruntfile.js", text = "", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "gruntfile.ts", text = "", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "gtkrc", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "gulpfile.babel.js", text = "", fg_dark = "#cc3e44", fg_light = "#992e33" },
+ { name = "gulpfile.coffee", text = "", fg_dark = "#cc3e44", fg_light = "#992e33" },
+ { name = "gulpfile.js", text = "", fg_dark = "#cc3e44", fg_light = "#992e33" },
+ { name = "gulpfile.ts", text = "", fg_dark = "#cc3e44", fg_light = "#992e33" },
+ { name = "hyprland.conf", text = "", fg_dark = "#00aaae", fg_light = "#008082" },
+ { name = "i3blocks.conf", text = "", fg_dark = "#e8ebee", fg_light = "#2e2f30" },
+ { name = "i3status.conf", text = "", fg_dark = "#e8ebee", fg_light = "#2e2f30" },
+ { name = "kalgebrarc", text = "", fg_dark = "#1c99f3", fg_light = "#1573b6" },
+ { name = "kdeglobals", text = "", fg_dark = "#1c99f3", fg_light = "#1573b6" },
+ { name = "kdenlive-layoutsrc", text = "", fg_dark = "#83b8f2", fg_light = "#425c79" },
+ { name = "kdenliverc", text = "", fg_dark = "#83b8f2", fg_light = "#425c79" },
+ { name = "kritadisplayrc", text = "", fg_dark = "#f245fb", fg_light = "#a12ea7" },
+ { name = "kritarc", text = "", fg_dark = "#f245fb", fg_light = "#a12ea7" },
+ { name = "license", text = "", fg_dark = "#d0bf41", fg_light = "#686020" },
+ { name = "lxde-rc.xml", text = "", fg_dark = "#909090", fg_light = "#606060" },
+ { name = "lxqt.conf", text = "", fg_dark = "#0192d3", fg_light = "#016e9e" },
+ { name = "makefile", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "mix.lock", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "mpv.conf", text = "", fg_dark = "#3b1342", fg_light = "#3b1342" },
+ { name = "node_modules", text = "", fg_dark = "#e8274b", fg_light = "#ae1d38" },
+ { name = "package-lock.json", text = "", fg_dark = "#7a0d21", fg_light = "#7a0d21" },
+ { name = "package.json", text = "", fg_dark = "#e8274b", fg_light = "#ae1d38" },
+ { name = "PKGBUILD", text = "", fg_dark = "#0f94d2", fg_light = "#0b6f9e" },
+ { name = "platformio.ini", text = "", fg_dark = "#f6822b", fg_light = "#a4571d" },
+ { name = "pom.xml", text = "", fg_dark = "#7a0d21", fg_light = "#7a0d21" },
+ { name = "procfile", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "PrusaSlicer.ini", text = "", fg_dark = "#ec6b23", fg_light = "#9d4717" },
+ { name = "PrusaSlicerGcodeViewer.ini", text = "", fg_dark = "#ec6b23", fg_light = "#9d4717" },
+ { name = "py.typed", text = "", fg_dark = "#ffbc03", fg_light = "#805e02" },
+ { name = "QtProject.conf", text = "", fg_dark = "#40cd52", fg_light = "#2b8937" },
+ { name = "R", text = "", fg_dark = "#2266ba", fg_light = "#1a4c8c" },
+ { name = "r", text = "", fg_dark = "#2266ba", fg_light = "#1a4c8c" },
+ { name = "rakefile", text = "", fg_dark = "#701516", fg_light = "#701516" },
+ { name = "rmd", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "settings.gradle", text = "", fg_dark = "#005f87", fg_light = "#005f87" },
+ { name = "svelte.config.js", text = "", fg_dark = "#ff3e00", fg_light = "#bf2e00" },
+ { name = "sxhkdrc", text = "", fg_dark = "#2f2f2f", fg_light = "#2f2f2f" },
+ { name = "sym-lib-table", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "tailwind.config.js", text = "", fg_dark = "#20c2e3", fg_light = "#158197" },
+ { name = "tailwind.config.mjs", text = "", fg_dark = "#20c2e3", fg_light = "#158197" },
+ { name = "tailwind.config.ts", text = "", fg_dark = "#20c2e3", fg_light = "#158197" },
+ { name = "tmux.conf", text = "", fg_dark = "#14ba19", fg_light = "#0f8c13" },
+ { name = "tmux.conf.local", text = "", fg_dark = "#14ba19", fg_light = "#0f8c13" },
+ { name = "tsconfig.json", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "unlicense", text = "", fg_dark = "#d0bf41", fg_light = "#686020" },
+ { name = "vagrantfile$", text = "", fg_dark = "#1563ff", fg_light = "#104abf" },
+ { name = "vlcrc", text = "", fg_dark = "#ee7a00", fg_light = "#9f5100" },
+ { name = "webpack", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "weston.ini", text = "", fg_dark = "#ffbb01", fg_light = "#805e00" },
+ { name = "workspace", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = "xmobarrc", text = "", fg_dark = "#fd4d5d", fg_light = "#a9333e" },
+ { name = "xmobarrc.hs", text = "", fg_dark = "#fd4d5d", fg_light = "#a9333e" },
+ { name = "xmonad.hs", text = "", fg_dark = "#fd4d5d", fg_light = "#a9333e" },
+ { name = "xorg.conf", text = "", fg_dark = "#e54d18", fg_light = "#ac3a12" },
+ { name = "xsettingsd.conf", text = "", fg_dark = "#e54d18", fg_light = "#ac3a12" },
+]
+exts = [
+ { name = "3gp", text = "", fg_dark = "#fd971f", fg_light = "#7e4c10" },
+ { name = "3mf", text = "", fg_dark = "#888888", fg_light = "#5b5b5b" },
+ { name = "7z", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
+ { name = "a", text = "", fg_dark = "#dcddd6", fg_light = "#494a47" },
+ { name = "aac", text = "", fg_dark = "#00afff", fg_light = "#0075aa" },
+ { name = "ai", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "aif", text = "", fg_dark = "#00afff", fg_light = "#0075aa" },
+ { name = "aiff", text = "", fg_dark = "#00afff", fg_light = "#0075aa" },
+ { name = "android", text = "", fg_dark = "#34a853", fg_light = "#277e3e" },
+ { name = "ape", text = "", fg_dark = "#00afff", fg_light = "#0075aa" },
+ { name = "apk", text = "", fg_dark = "#34a853", fg_light = "#277e3e" },
+ { name = "app", text = "", fg_dark = "#9f0500", fg_light = "#9f0500" },
+ { name = "applescript", text = "", fg_dark = "#6d8085", fg_light = "#526064" },
+ { name = "asc", text = "", fg_dark = "#576d7f", fg_light = "#41525f" },
+ { name = "ass", text = "", fg_dark = "#ffb713", fg_light = "#805c0a" },
+ { name = "astro", text = "", fg_dark = "#e23f67", fg_light = "#aa2f4d" },
+ { name = "awk", text = "", fg_dark = "#4d5a5e", fg_light = "#3a4446" },
+ { name = "azcli", text = "", fg_dark = "#0078d4", fg_light = "#005a9f" },
+ { name = "bak", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "bash", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = "bat", text = "", fg_dark = "#c1f12e", fg_light = "#40500f" },
+ { name = "bazel", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = "bib", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "bicep", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "bicepparam", text = "", fg_dark = "#9f74b3", fg_light = "#6a4d77" },
+ { name = "bin", text = "", fg_dark = "#9f0500", fg_light = "#9f0500" },
+ { name = "blade.php", text = "", fg_dark = "#f05340", fg_light = "#a0372b" },
+ { name = "blend", text = "", fg_dark = "#ea7600", fg_light = "#9c4f00" },
+ { name = "blp", text = "", fg_dark = "#5796e2", fg_light = "#3a6497" },
+ { name = "bmp", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "brep", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "bz", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
+ { name = "bz2", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
+ { name = "bz3", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
+ { name = "bzl", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = "c", text = "", fg_dark = "#599eff", fg_light = "#3b69aa" },
+ { name = "c++", text = "", fg_dark = "#f34b7d", fg_light = "#a23253" },
+ { name = "cache", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "cast", text = "", fg_dark = "#fd971f", fg_light = "#7e4c10" },
+ { name = "cbl", text = "⚙", fg_dark = "#005ca5", fg_light = "#005ca5" },
+ { name = "cc", text = "", fg_dark = "#f34b7d", fg_light = "#a23253" },
+ { name = "ccm", text = "", fg_dark = "#f34b7d", fg_light = "#a23253" },
+ { name = "cfg", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "cjs", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "clj", text = "", fg_dark = "#8dc149", fg_light = "#466024" },
+ { name = "cljc", text = "", fg_dark = "#8dc149", fg_light = "#466024" },
+ { name = "cljd", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "cljs", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "cmake", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "cob", text = "⚙", fg_dark = "#005ca5", fg_light = "#005ca5" },
+ { name = "cobol", text = "⚙", fg_dark = "#005ca5", fg_light = "#005ca5" },
+ { name = "coffee", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "conf", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "config.ru", text = "", fg_dark = "#701516", fg_light = "#701516" },
+ { name = "cp", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "cpp", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "cppm", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "cpy", text = "⚙", fg_dark = "#005ca5", fg_light = "#005ca5" },
+ { name = "cr", text = "", fg_dark = "#c8c8c8", fg_light = "#434343" },
+ { name = "crdownload", text = "", fg_dark = "#44cda8", fg_light = "#226654" },
+ { name = "cs", text = "", fg_dark = "#596706", fg_light = "#434d04" },
+ { name = "csh", text = "", fg_dark = "#4d5a5e", fg_light = "#3a4446" },
+ { name = "cshtml", text = "", fg_dark = "#512bd4", fg_light = "#512bd4" },
+ { name = "cson", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "csproj", text = "", fg_dark = "#512bd4", fg_light = "#512bd4" },
+ { name = "css", text = "", fg_dark = "#42a5f5", fg_light = "#2c6ea3" },
+ { name = "csv", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = "cts", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "cu", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = "cue", text = "", fg_dark = "#ed95ae", fg_light = "#764a57" },
+ { name = "cuh", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "cxx", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "cxxm", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "d", text = "", fg_dark = "#427819", fg_light = "#325a13" },
+ { name = "d.ts", text = "", fg_dark = "#d59855", fg_light = "#6a4c2a" },
+ { name = "dart", text = "", fg_dark = "#03589c", fg_light = "#03589c" },
+ { name = "db", text = "", fg_dark = "#dad8d8", fg_light = "#494848" },
+ { name = "dconf", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "desktop", text = "", fg_dark = "#563d7c", fg_light = "#563d7c" },
+ { name = "diff", text = "", fg_dark = "#41535b", fg_light = "#41535b" },
+ { name = "dll", text = "", fg_dark = "#4d2c0b", fg_light = "#4d2c0b" },
+ { name = "doc", text = "", fg_dark = "#185abd", fg_light = "#185abd" },
+ { name = "Dockerfile", text = "", fg_dark = "#458ee6", fg_light = "#2e5f99" },
+ { name = "docx", text = "", fg_dark = "#185abd", fg_light = "#185abd" },
+ { name = "dot", text = "", fg_dark = "#30638e", fg_light = "#244a6a" },
+ { name = "download", text = "", fg_dark = "#44cda8", fg_light = "#226654" },
+ { name = "drl", text = "", fg_dark = "#ffafaf", fg_light = "#553a3a" },
+ { name = "dropbox", text = "", fg_dark = "#0061fe", fg_light = "#0049be" },
+ { name = "dump", text = "", fg_dark = "#dad8d8", fg_light = "#494848" },
+ { name = "dwg", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "dxf", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "ebook", text = "", fg_dark = "#eab16d", fg_light = "#755836" },
+ { name = "edn", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "eex", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "ejs", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "el", text = "", fg_dark = "#8172be", fg_light = "#61568e" },
+ { name = "elc", text = "", fg_dark = "#8172be", fg_light = "#61568e" },
+ { name = "elf", text = "", fg_dark = "#9f0500", fg_light = "#9f0500" },
+ { name = "elm", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "eln", text = "", fg_dark = "#8172be", fg_light = "#61568e" },
+ { name = "env", text = "", fg_dark = "#faf743", fg_light = "#32310d" },
+ { name = "eot", text = "", fg_dark = "#ececec", fg_light = "#2f2f2f" },
+ { name = "epp", text = "", fg_dark = "#ffa61a", fg_light = "#80530d" },
+ { name = "epub", text = "", fg_dark = "#eab16d", fg_light = "#755836" },
+ { name = "erb", text = "", fg_dark = "#701516", fg_light = "#701516" },
+ { name = "erl", text = "", fg_dark = "#b83998", fg_light = "#8a2b72" },
+ { name = "ex", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "exe", text = "", fg_dark = "#9f0500", fg_light = "#9f0500" },
+ { name = "exs", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "f#", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "f3d", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "f90", text = "", fg_dark = "#734f96", fg_light = "#563b70" },
+ { name = "fbx", text = "", fg_dark = "#888888", fg_light = "#5b5b5b" },
+ { name = "fcbak", text = "", fg_dark = "#cb0d0d", fg_light = "#cb0d0d" },
+ { name = "fcmacro", text = "", fg_dark = "#cb0d0d", fg_light = "#cb0d0d" },
+ { name = "fcmat", text = "", fg_dark = "#cb0d0d", fg_light = "#cb0d0d" },
+ { name = "fcparam", text = "", fg_dark = "#cb0d0d", fg_light = "#cb0d0d" },
+ { name = "fcscript", text = "", fg_dark = "#cb0d0d", fg_light = "#cb0d0d" },
+ { name = "fcstd", text = "", fg_dark = "#cb0d0d", fg_light = "#cb0d0d" },
+ { name = "fcstd1", text = "", fg_dark = "#cb0d0d", fg_light = "#cb0d0d" },
+ { name = "fctb", text = "", fg_dark = "#cb0d0d", fg_light = "#cb0d0d" },
+ { name = "fctl", text = "", fg_dark = "#cb0d0d", fg_light = "#cb0d0d" },
+ { name = "fdmdownload", text = "", fg_dark = "#44cda8", fg_light = "#226654" },
+ { name = "fish", text = "", fg_dark = "#4d5a5e", fg_light = "#3a4446" },
+ { name = "flac", text = "", fg_dark = "#0075aa", fg_light = "#005880" },
+ { name = "flc", text = "", fg_dark = "#ececec", fg_light = "#2f2f2f" },
+ { name = "flf", text = "", fg_dark = "#ececec", fg_light = "#2f2f2f" },
+ { name = "fnl", text = "", fg_dark = "#fff3d7", fg_light = "#33312b" },
+ { name = "fs", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "fsi", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "fsscript", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "fsx", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "gcode", text = "", fg_dark = "#1471ad", fg_light = "#0f5582" },
+ { name = "gd", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "gemspec", text = "", fg_dark = "#701516", fg_light = "#701516" },
+ { name = "gif", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "git", text = "", fg_dark = "#f14c28", fg_light = "#b5391e" },
+ { name = "glb", text = "", fg_dark = "#ffb13b", fg_light = "#80581e" },
+ { name = "gnumakefile", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "go", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "godot", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "gql", text = "", fg_dark = "#e535ab", fg_light = "#ac2880" },
+ { name = "graphql", text = "", fg_dark = "#e535ab", fg_light = "#ac2880" },
+ { name = "gresource", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "gv", text = "", fg_dark = "#30638e", fg_light = "#244a6a" },
+ { name = "gz", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
+ { name = "h", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "haml", text = "", fg_dark = "#eaeae1", fg_light = "#2f2f2d" },
+ { name = "hbs", text = "", fg_dark = "#f0772b", fg_light = "#a04f1d" },
+ { name = "heex", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "hex", text = "", fg_dark = "#2e63ff", fg_light = "#224abf" },
+ { name = "hh", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "hpp", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "hrl", text = "", fg_dark = "#b83998", fg_light = "#8a2b72" },
+ { name = "hs", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "htm", text = "", fg_dark = "#e34c26", fg_light = "#aa391c" },
+ { name = "html", text = "", fg_dark = "#e44d26", fg_light = "#ab3a1c" },
+ { name = "huff", text = "", fg_dark = "#4242c7", fg_light = "#4242c7" },
+ { name = "hurl", text = "", fg_dark = "#ff0288", fg_light = "#bf0266" },
+ { name = "hx", text = "", fg_dark = "#ea8220", fg_light = "#9c5715" },
+ { name = "hxx", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "ical", text = "", fg_dark = "#2b2e83", fg_light = "#2b2e83" },
+ { name = "icalendar", text = "", fg_dark = "#2b2e83", fg_light = "#2b2e83" },
+ { name = "ico", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "ics", text = "", fg_dark = "#2b2e83", fg_light = "#2b2e83" },
+ { name = "ifb", text = "", fg_dark = "#2b2e83", fg_light = "#2b2e83" },
+ { name = "ifc", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "ige", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "iges", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "igs", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "image", text = "", fg_dark = "#d0bec8", fg_light = "#453f43" },
+ { name = "img", text = "", fg_dark = "#d0bec8", fg_light = "#453f43" },
+ { name = "import", text = "", fg_dark = "#ececec", fg_light = "#2f2f2f" },
+ { name = "info", text = "", fg_dark = "#ffffcd", fg_light = "#333329" },
+ { name = "ini", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "ino", text = "", fg_dark = "#56b6c2", fg_light = "#397981" },
+ { name = "ipynb", text = "", fg_dark = "#51a0cf", fg_light = "#366b8a" },
+ { name = "iso", text = "", fg_dark = "#d0bec8", fg_light = "#453f43" },
+ { name = "ixx", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "java", text = "", fg_dark = "#cc3e44", fg_light = "#992e33" },
+ { name = "jl", text = "", fg_dark = "#a270ba", fg_light = "#6c4b7c" },
+ { name = "jpeg", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "jpg", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "js", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "json", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "json5", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "jsonc", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "jsx", text = "", fg_dark = "#20c2e3", fg_light = "#158197" },
+ { name = "jwmrc", text = "", fg_dark = "#0078cd", fg_light = "#005a9a" },
+ { name = "jxl", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "kbx", text = "", fg_dark = "#737672", fg_light = "#565856" },
+ { name = "kdb", text = "", fg_dark = "#529b34", fg_light = "#3e7427" },
+ { name = "kdbx", text = "", fg_dark = "#529b34", fg_light = "#3e7427" },
+ { name = "kdenlive", text = "", fg_dark = "#83b8f2", fg_light = "#425c79" },
+ { name = "kdenlivetitle", text = "", fg_dark = "#83b8f2", fg_light = "#425c79" },
+ { name = "kicad_dru", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "kicad_mod", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "kicad_pcb", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "kicad_prl", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "kicad_pro", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "kicad_sch", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "kicad_sym", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "kicad_wks", text = "", fg_dark = "#ffffff", fg_light = "#333333" },
+ { name = "ko", text = "", fg_dark = "#dcddd6", fg_light = "#494a47" },
+ { name = "kpp", text = "", fg_dark = "#f245fb", fg_light = "#a12ea7" },
+ { name = "kra", text = "", fg_dark = "#f245fb", fg_light = "#a12ea7" },
+ { name = "krz", text = "", fg_dark = "#f245fb", fg_light = "#a12ea7" },
+ { name = "ksh", text = "", fg_dark = "#4d5a5e", fg_light = "#3a4446" },
+ { name = "kt", text = "", fg_dark = "#7f52ff", fg_light = "#5f3ebf" },
+ { name = "kts", text = "", fg_dark = "#7f52ff", fg_light = "#5f3ebf" },
+ { name = "lck", text = "", fg_dark = "#bbbbbb", fg_light = "#5e5e5e" },
+ { name = "leex", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "less", text = "", fg_dark = "#563d7c", fg_light = "#563d7c" },
+ { name = "lff", text = "", fg_dark = "#ececec", fg_light = "#2f2f2f" },
+ { name = "lhs", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "lib", text = "", fg_dark = "#4d2c0b", fg_light = "#4d2c0b" },
+ { name = "license", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "liquid", text = "", fg_dark = "#95bf47", fg_light = "#4a6024" },
+ { name = "lock", text = "", fg_dark = "#bbbbbb", fg_light = "#5e5e5e" },
+ { name = "log", text = "", fg_dark = "#dddddd", fg_light = "#4a4a4a" },
+ { name = "lrc", text = "", fg_dark = "#ffb713", fg_light = "#805c0a" },
+ { name = "lua", text = "", fg_dark = "#51a0cf", fg_light = "#366b8a" },
+ { name = "luac", text = "", fg_dark = "#51a0cf", fg_light = "#366b8a" },
+ { name = "luau", text = "", fg_dark = "#00a2ff", fg_light = "#007abf" },
+ { name = "m", text = "", fg_dark = "#599eff", fg_light = "#3b69aa" },
+ { name = "m3u", text = "", fg_dark = "#ed95ae", fg_light = "#764a57" },
+ { name = "m3u8", text = "", fg_dark = "#ed95ae", fg_light = "#764a57" },
+ { name = "m4a", text = "", fg_dark = "#00afff", fg_light = "#0075aa" },
+ { name = "m4v", text = "", fg_dark = "#fd971f", fg_light = "#7e4c10" },
+ { name = "magnet", text = "", fg_dark = "#a51b16", fg_light = "#a51b16" },
+ { name = "makefile", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "markdown", text = "", fg_dark = "#dddddd", fg_light = "#4a4a4a" },
+ { name = "material", text = "", fg_dark = "#b83998", fg_light = "#8a2b72" },
+ { name = "md", text = "", fg_dark = "#dddddd", fg_light = "#4a4a4a" },
+ { name = "md5", text = "", fg_dark = "#8c86af", fg_light = "#5d5975" },
+ { name = "mdx", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "mint", text = "", fg_dark = "#87c095", fg_light = "#44604a" },
+ { name = "mjs", text = "", fg_dark = "#f1e05a", fg_light = "#504b1e" },
+ { name = "mk", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "mkv", text = "", fg_dark = "#fd971f", fg_light = "#7e4c10" },
+ { name = "ml", text = "", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "mli", text = "", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "mm", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "mo", text = "∞", fg_dark = "#9772fb", fg_light = "#654ca7" },
+ { name = "mobi", text = "", fg_dark = "#eab16d", fg_light = "#755836" },
+ { name = "mov", text = "", fg_dark = "#fd971f", fg_light = "#7e4c10" },
+ { name = "mp3", text = "", fg_dark = "#00afff", fg_light = "#0075aa" },
+ { name = "mp4", text = "", fg_dark = "#fd971f", fg_light = "#7e4c10" },
+ { name = "mpp", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "msf", text = "", fg_dark = "#137be1", fg_light = "#0e5ca9" },
+ { name = "mts", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "mustache", text = "", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "nfo", text = "", fg_dark = "#ffffcd", fg_light = "#333329" },
+ { name = "nim", text = "", fg_dark = "#f3d400", fg_light = "#514700" },
+ { name = "nix", text = "", fg_dark = "#7ebae4", fg_light = "#3f5d72" },
+ { name = "nswag", text = "", fg_dark = "#85ea2d", fg_light = "#427516" },
+ { name = "nu", text = ">", fg_dark = "#3aa675", fg_light = "#276f4e" },
+ { name = "o", text = "", fg_dark = "#9f0500", fg_light = "#9f0500" },
+ { name = "obj", text = "", fg_dark = "#888888", fg_light = "#5b5b5b" },
+ { name = "ogg", text = "", fg_dark = "#0075aa", fg_light = "#005880" },
+ { name = "opus", text = "", fg_dark = "#0075aa", fg_light = "#005880" },
+ { name = "org", text = "", fg_dark = "#77aa99", fg_light = "#4f7166" },
+ { name = "otf", text = "", fg_dark = "#ececec", fg_light = "#2f2f2f" },
+ { name = "out", text = "", fg_dark = "#9f0500", fg_light = "#9f0500" },
+ { name = "part", text = "", fg_dark = "#44cda8", fg_light = "#226654" },
+ { name = "patch", text = "", fg_dark = "#41535b", fg_light = "#41535b" },
+ { name = "pck", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "pcm", text = "", fg_dark = "#0075aa", fg_light = "#005880" },
+ { name = "pdf", text = "", fg_dark = "#b30b00", fg_light = "#b30b00" },
+ { name = "php", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "pl", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "pls", text = "", fg_dark = "#ed95ae", fg_light = "#764a57" },
+ { name = "ply", text = "", fg_dark = "#888888", fg_light = "#5b5b5b" },
+ { name = "pm", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "png", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "po", text = "", fg_dark = "#2596be", fg_light = "#1c708e" },
+ { name = "pot", text = "", fg_dark = "#2596be", fg_light = "#1c708e" },
+ { name = "pp", text = "", fg_dark = "#ffa61a", fg_light = "#80530d" },
+ { name = "ppt", text = "", fg_dark = "#cb4a32", fg_light = "#983826" },
+ { name = "prisma", text = "", fg_dark = "#5a67d8", fg_light = "#444da2" },
+ { name = "pro", text = "", fg_dark = "#e4b854", fg_light = "#725c2a" },
+ { name = "ps1", text = "", fg_dark = "#4273ca", fg_light = "#325698" },
+ { name = "psb", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "psd", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "psd1", text = "", fg_dark = "#6975c4", fg_light = "#4f5893" },
+ { name = "psm1", text = "", fg_dark = "#6975c4", fg_light = "#4f5893" },
+ { name = "pub", text = "", fg_dark = "#e3c58e", fg_light = "#4c422f" },
+ { name = "pxd", text = "", fg_dark = "#5aa7e4", fg_light = "#3c6f98" },
+ { name = "pxi", text = "", fg_dark = "#5aa7e4", fg_light = "#3c6f98" },
+ { name = "py", text = "", fg_dark = "#ffbc03", fg_light = "#805e02" },
+ { name = "pyc", text = "", fg_dark = "#ffe291", fg_light = "#332d1d" },
+ { name = "pyd", text = "", fg_dark = "#ffe291", fg_light = "#332d1d" },
+ { name = "pyi", text = "", fg_dark = "#ffbc03", fg_light = "#805e02" },
+ { name = "pyo", text = "", fg_dark = "#ffe291", fg_light = "#332d1d" },
+ { name = "pyx", text = "", fg_dark = "#5aa7e4", fg_light = "#3c6f98" },
+ { name = "qm", text = "", fg_dark = "#2596be", fg_light = "#1c708e" },
+ { name = "qml", text = "", fg_dark = "#40cd52", fg_light = "#2b8937" },
+ { name = "qrc", text = "", fg_dark = "#40cd52", fg_light = "#2b8937" },
+ { name = "qss", text = "", fg_dark = "#40cd52", fg_light = "#2b8937" },
+ { name = "query", text = "", fg_dark = "#90a850", fg_light = "#607035" },
+ { name = "r", text = "", fg_dark = "#2266ba", fg_light = "#1a4c8c" },
+ { name = "rake", text = "", fg_dark = "#701516", fg_light = "#701516" },
+ { name = "rar", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
+ { name = "razor", text = "", fg_dark = "#512bd4", fg_light = "#512bd4" },
+ { name = "rb", text = "", fg_dark = "#701516", fg_light = "#701516" },
+ { name = "res", text = "", fg_dark = "#cc3e44", fg_light = "#992e33" },
+ { name = "resi", text = "", fg_dark = "#f55385", fg_light = "#a33759" },
+ { name = "rlib", text = "", fg_dark = "#dea584", fg_light = "#6f5242" },
+ { name = "rmd", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "rproj", text = "", fg_dark = "#358a5b", fg_light = "#286844" },
+ { name = "rs", text = "", fg_dark = "#dea584", fg_light = "#6f5242" },
+ { name = "rss", text = "", fg_dark = "#fb9d3b", fg_light = "#7e4e1e" },
+ { name = "sass", text = "", fg_dark = "#f55385", fg_light = "#a33759" },
+ { name = "sbt", text = "", fg_dark = "#cc3e44", fg_light = "#992e33" },
+ { name = "sc", text = "", fg_dark = "#cc3e44", fg_light = "#992e33" },
+ { name = "scad", text = "", fg_dark = "#f9d72c", fg_light = "#53480f" },
+ { name = "scala", text = "", fg_dark = "#cc3e44", fg_light = "#992e33" },
+ { name = "scm", text = "", fg_dark = "#eeeeee", fg_light = "#303030" },
+ { name = "scss", text = "", fg_dark = "#f55385", fg_light = "#a33759" },
+ { name = "sh", text = "", fg_dark = "#4d5a5e", fg_light = "#3a4446" },
+ { name = "sha1", text = "", fg_dark = "#8c86af", fg_light = "#5d5975" },
+ { name = "sha224", text = "", fg_dark = "#8c86af", fg_light = "#5d5975" },
+ { name = "sha256", text = "", fg_dark = "#8c86af", fg_light = "#5d5975" },
+ { name = "sha384", text = "", fg_dark = "#8c86af", fg_light = "#5d5975" },
+ { name = "sha512", text = "", fg_dark = "#8c86af", fg_light = "#5d5975" },
+ { name = "sig", text = "λ", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "signature", text = "λ", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "skp", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "sldasm", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "sldprt", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "slim", text = "", fg_dark = "#e34c26", fg_light = "#aa391c" },
+ { name = "sln", text = "", fg_dark = "#854cc7", fg_light = "#643995" },
+ { name = "slvs", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "sml", text = "λ", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "so", text = "", fg_dark = "#dcddd6", fg_light = "#494a47" },
+ { name = "sol", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "spec.js", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "spec.jsx", text = "", fg_dark = "#20c2e3", fg_light = "#158197" },
+ { name = "spec.ts", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "spec.tsx", text = "", fg_dark = "#1354bf", fg_light = "#1354bf" },
+ { name = "sql", text = "", fg_dark = "#dad8d8", fg_light = "#494848" },
+ { name = "sqlite", text = "", fg_dark = "#dad8d8", fg_light = "#494848" },
+ { name = "sqlite3", text = "", fg_dark = "#dad8d8", fg_light = "#494848" },
+ { name = "srt", text = "", fg_dark = "#ffb713", fg_light = "#805c0a" },
+ { name = "ssa", text = "", fg_dark = "#ffb713", fg_light = "#805c0a" },
+ { name = "ste", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "step", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "stl", text = "", fg_dark = "#888888", fg_light = "#5b5b5b" },
+ { name = "stp", text = "", fg_dark = "#839463", fg_light = "#576342" },
+ { name = "strings", text = "", fg_dark = "#2596be", fg_light = "#1c708e" },
+ { name = "styl", text = "", fg_dark = "#8dc149", fg_light = "#466024" },
+ { name = "sub", text = "", fg_dark = "#ffb713", fg_light = "#805c0a" },
+ { name = "sublime", text = "", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "suo", text = "", fg_dark = "#854cc7", fg_light = "#643995" },
+ { name = "sv", text = "", fg_dark = "#019833", fg_light = "#017226" },
+ { name = "svelte", text = "", fg_dark = "#ff3e00", fg_light = "#bf2e00" },
+ { name = "svg", text = "", fg_dark = "#ffb13b", fg_light = "#80581e" },
+ { name = "svh", text = "", fg_dark = "#019833", fg_light = "#017226" },
+ { name = "swift", text = "", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "t", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "tbc", text = "", fg_dark = "#1e5cb3", fg_light = "#1e5cb3" },
+ { name = "tcl", text = "", fg_dark = "#1e5cb3", fg_light = "#1e5cb3" },
+ { name = "templ", text = "", fg_dark = "#dbbd30", fg_light = "#6e5e18" },
+ { name = "terminal", text = "", fg_dark = "#31b53e", fg_light = "#217929" },
+ { name = "test.js", text = "", fg_dark = "#cbcb41", fg_light = "#666620" },
+ { name = "test.jsx", text = "", fg_dark = "#20c2e3", fg_light = "#158197" },
+ { name = "test.ts", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "test.tsx", text = "", fg_dark = "#1354bf", fg_light = "#1354bf" },
+ { name = "tex", text = "", fg_dark = "#3d6117", fg_light = "#3d6117" },
+ { name = "tf", text = "", fg_dark = "#5f43e9", fg_light = "#4732af" },
+ { name = "tfvars", text = "", fg_dark = "#5f43e9", fg_light = "#4732af" },
+ { name = "tgz", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
+ { name = "tmux", text = "", fg_dark = "#14ba19", fg_light = "#0f8c13" },
+ { name = "toml", text = "", fg_dark = "#9c4221", fg_light = "#753219" },
+ { name = "torrent", text = "", fg_dark = "#44cda8", fg_light = "#226654" },
+ { name = "tres", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "ts", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "tscn", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "tsconfig", text = "", fg_dark = "#ff8700", fg_light = "#aa5a00" },
+ { name = "tsx", text = "", fg_dark = "#1354bf", fg_light = "#1354bf" },
+ { name = "ttf", text = "", fg_dark = "#ececec", fg_light = "#2f2f2f" },
+ { name = "twig", text = "", fg_dark = "#8dc149", fg_light = "#466024" },
+ { name = "txt", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = "txz", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
+ { name = "typoscript", text = "", fg_dark = "#ff8700", fg_light = "#aa5a00" },
+ { name = "ui", text = "", fg_dark = "#0c306e", fg_light = "#0c306e" },
+ { name = "v", text = "", fg_dark = "#019833", fg_light = "#017226" },
+ { name = "vala", text = "", fg_dark = "#7239b3", fg_light = "#562b86" },
+ { name = "vh", text = "", fg_dark = "#019833", fg_light = "#017226" },
+ { name = "vhd", text = "", fg_dark = "#019833", fg_light = "#017226" },
+ { name = "vhdl", text = "", fg_dark = "#019833", fg_light = "#017226" },
+ { name = "vim", text = "", fg_dark = "#019833", fg_light = "#017226" },
+ { name = "vsh", text = "", fg_dark = "#5d87bf", fg_light = "#3e5a7f" },
+ { name = "vsix", text = "", fg_dark = "#854cc7", fg_light = "#643995" },
+ { name = "vue", text = "", fg_dark = "#8dc149", fg_light = "#466024" },
+ { name = "wasm", text = "", fg_dark = "#5c4cdb", fg_light = "#4539a4" },
+ { name = "wav", text = "", fg_dark = "#00afff", fg_light = "#0075aa" },
+ { name = "webm", text = "", fg_dark = "#fd971f", fg_light = "#7e4c10" },
+ { name = "webmanifest", text = "", fg_dark = "#f1e05a", fg_light = "#504b1e" },
+ { name = "webp", text = "", fg_dark = "#a074c4", fg_light = "#6b4d83" },
+ { name = "webpack", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "wma", text = "", fg_dark = "#00afff", fg_light = "#0075aa" },
+ { name = "woff", text = "", fg_dark = "#ececec", fg_light = "#2f2f2f" },
+ { name = "woff2", text = "", fg_dark = "#ececec", fg_light = "#2f2f2f" },
+ { name = "wrl", text = "", fg_dark = "#888888", fg_light = "#5b5b5b" },
+ { name = "wrz", text = "", fg_dark = "#888888", fg_light = "#5b5b5b" },
+ { name = "x", text = "", fg_dark = "#599eff", fg_light = "#3b69aa" },
+ { name = "xaml", text = "", fg_dark = "#512bd4", fg_light = "#512bd4" },
+ { name = "xcf", text = "", fg_dark = "#635b46", fg_light = "#4a4434" },
+ { name = "xcplayground", text = "", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "xcstrings", text = "", fg_dark = "#2596be", fg_light = "#1c708e" },
+ { name = "xls", text = "", fg_dark = "#207245", fg_light = "#207245" },
+ { name = "xlsx", text = "", fg_dark = "#207245", fg_light = "#207245" },
+ { name = "xm", text = "", fg_dark = "#519aba", fg_light = "#36677c" },
+ { name = "xml", text = "", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "xpi", text = "", fg_dark = "#ff1b01", fg_light = "#bf1401" },
+ { name = "xul", text = "", fg_dark = "#e37933", fg_light = "#975122" },
+ { name = "xz", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
+ { name = "yaml", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "yml", text = "", fg_dark = "#6d8086", fg_light = "#526064" },
+ { name = "zig", text = "", fg_dark = "#f69a1b", fg_light = "#7b4d0e" },
+ { name = "zip", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
+ { name = "zsh", text = "", fg_dark = "#89e051", fg_light = "#447028" },
+ { name = "zst", text = "", fg_dark = "#eca517", fg_light = "#76520c" },
]
-
conds = [
# Special files
{ if = "orphan", text = "" },
-
- { if = "block", text = "" },
- { if = "char", text = "" },
- { if = "fifo", text = "" },
- { if = "sock", text = "" },
+ { if = "block" , text = "" },
+ { if = "char" , text = "" },
+ { if = "fifo" , text = "" },
+ { if = "sock" , text = "" },
{ if = "sticky", text = "" },
- { if = "dummy", text = "" },
+ { if = "dummy", text = "" },
# Fallback
- { if = "dir", text = "", fg = "yellow" },
- { if = "exec", text = "" },
- # { if = "!dir", text = "" },
- { if = "!dir", text = "" },
+ { if = "dir", text = "", fg_dark = "yellow" },
+ { if = "exec", text = "", fg_dark = "yellow" },
+ { if = "!dir", text = "" },
]
+# : }}}
diff --git a/misc/.config/yazi/yazi.toml b/misc/.config/yazi/yazi.toml
index be9f291..4b022c3 100644
--- a/misc/.config/yazi/yazi.toml
+++ b/misc/.config/yazi/yazi.toml
@@ -1,7 +1,31 @@
-[mgr]
+# 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"
-show_symlink = false
-linemode = "size"
+[manager]
+ratio = [ 1, 2, 3 ]
+sort_by = "alphabetical"
+sort_sensitive = false
+sort_reverse = false
+sort_dir_first = true
+sort_translit = false
+linemode = "size"
+show_hidden = true
+show_symlink = false
+# scrolloff = 5
+mouse_events = [ "click", "scroll" ]
+title_format = "Yazi: {cwd}"
+
+[preview]
+tab_size = 2
+max_width = 1000
+max_height = 1500
+cache_dir = ""
+image_filter = "triangle"
+image_quality = 75
+sixel_fraction = 15
+ueberzug_scale = 4
+ueberzug_offset = [ 0, 0, 0, 0 ]
[opener]
open = [
@@ -20,9 +44,124 @@ rules = [
{ mime = "*", use = [ "open", "alt" ] },
]
+[tasks]
+micro_workers = 10
+macro_workers = 25
+bizarre_retry = 5
+image_alloc = 536870912 # 512MB
+image_bound = [ 0, 0 ]
+suppress_preload = false
+
[plugin]
-prepend_previewers = [
- # Default json previewer not working for some reason
- { mime = "application/{json,ndjson}", run = "code" },
+
+fetchers = [
+ # Mimetype
+ { id = "mime", name = "*", run = "mime", if = "!mime", prio = "high" },
+]
+preloaders = [
+ # Image
+ { mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
+ { mime = "image/*", run = "image" },
+ # Video
+ { mime = "video/*", run = "video" },
+ # PDF
+ { mime = "application/pdf", run = "pdf" },
+ # Font
+ { mime = "font/*", run = "font" },
+ { mime = "application/vnd.ms-opentype", run = "font" },
+]
+previewers = [
+ { name = "*/", run = "folder", sync = true },
+ # Code
+ { mime = "text/*", run = "code" },
+ { mime = "*/{xml,javascript,x-wine-extension-ini}", run = "code" },
+ # JSON
+ { mime = "application/{json,x-ndjson}", run = "json" },
+ # Image
+ { mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
+ { mime = "image/*", run = "image" },
+ # Video
+ { mime = "video/*", run = "video" },
+ # PDF
+ { mime = "application/pdf", run = "pdf" },
+ # Archive
+ { mime = "application/{,g}zip", run = "archive" },
+ { mime = "application/x-{tar,bzip*,7z-compressed,xz,rar,iso9660-image}", run = "archive" },
+ # Font
+ { mime = "font/*", run = "font" },
+ { mime = "application/vnd.ms-opentype", run = "font" },
+ # Empty file
+ { mime = "inode/x-empty", run = "empty" },
+ # Fallback
+ { name = "*", run = "file" },
]
+[input]
+# cd
+cd_title = "Change directory:"
+cd_origin = "top-center"
+cd_offset = [ 0, 2, 50, 3 ]
+
+# create
+create_title = "Create:"
+create_origin = "top-center"
+create_offset = [ 0, 2, 50, 3 ]
+
+# rename
+rename_title = "Rename:"
+rename_origin = "hovered"
+rename_offset = [ 0, 1, 50, 3 ]
+
+# trash
+trash_title = "Move {n} selected file{s} to trash? (y/N)"
+trash_origin = "top-center"
+trash_offset = [ 0, 2, 50, 3 ]
+
+# delete
+delete_title = "Delete {n} selected file{s} permanently? (y/N)"
+delete_origin = "top-center"
+delete_offset = [ 0, 2, 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 ]
+
+# overwrite
+overwrite_title = "Overwrite an existing file? (y/N)"
+overwrite_origin = "top-center"
+overwrite_offset = [ 0, 2, 50, 3 ]
+
+# quit
+quit_title = "{n} task{s} running, sure to quit? (y/N)"
+quit_origin = "top-center"
+quit_offset = [ 0, 2, 50, 3 ]
+
+[select]
+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
+
+[log]
+enabled = false
diff --git a/misc/.config/zsh/.zshenv b/misc/.config/zsh/.zshenv
index 0943012..a35bb31 100644
--- a/misc/.config/zsh/.zshenv
+++ b/misc/.config/zsh/.zshenv
@@ -39,7 +39,6 @@ export XDG_STATE_HOME="$HOME/.local/state"
export CARGO_HOME="$XDG_DATA_HOME/cargo"
export CUDA_CACHE_PATH="$XDG_CACHE_HOME/nv"
export EMACS_INIT_FILE="$XDG_CONFIG_HOME/emacs"
-export FZF_DEFAULT_OPTS_FILE="$XDG_CONFIG_HOME/fzf/config"
export GIT_CONFIG="$XDG_CONFIG_HOME/git/config"
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
export INPUTRC="$XDG_CONFIG_HOME/readline/inputrc"
diff --git a/misc/.config/zsh/.zshrc b/misc/.config/zsh/.zshrc
index 4135986..f4a2b30 100755
--- a/misc/.config/zsh/.zshrc
+++ b/misc/.config/zsh/.zshrc
@@ -59,6 +59,7 @@ alias asciiquarium='asciiquarium -t'
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
+alias python='python3'
alias xournal='xournalpp'
alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"'
alias sxiv='nsxiv'
@@ -68,8 +69,6 @@ alias zoom='dlkiller zoom'
alias tor='torbrowser-launcher'
alias emax="devour emacsclient -c -a 'emacs' 1>/dev/null"
alias em="emacsclient -nw -a 'emacs -nw'"
-alias wgup="sudo wg-quick up ~/wg-quick.conf"
-alias wgdown="sudo wg-quick down ~/wg-quick.conf"
# Colorful output
alias ls='LC_COLLATE=C ls --color=auto --group-directories-first -hN -A'
@@ -107,41 +106,6 @@ function pwdterm {
setsid -f $TERMINAL -e $SHELL >/dev/null 2>&1 &
}
-function ncd() {
- local dir=$1
- local file=$2
-
- cd "$dir" || return
-
- if [[ -n "$file" ]]; then
- nvim "$file"
- else
- nvim
- fi
-}
-
-_ncd_completion() {
- local dir
- local resolved_dir
-
- dir="${words[2]}"
-
- if command -v realpath &>/dev/null; then
- resolved_dir="$(realpath -- "$dir" 2>/dev/null)"
- elif command -v readlink &>/dev/null; then
- resolved_dir="$(readlink -f -- "$dir" 2>/dev/null)"
- else
- # fallback: assume relative to $PWD manually
- resolved_dir="$PWD/$dir"
- fi
-
- if [[ -d $resolved_dir ]]; then
- _files -W "$resolved_dir"
- else
- _files
- fi
-}
-
function ya() {
local tmp="$(mktemp -t "yazi-cwd.XXXXX")"
yazi "$@" --cwd-file="$tmp"
@@ -235,9 +199,6 @@ compinit -d ~/.cache/zcompdump
zstyle ':completion:*:*:*:*:*' menu select
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # case insensitive tab completion
-
-compdef _ncd_completion ncd
-
# Remove green background of simlinks
LS_COLORS+=':ow=01;33'
@@ -279,5 +240,8 @@ if [ -f ~/.config/zsh/.zshpersonalrc ]; then
source ~/.config/zsh/.zshpersonalrc
fi
+accent_color="$(cat $HOME/.config/colors/accent)"
+starship config format "'''[╭──\([\$username@\$hostname](bold $accent_color)\)-\[\$directory\](-\[\$git_branch\$git_metrics\$git_status\])(-\[\$nix_shell\])]($accent_color) \$cmd_duration
+[╰─]($accent_color)[\$shell](bold $accent_color) '''"
eval "$(starship init zsh)"
diff --git a/misc/.local/bin/menu-man b/misc/.local/bin/menu-man
index 24487c7..ac39f4f 100755
--- a/misc/.local/bin/menu-man
+++ b/misc/.local/bin/menu-man
@@ -1,13 +1,12 @@
#!/bin/sh
-sel="$(man -k . | fzf --prompt "Man page: ")"
+sel="$(man -k . | fuzzel --dmenu -i -p "Man page:")"
[ "$sel" = "" ] && exit # Exit on no selection
# Selection comes in the form of:
# $program ($num) - $desc
# Need to run `man $num $program`
page="$(echo "$sel" | awk -F'[()]' '{print $2" "$1}')"
-# hyprctl dispatch exec [floating] "foot -W 78x38 -e man $page"
-
-man $page
+# nohup $TERMINAL -e man $page >/dev/null 2>&1 &
+hyprctl dispatch exec [floating] "foot -W 78x38 -e man $page"
diff --git a/misc/.local/bin/opener b/misc/.local/bin/opener
index 5906230..1421aa5 100755
--- a/misc/.local/bin/opener
+++ b/misc/.local/bin/opener
@@ -93,27 +93,16 @@ case $(file --mime-type "$file" -b) in
launch_term nvim "$file"
fi
;;
- image/x-xcf)
- list_exit \
- "Gimp"
-
- launch_gui gimp "$file"
- ;;
image/*)
list_exit \
- "nsxiv" \
- "Gimp"
-
- if [ "$num" -eq 2 ]; then
- launch_gui gimp "$file"
- else
- launch_gui nsxiv "$file"
- fi
+ "nsxiv"
+ launch_gui nsxiv "$file"
;;
video/*)
list_exit \
- "MPV"
-
+ "Neovim" \
+ "Emacs GUI" \
+ "Emacs TUI"
launch_gui mpv -quiet "$file"
;;
application/epub*|\
@@ -124,14 +113,12 @@ case $(file --mime-type "$file" -b) in
image/vnd.djvu)
list_exit \
"Zathura"
-
launch_gui zathura "$file"
;;
audio/*|\
video/x-ms-asf)
list_exit \
"MPV"
-
# If it has an album cover, launch graphical mpv
[ -z "$(mediainfo "$1" | grep "Cover\s*: Yes")" ] \
&& (launch_term mpv --audio-display=no "$file") \
diff --git a/nixos/.config/nixos/core.nix b/nixos/.config/nixos/core.nix
index 4aeec6e..2c4359d 100644
--- a/nixos/.config/nixos/core.nix
+++ b/nixos/.config/nixos/core.nix
@@ -11,9 +11,6 @@ in {
dates = "weekly";
options = "--delete-older-than 7d";
};
- # I do not use flakes personally, but being able to run other
- # people's flakes is convenient.
- settings.experimental-features = [ "nix-command" "flakes" ];
};
# Files to add to /etc
@@ -32,8 +29,6 @@ in {
];
};
- networking.networkmanager.enable = true;
-
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
@@ -53,23 +48,21 @@ in {
# version of this font centers the symbols which is nice.
nur.repos.bandithedoge.symbols-nerd-font
- fira-code
- nerd-fonts.fira-code
- font-awesome
hack-font
+ fira-code
inter
- libertine
- roboto
- source-sans-pro
+ fira-code-nerdfont
];
+ networking.networkmanager.enable = true;
+
# Bluetooth daemon
services.blueman.enable = true;
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
# Audio daemon
- services.pulseaudio.enable = false;
+ hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
@@ -108,7 +101,6 @@ in {
];
};
zsh.enable = true;
- command-not-found.enable = true;
};
virtualisation.docker.enable = true;
@@ -154,7 +146,6 @@ in {
man-pages-posix # Documentation
neofetch # Aesthetic sysinfo
openconnect # Connect to VPNs
- p7zip # Open 7z files
pass-nodmenu # CLI password store (without dmenu dependency)
pinentry-curses # Terminal-based pinentry program
socat # Interact with sockets
@@ -162,8 +153,6 @@ in {
tldr # Brief info about a command
tmux # Terminal multiplexor
udisks # Good way of dealing with USBs and similar media
- unrar-free # Open .rar files
- wget # Similar to curl
yazi # Terminal file manager
# Shell
@@ -197,7 +186,7 @@ in {
(self: super: {
# Pop into an environment abiding by the Filesystem Hierarchy Standard
# to run applications which do not play nicely with NixOS.
- fhs-run = pkgs.buildFHSEnv {
+ fhs-run = pkgs.buildFHSUserEnv {
name = "fhs-run";
targetPkgs = pkgs: [];
multiPkgs = pkgs: [ pkgs.dpkg ];
diff --git a/nixos/.config/nixos/derivations/extra-icons/default.nix b/nixos/.config/nixos/derivations/extra-icons/default.nix
deleted file mode 100644
index c8e7c9a..0000000
--- a/nixos/.config/nixos/derivations/extra-icons/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib
-, pkgs
-, stdenv
-, fetchurl
-}:
-
-stdenv.mkDerivation rec {
- pname = "extra-icons";
- version = "0.0.1";
-
- src = ./.;
-
- nativeBuildInputs = with pkgs; [
- imagemagick # for resize
- inkscape # for svgs
- ];
-
- postInstall = ''
- mkdir -p $out/share/icons/hicolor/scalable/apps/
- for icon in ${src}/raster/*; do
- icon_name=$(basename "$icon")
- inkscape -p "$icon" -o "$out/share/icons/hicolor/scalable/apps/extra-scale-''${icon_name%.*}.svg"
- for i in 16 24 48 64 96 128 256 512; do
- mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps
- magick convert -background none -resize "''${i}x''${i}" "$icon" "$out/share/icons/hicolor/''${i}x''${i}/apps/extra-$icon_name"
- done
- done
- for icon in ${src}/vector/*; do
- icon_name=$(basename "$icon")
- cp "$icon" "$out/share/icons/hicolor/scalable/apps/extra-scale-$icon_name"
- inkscape -p "$icon" -o "$out/share/icons/hicolor/scalable/apps/extra-''${icon_name%.*}-svg.svg"
- done
- '';
-}
-
diff --git a/nixos/.config/nixos/derivations/zen-browser/default.nix b/nixos/.config/nixos/derivations/zen-browser/default.nix
deleted file mode 100644
index 1d40da1..0000000
--- a/nixos/.config/nixos/derivations/zen-browser/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ appimageTools, fetchurl, ... }:
-let
- pname = "zen";
- version = "latest";
-
- src = fetchurl {
- url = "https://github.com/zen-browser/desktop/releases/latest/download/zen-x86_64.AppImage";
- sha256 = "sha256-hZiJ8JLzLhtD1W8DAso3yBAJYhFE+nJEbQJa59AWjnU=";
- };
-
- appimageContents = appimageTools.extract {
- inherit pname version src;
- };
-in
-appimageTools.wrapType2 {
- inherit pname version src;
-
- extraInstallCommands = ''
- # Install .desktop file
- install -m 444 -D ${appimageContents}/zen.desktop $out/share/applications/${pname}.desktop
- # Install icon
- install -m 444 -D ${appimageContents}/zen.png $out/share/icons/hicolor/128x128/apps/${pname}.png
- '';
-
- meta = {
- platforms = [ "x86_64-linux" ];
- };
-}
-
diff --git a/nixos/.config/nixos/profiles/fcitx.nix b/nixos/.config/nixos/profiles/fcitx.nix
index 8c54375..ab74a18 100644
--- a/nixos/.config/nixos/profiles/fcitx.nix
+++ b/nixos/.config/nixos/profiles/fcitx.nix
@@ -9,11 +9,12 @@
type = "fcitx5";
fcitx5 = {
waylandFrontend = true;
+ plasma6Support = false;
addons = with pkgs; [
- qt6Packages.fcitx5-with-addons
- qt6Packages.fcitx5-configtool
- qt6Packages.fcitx5-chinese-addons
+ fcitx5-with-addons
+ fcitx5-configtool
fcitx5-rime
+ fcitx5-chinese-addons
fcitx5-m17n
];
};
diff --git a/nixos/.config/nixos/profiles/java.nix b/nixos/.config/nixos/profiles/java.nix
index c805e32..cad70d1 100644
--- a/nixos/.config/nixos/profiles/java.nix
+++ b/nixos/.config/nixos/profiles/java.nix
@@ -7,7 +7,7 @@
};
environment.systemPackages = with pkgs; [
- javaPackages.openjfx17
+ javaPackages.openjfx19
jdk17
];
}
diff --git a/nixos/.config/nixos/profiles/nvim.nix b/nixos/.config/nixos/profiles/nvim.nix
index a85e1b6..f0ef054 100644
--- a/nixos/.config/nixos/profiles/nvim.nix
+++ b/nixos/.config/nixos/profiles/nvim.nix
@@ -5,10 +5,8 @@
neovim
# LSPs
- clang
clang-tools
lua-language-server
- python3Packages.python-lsp-server
# Misc
ripgrep # Used by telescope
diff --git a/nixos/.config/nixos/profiles/steam.nix b/nixos/.config/nixos/profiles/steam.nix
new file mode 100644
index 0000000..7b0065a
--- /dev/null
+++ b/nixos/.config/nixos/profiles/steam.nix
@@ -0,0 +1,10 @@
+{ config, pkgs, ... }:
+
+{
+ nixpkgs.config.allowUnfree = true;
+
+ environment.systemPackages = with pkgs; [
+ steam
+ ];
+}
+
diff --git a/nixos/.config/nixos/profiles/wm/hyprland.nix b/nixos/.config/nixos/profiles/wm/hyprland.nix
index a61c6ad..82a9ace 100644
--- a/nixos/.config/nixos/profiles/wm/hyprland.nix
+++ b/nixos/.config/nixos/profiles/wm/hyprland.nix
@@ -5,7 +5,11 @@ let
nixos-unstable = (import {});
flake-compat = builtins.fetchTarball "https://github.com/edolstra/flake-compat/archive/master.tar.gz";
hyprland_nightly = (import flake-compat {
- src = builtins.fetchTarball "https://github.com/hyprwm/Hyprland/archive/main.tar.gz";
+ src = builtins.fetchGit {
+ ref = "main";
+ url = "https://github.com/hyprwm/Hyprland.git";
+ submodules = true;
+ };
}).defaultNix;
in {
# Trusted Hyprland cache, as to not have to rebuild nightly
@@ -17,39 +21,14 @@ in {
# Or else swaylock will not accept correct password
security.pam.services.swaylock = {};
- services.keyd.enable = true;
- services.keyd.keyboards = {
- default = {
- ids = [ "*" ];
- settings = {
- main = {
- capslock = "overload(control, esc)";
- esc = "capslock";
- };
- };
- };
- };
-
- # Enable OpenGL
- hardware.graphics = {
- enable = true;
- };
-
programs = {
hyprland = { # Dynamic tiling window manager
enable = true;
xwayland.enable = true;
+ # package = nixos-unstable.hyprland;
+ # package = hyprland_nightly.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
};
-
- dconf = {
- enable = true;
- profiles.gdm.databases = [{
- settings = {
- # set dark theme for gtk 4
- "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; };
- };
- }];
- };
+ nm-applet.enable = true;
};
systemd.user.services = {
@@ -62,27 +41,24 @@ in {
serviceConfig.Restart = "always";
serviceConfig.RestartSec = 1;
};
+ # network-manager-applet = {
+ # description = "Start the network manager applet";
+ # after = [ "graphical-session.target" ];
+ # requires = [ "graphical-session.target" ];
+ # wantedBy = [ "graphical-session.target" ];
+ # serviceConfig.Type = "forking";
+ # serviceConfig.Restart = "always";
+ # serviceConfig.RestartSec = 1;
+ # serviceConfig.ExecStart = "${pkgs.networkmanagerapplet}/bin/nm-applet";
+ # };
};
- environment.variables.GSETTINGS_SCHEMA_DIR =
- let
- paths = [
- "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas/"
- "${pkgs.bottles-unwrapped}/share/gsettings-schemas/${pkgs.bottles-unwrapped.name}/glib-2.0/schemas/"
- ];
- in
- builtins.concatStringsSep ":" paths;
-
environment.systemPackages = with pkgs; [
- adwaita-icon-theme
- adwaita-qt
blueman # Bluetooth manager
dunst # Notification daemon
firefox # My browser of choice
foot # Wayland native terminal
fuzzel # Fuzzy finding menuing program
- glib
- gnome-themes-extra
gobble # Wayland alternative to devour
grimblast # Allows freezing screen
grim # Screenshot tool
@@ -90,21 +66,22 @@ in {
hypridle # Do commands upon user idle
hyprland-autoname-workspaces # Add icons to workspace titles
hyprlock # Screen locking utility
+ hyprpaper
hyprpicker # Colorpicker utility
- hyprsunset # Bluelight filter
+ kanshi # Autorandr substitute
libnotify # Send messages to notification daemon
libreoffice # MSOffice btfo
# networkmanagerapplet # Wifi dropdown menu
networkmanager_dmenu # Manage wifi with dmenu
nsxiv # Image viewer
nwg-displays
- pcmanfm # Graphical file manager
pinentry-rofi # Rofi frontend for pinentry program
- quickshell # Use QT to create widgets
+ pyprland # Plugin manager for Hyprland
rofi # Menu prompt program
rofi-pass # Rofi frontend for password store
+ sassc # SCSS interpreter
slurp # Screen selection utility
- st # Suckless Simple Terminal
+ st
swaylock # Wayland session locker
swww # Sets background images
texlive.combined.scheme-full # LaTeX to create documents
@@ -116,47 +93,39 @@ in {
wdisplays # Arnadr substitute
wl-clipboard # Copy/paste utility
wlr-randr # Xrandr substitute
+ xwaylandvideobridge # Allows screensharing from XWayland programs
xorg.xcursorthemes
zathura # Minimalist PDF reader
- zen-browser # Better firefox
- intel-gpu-tools # Tools for intel GPU
- mesa-demos # Tools for Mesa drivers
-
- xfce.thunar # Graphical file manager
- xfce.tumbler # Thumbnailer service
-
- # libsForQt5.qt5.qtsvg # Allow for svg icons in QT applications
- kdePackages.qt6ct
+ zen-browser
# GTK Themes
lxappearance-gtk2 # Theme switcher
gruvbox-dark-gtk
-
- # Custom packages
- extra-icons
];
nixpkgs.overlays = [
(final: prev: {
hyprland-autoname-workspaces = nixos-unstable.hyprland-autoname-workspaces;
+ waybar = nixos-unstable.waybar;
typst = nixos-unstable.typst;
- swww = nixos-unstable.swww;
+ # typst = (import flake-compat {
+ # src = builtins.fetchGit {
+ # url = "https://github.com/typst/typst.git";
+ # };
+ # }).outputs.packages.${pkgs.stdenv.hostPlatform.system}.default;
zen-browser = (import flake-compat {
src = builtins.fetchGit {
url = "https://github.com/0xc000022070/zen-browser-flake.git";
};
}).outputs.packages.${pkgs.stdenv.hostPlatform.system}.default;
- st = prev.callPackage /home/vince/.config/st/default.nix {};
- extra-icons = prev.callPackage ../../derivations/extra-icons {};
- # quickshell = (nixos-unstable.callPackage "${builtins.fetchGit {
- # url = "https://git.outfoxxed.me/outfoxxed/quickshell.git";
- # ref = "master";
- # }}/" {}).overrideAttrs (oa: {
- # buildInputs = (oa.buildInputs or []) ++ [ nixos-unstable.qt6.qt5compat ];
- # });
- quickshell = nixos-unstable.quickshell.overrideAttrs(oa: {
- buildInputs = (oa.buildInputs or []) ++ [ nixos-unstable.qt6.qt5compat ];
- });
+ st = prev.st.overrideAttrs (o: {
+ src = /home/vince/.config/st;
+ buildInputs = o.buildInputs ++ (with pkgs; [
+ # Extra libraries needed to build patches
+ harfbuzz
+ imlib2
+ ]);
+ });
})
];
}
diff --git a/quickshell/.config/quickshell/Globals.qml b/quickshell/.config/quickshell/Globals.qml
new file mode 100644
index 0000000..8c4a5af
--- /dev/null
+++ b/quickshell/.config/quickshell/Globals.qml
@@ -0,0 +1,18 @@
+pragma Singleton
+
+import QtQuick
+import Quickshell
+
+Singleton {
+ id: root
+ property var popupContext: PopupContext {};
+ property var date: new Date()
+
+ Timer {
+ interval: 1000
+ repeat: true
+ running: true
+
+ onTriggered: root.date = new Date()
+ }
+}
diff --git a/quickshell/.config/quickshell/Theme.qml b/quickshell/.config/quickshell/Theme.qml
deleted file mode 100644
index 9e5f2d3..0000000
--- a/quickshell/.config/quickshell/Theme.qml
+++ /dev/null
@@ -1,103 +0,0 @@
-pragma Singleton
-
-import QtQuick
-import Quickshell
-
-Singleton {
- property Item get: black
-
- Item {
- id: windowsXP
-
- property string barBgColor: "#235EDC"
- property string buttonBorderColor: "#99000000"
- property bool buttonBorderShadow: false
- property bool onTop: false
- property string iconColor: "green"
- property string iconPressedColor: "green"
- property Gradient barGradient: black.barGradient
- property Gradient buttonInactiveGradientV: Gradient {
- GradientStop { position: 0.0; color: "#55FFFFFF" }
- GradientStop { position: 0.3; color: "#22FFFFFF" }
- }
- property Gradient buttonInactiveGradientH: Gradient {
- orientation: Gradient.Horizontal
- GradientStop { position: 0.0; color: "#55FFFFFF" }
- GradientStop { position: 0.1; color: "#00000000" }
- }
- property Gradient buttonActiveGradient: Gradient {
- GradientStop { position: 0.0; color: "#99000000" }
- GradientStop { position: 0.3; color: "#55000000" }
- GradientStop { position: 1.0; color: "#55000000" }
- }
- }
-
- Item {
- id: black
-
- property string barBgColor: "#cc000000"
- property string buttonBorderColor: "#44FFFFFF"
- property bool buttonBorderShadow: true
- property bool onTop: true
- property string iconColor: "blue"
- property string iconPressedColor: "dark_blue"
- property Gradient barGradient: Gradient {
- GradientStop { position: 0.0; color: "#55FFFFFF" }
- GradientStop { position: 0.4; color: "#00FFFFFF" }
- GradientStop { position: 0.8; color: "#00FFFFFF" }
- GradientStop { position: 1.0; color: "#AA000000" }
- }
- property Gradient buttonInactiveGradientV: Gradient {
- GradientStop { position: 0.0; color: "#33FFFFFF" }
- GradientStop { position: 0.3; color: "#55000000" }
- }
- property Gradient buttonInactiveGradientH: Gradient {
- orientation: Gradient.Horizontal
- GradientStop { position: 0.0; color: "#55FFFFFF" }
- GradientStop { position: 0.1; color: "#00000000" }
- }
- property Gradient buttonActiveGradient: Gradient {
- GradientStop { position: 0.92; color: "#FF000000" }
- GradientStop { position: 0.93; color: "#FFFFFFFF" }
- GradientStop { position: 1.0; color: "#FFFFFFFF" }
- }
- }
-
- Item {
- id: black_bright
-
- property string barBgColor: black.barBgColor
- property string buttonBorderColor: windowsXP.buttonBorderColor
- property bool buttonBorderShadow: windowsXP.buttonBorderShadow
- property bool onTop: black.onTop
- property string iconColor: "orange"
- property string iconPressedColor: "orange"
- property Gradient barGradient: black.barGradient
- property Gradient buttonInactiveGradientV: windowsXP.buttonInactiveGradientV
- property Gradient buttonInactiveGradientH: windowsXP.buttonInactiveGradientH
- property Gradient buttonActiveGradient: windowsXP.buttonActiveGradient
- }
-
- Item {
- id: black_flat
-
- property string barBgColor: "#cc000000"
- property string buttonBorderColor: "#01000000" // Making this transparent breaks things
- property bool buttonBorderShadow: false
- property bool onTop: true
- property string iconColor: ""
- property string iconPressedColor: ""
- property Gradient barGradient: Gradient {
- GradientStop { position: 0.0; color: "transparent" }
- }
- property Gradient buttonInactiveGradientV: Gradient {
- GradientStop { position: 0.0; color: "transparent" }
- }
- property Gradient buttonInactiveGradientH: Gradient {
- orientation: Gradient.Horizontal
- GradientStop { position: 0.0; color: "transparent" }
- }
- property Gradient buttonActiveGradient: black.buttonActiveGradient
- }
-}
-
diff --git a/quickshell/.config/quickshell/bar/Bar.qml b/quickshell/.config/quickshell/bar/Bar.qml
index 6d45b46..48a2bfa 100644
--- a/quickshell/.config/quickshell/bar/Bar.qml
+++ b/quickshell/.config/quickshell/bar/Bar.qml
@@ -1,98 +1,49 @@
import Quickshell
import Quickshell.Io
-import Quickshell.Hyprland
import QtQuick
import QtQuick.Layouts
import "blocks" as Blocks
-import "root:/"
Scope {
Variants {
model: Quickshell.screens
PanelWindow {
- id: bar
property var modelData
screen: modelData
- color: Theme.get.barBgColor
-
- Rectangle {
- id: highlight
- anchors.fill: parent
- gradient: Theme.get.barGradient
- }
-
- height: 30
-
- visible: true
-
- IpcHandler {
- target: "bar"
-
- function toggleVis(): void {
- visible = !visible;
- }
- }
+ color: "#cc000000"
+ height: 27
anchors {
- top: Theme.get.onTop
- bottom: !Theme.get.onTop
+ top: true
left: true
right: true
}
RowLayout {
- id: allBlocks
spacing: 0
- anchors.fill: parent
+ width: parent.width
+ height: parent.height
// Left side
RowLayout {
- id: leftBlocks
- spacing: 10
+ spacing: 0
Layout.alignment: Qt.AlignLeft
- Layout.fillWidth: true
Blocks.Icon {}
Blocks.Workspaces {}
- }
-
- Blocks.ActiveWorkspace {
- id: activeWorkspace
- Layout.leftMargin: 10
- anchors.centerIn: undefined
-
- chopLength: {
- var space = Math.floor(bar.width - (rightBlocks.implicitWidth + leftBlocks.implicitWidth))
- return space * 0.08;
- }
-
- text: {
- var str = activeWindowTitle
- return str.length > chopLength ? str.slice(0, chopLength) + '...' : str;
- }
-
- color: {
- return Hyprland.focusedMonitor == Hyprland.monitorFor(screen)
- ? "#FFFFFF" : "#CCCCCC"
- }
- }
-
- // Without this filler item, the active window block will be centered
- // despite setting left alignment
- Item {
- Layout.fillWidth: true
+ Blocks.ActiveWorkspace {}
}
// Right side
RowLayout {
- id: rightBlocks
spacing: 0
Layout.alignment: Qt.AlignRight
- Layout.fillWidth: true
Blocks.SystemTray {}
+ Blocks.Test {}
+ Blocks.Notifications {}
Blocks.Memory {}
Blocks.Sound {}
Blocks.Battery {}
diff --git a/quickshell/.config/quickshell/bar/BarBlock.qml b/quickshell/.config/quickshell/bar/BarBlock.qml
index edd4aca..9daf98a 100644
--- a/quickshell/.config/quickshell/bar/BarBlock.qml
+++ b/quickshell/.config/quickshell/bar/BarBlock.qml
@@ -4,11 +4,8 @@ import Quickshell
Rectangle {
id: root
- Layout.preferredWidth: contentContainer.implicitWidth + 10
- Layout.preferredHeight: 30
-
- property Item content
- property Item mouseArea: mouseArea
+ Layout.preferredWidth: wsText.implicitWidth + 10
+ Layout.preferredHeight: 27
property string text
property bool dim: false
@@ -17,7 +14,9 @@ Rectangle {
property int leftPadding
property int rightPadding
- property string hoveredBgColor: "#666666"
+ property string fgColor: "white"
+ property string dimFgColor: "#999999"
+ property string hoveredBgColor: "#444444"
// Background color
color: {
@@ -41,13 +40,28 @@ Rectangle {
}
}
- Item {
- // Contents of the bar block
- id: contentContainer
- implicitWidth: content.implicitWidth
- implicitHeight: content.implicitHeight
- anchors.centerIn: parent
- children: content
+ BarText {
+ id: wsText
+ text: root.text
+ anchors {
+ left: parent.left
+ right: parent.right
+ leftMargin: root.leftPadding
+ rightMargin: root.rightPadding
+ verticalCenter: parent.verticalCenter
+ }
+
+ color: {
+ if (mouseArea.containsMouse || !root.dim)
+ return fgColor
+ return dimFgColor
+ }
+
+ Behavior on color {
+ ColorAnimation {
+ duration: 100
+ }
+ }
}
MouseArea {
@@ -62,11 +76,11 @@ Rectangle {
Rectangle {
id: wsLine
width: parent.width
- height: 2
+ height: 3
color: {
if (parent.underline)
- return "white";
+ return fgColor;
return "transparent";
}
anchors.bottom: parent.bottom
diff --git a/quickshell/.config/quickshell/bar/BarText.qml b/quickshell/.config/quickshell/bar/BarText.qml
index 3b40767..25e2299 100644
--- a/quickshell/.config/quickshell/bar/BarText.qml
+++ b/quickshell/.config/quickshell/bar/BarText.qml
@@ -1,57 +1,39 @@
import Quickshell
import Quickshell.Io
-import Quickshell.Widgets
import QtQuick
-import QtQuick.Layouts
-import QtQuick.Effects
-import Qt5Compat.GraphicalEffects
-Text {
+Item {
+ property string text
+ property string color: "white"
property string mainFont: "FiraCode"
property string symbolFont: "Symbols Nerd Font Mono"
- property int pointSize: 12
- property int symbolSize: pointSize * 1.37
- property string symbolText
- property bool dim
- text: wrapSymbols(symbolText)
- anchors.centerIn: parent
- color: dim ? "#CCCCCC" : "white"
- textFormat: Text.RichText
- font {
- family: mainFont
- pointSize: pointSize
- }
+ property int pointSize: 11
- Text {
- visible: false
- id: textcopy
- text: parent.text
- textFormat: parent.textFormat
- color: parent.color
- font: parent.font
- }
-
- DropShadow {
- anchors.fill: parent
- horizontalOffset: 1
- verticalOffset: 1
- color: "#000000"
- source: textcopy
- }
+ implicitWidth: thetext.implicitWidth
+ implicitHeight: thetext.implicitHeight
function wrapSymbols(text) {
- if (!text)
- return ""
-
const isSymbol = (codePoint) =>
(codePoint >= 0xE000 && codePoint <= 0xF8FF) // Private Use Area
|| (codePoint >= 0xF0000 && codePoint <= 0xFFFFF) // Supplementary Private Use Area-A
|| (codePoint >= 0x100000 && codePoint <= 0x10FFFF); // Supplementary Private Use Area-B
return text.replace(/./gu, (c) => isSymbol(c.codePointAt(0))
- ? `${c}`
- // ? c
+ ? `${c}`
: c);
}
+
+ Text {
+ id: thetext
+ text: wrapSymbols(parent.text)
+ color: parent.color
+ anchors.centerIn: parent
+
+ font {
+ family: parent.mainFont
+ pointSize: parent.pointSize
+ }
+ textFormat: Text.RichText
+ }
}
diff --git a/quickshell/.config/quickshell/bar/blocks/ActiveWorkspace.qml b/quickshell/.config/quickshell/bar/blocks/ActiveWorkspace.qml
index 7969212..22091f5 100644
--- a/quickshell/.config/quickshell/bar/blocks/ActiveWorkspace.qml
+++ b/quickshell/.config/quickshell/bar/blocks/ActiveWorkspace.qml
@@ -1,16 +1,15 @@
import QtQuick
-import QtQuick.Layouts
import Quickshell.Io
import Quickshell.Hyprland
import "../"
BarText {
- // text: {
- // var str = activeWindowTitle
- // return str.length > chopLength ? str.slice(0, chopLength) + '...' : str;
- // }
+ text: {
+ var str = activeWindowTitle
+ return str.length > chopLength ? str.slice(0, chopLength) + '...' : str;
+ }
- property int chopLength
+ property int chopLength: 70
property string activeWindowTitle
Process {
diff --git a/quickshell/.config/quickshell/bar/blocks/Battery.qml b/quickshell/.config/quickshell/bar/blocks/Battery.qml
index a8d4ccc..10be0e0 100644
--- a/quickshell/.config/quickshell/bar/blocks/Battery.qml
+++ b/quickshell/.config/quickshell/bar/blocks/Battery.qml
@@ -4,9 +4,7 @@ import "../"
BarBlock {
property string battery
- content: BarText {
- symbolText: battery
- }
+ text: battery
Process {
id: batteryProc
diff --git a/quickshell/.config/quickshell/bar/blocks/Date.qml b/quickshell/.config/quickshell/bar/blocks/Date.qml
index 11ce193..8b94919 100644
--- a/quickshell/.config/quickshell/bar/blocks/Date.qml
+++ b/quickshell/.config/quickshell/bar/blocks/Date.qml
@@ -3,8 +3,6 @@ import "../"
BarBlock {
id: text
- content: BarText {
- symbolText: ` ${Datetime.date}`
- }
+ text: ` ${Datetime.date}`
}
diff --git a/quickshell/.config/quickshell/bar/blocks/Icon.qml b/quickshell/.config/quickshell/bar/blocks/Icon.qml
index bc62c67..217e40c 100644
--- a/quickshell/.config/quickshell/bar/blocks/Icon.qml
+++ b/quickshell/.config/quickshell/bar/blocks/Icon.qml
@@ -1,66 +1,11 @@
import QtQuick
import QtQuick.Layouts
import Quickshell
-import Quickshell.Io
-import Quickshell.Widgets
-import Qt5Compat.GraphicalEffects
import "../"
-import "root:/"
BarBlock {
- id: root
- Layout.preferredWidth: 40
-
- content: BarText {
- text: ""
- pointSize: 17
- anchors.horizontalCenterOffset: -2
- }
- // content: IconImage {
- // id: theicon
- // visible: false
- // anchors.centerIn: parent
- // source: "image://icon/extra-nixos"
- // implicitSize: 20
- // }
- // DropShadow {
- // anchors.fill: parent
- // horizontalOffset: 1
- // verticalOffset: 1
- // radius: 6.0
- // samples: 20
- // color: "#000000"
- // source: parent.content
- // }
- // IconImage {
- // anchors.centerIn: parent
- // source: "image://icon/extra-nixos"
- // implicitSize: 20
- // }
-
- Image {
- anchors.fill: parent
- source: mouseArea.containsMouse
- ? "../images/" + Theme.get.iconPressedColor + ".png"
- : "../images/" + Theme.get.iconColor + ".png";
- visible: true
- z: -1
- }
-
- color: "transparent"
-
- Process {
- id: neofetch
- running: false
- command: [ "sh", "-c", "hyprctl dispatch exec [float] \
- \"foot -W 95x22 -e zsh -c 'neofetch; while true; do; done'\"" ]
- stdout: SplitParser {
- onRead: data => console.log(`line read: ${data}`)
- }
- }
-
- onClicked: function() {
- neofetch.running = true
- }
+ Layout.preferredWidth: 30
+ rightPadding: 5
+ text: ""
}
diff --git a/quickshell/.config/quickshell/bar/blocks/Memory.qml b/quickshell/.config/quickshell/bar/blocks/Memory.qml
index d274325..26900c0 100644
--- a/quickshell/.config/quickshell/bar/blocks/Memory.qml
+++ b/quickshell/.config/quickshell/bar/blocks/Memory.qml
@@ -6,9 +6,7 @@ import "../"
BarBlock {
id: text
- content: BarText {
- symbolText: ` ${Math.floor(percentFree)}%`
- }
+ text: ` ${Math.floor(percentFree)}%`
property real percentFree
diff --git a/quickshell/.config/quickshell/bar/blocks/Sound.qml b/quickshell/.config/quickshell/bar/blocks/Sound.qml
index 7486408..0553162 100644
--- a/quickshell/.config/quickshell/bar/blocks/Sound.qml
+++ b/quickshell/.config/quickshell/bar/blocks/Sound.qml
@@ -7,15 +7,9 @@ import "../"
BarBlock {
id: text
- visible: Pipewire.ready
-
- content: BarText {
- symbolText: ` ${volume}`
- }
+ text: ` ${Math.floor(sink?.audio.volume * 100)}%`
property PwNode sink: Pipewire.defaultAudioSink
- property string volume: Pipewire.ready ? `${Math.floor(sink.audio.volume * 100)}%` : ""
-
PwObjectTracker { objects: [ sink ] }
}
diff --git a/quickshell/.config/quickshell/bar/blocks/SystemTray.qml b/quickshell/.config/quickshell/bar/blocks/SystemTray.qml
index 15c4691..12818f1 100644
--- a/quickshell/.config/quickshell/bar/blocks/SystemTray.qml
+++ b/quickshell/.config/quickshell/bar/blocks/SystemTray.qml
@@ -4,20 +4,13 @@ import QtQuick.Layouts
import Quickshell
import Quickshell.Widgets
import Quickshell.Services.SystemTray
-import "root:/bar"
+import "../" as Bar
RowLayout {
spacing: 5
Repeater {
- model: ScriptModel {
- values: {[...SystemTray.items.values]
- .filter((item) => {
- return (item.id != "spotify-client"
- && item.id != "chrome_status_icon_1")
- })
- }
- }
+ model: SystemTray.items
MouseArea {
id: delegate
@@ -50,6 +43,7 @@ RowLayout {
id: icon
anchors.centerIn: parent
source: item.icon
+
implicitSize: 16
}
@@ -68,7 +62,7 @@ RowLayout {
}
}
- Tooltip {
+ Bar.Tooltip {
relativeItem: delegate.containsMouse ? delegate : null
Label {
diff --git a/quickshell/.config/quickshell/bar/blocks/Time.qml b/quickshell/.config/quickshell/bar/blocks/Time.qml
index 5650fcb..770403d 100644
--- a/quickshell/.config/quickshell/bar/blocks/Time.qml
+++ b/quickshell/.config/quickshell/bar/blocks/Time.qml
@@ -3,8 +3,6 @@ import "../"
BarBlock {
id: text
- content: BarText {
- symbolText: ` ${Datetime.time}`
- }
+ text: ` ${Datetime.time}`
}
diff --git a/quickshell/.config/quickshell/bar/blocks/Workspaces.qml b/quickshell/.config/quickshell/bar/blocks/Workspaces.qml
index 37a2e71..5d32c48 100644
--- a/quickshell/.config/quickshell/bar/blocks/Workspaces.qml
+++ b/quickshell/.config/quickshell/bar/blocks/Workspaces.qml
@@ -2,8 +2,6 @@ import QtQuick
import QtQuick.Layouts
import Quickshell
import Quickshell.Hyprland
-import Quickshell.Widgets
-import Qt5Compat.GraphicalEffects
import "root:/"
import "../"
@@ -45,224 +43,21 @@ RowLayout {
property bool hasClients: ws.name.length > 2
dim: true
- underline: false
- border.color: Theme.get.buttonBorderColor
- radius: 5
- gradient: isActive || isOpen ? Theme.get.buttonActiveGradient : Theme.get.buttonInactiveGradientV
- Layout.preferredWidth: content.width + 20
-
- Rectangle {
- visible: !isActive && !isOpen
- gradient: Theme.get.buttonInactiveGradientH
- implicitWidth: parent.width
- implicitHeight: parent.height
- radius: parent.radius
- z:-1
- }
-
- Rectangle {
- visible: Theme.get.buttonBorderShadow
- implicitWidth: parent.width - 1
- implicitHeight: parent.height - 1
- radius: parent.radius
- color: "transparent" // Transparent fill
- border.color: parent.isActive || parent.isOpen ? "transparent" : "black" // Inner border color
- border.width: 1 // Inner border width
-
- x: 1
- y: 1
- z: -1
- }
-
+ underline: isActive || isOpen
onClicked: function() {
Hyprland.dispatch(`workspace ${ws.id}`);
}
-
- content: RowLayout {
- spacing: 0
- anchors.centerIn: parent
-
- Repeater {
- id: therepeater
- model: ScriptModel {
- values: getChunks(ws.name)
- }
-
- delegate: Item {
- property bool showText: modelData.type === "text" && modelData.value.length > 0
- property bool showIcon: modelData.type === "icon"
- // property int symbolSize: 18
- property int symbolSize: 22
- property int spacerSize: 3
-
- implicitWidth: {
- if (showText)
- return thetext.implicitWidth
- if (showIcon)
- return symbolSize
- return spacerSize;
- }
- implicitHeight: {
- if (showText)
- return thetext.implicitHeight
- if (showIcon)
- return symbolSize
- return spacerSize;
- }
- Layout.alignment: Qt.AlignCenter
-
- Loader {
- id: thetext
- anchors.centerIn: parent
- active: modelData.type === "text"
- sourceComponent: BarText {
- text: modelData.value
- dim: !isActive
-
- // pointSize: 10
- }
- }
-
- Loader {
- id: theicon
- anchors.centerIn: parent
- active: modelData.type === "icon"
-
- sourceComponent: Item {
- implicitWidth: inside.implicitWidth
- implicitHeight: inside.implicitHeight
- IconImage {
- id: inside
- anchors.centerIn: parent
- source: modelData.source
- implicitSize: symbolSize
- opacity: modelData.active ? 1 : 0.7
- mipmap: true
- }
- DropShadow {
- anchors.fill: parent
- verticalOffset: 1
- horizontalOffset: 1
- radius: 8.0
- color: "#000000"
- source: inside
- opacity: modelData.active ? 1 : 0.7
- }
- Rectangle {
- visible: modelData.mult > 1
- width: 10
- height: width
- radius: width / 2
- color: "black"
- opacity: 0.8
- BarText {
- text: modelData.mult
- pointSize: 10
- dim: !isActive
- style: Text.Outline
- styleColor: "black"
- }
- }
- }
- }
- }
+ leftPadding: hasClients ? 2 : 0
+ text: {
+ if (isActive) {
+ if (!hasClients)
+ return `${ws.name}`
+ var split_i = ws.id > 9 ? 3 : 2
+ return `${ws.name.slice(0, split_i)}${ws.name.slice(split_i)}`
}
+ return ws.name
}
}
}
-
- function getChunks(text) {
- let chunks = [];
- let buffer = ""; // Temporary storage for text segments
-
- let symbolChunkInd = {}
-
- let nextIsActive = false
- for (let c of text) {
- if (c === "") {
- nextIsActive = true
- continue
- }
-
- if (!(c in symbolImgMap)) {
- buffer += c;
- nextIsActive = false
- continue;
- }
-
- if (buffer.length > 0 && !/^\s*$/.test(buffer)) {
- chunks.push({
- type: "text",
- value: buffer,
- });
- buffer = ""; // Reset text buffer
- }
-
- if (!(c in symbolChunkInd)) {
- if (chunks[chunks.length - 1].type == "icon") {
- chunks.push({type: "spacer"})
- }
- symbolChunkInd[c] = chunks.length
- chunks.push({
- type: "icon",
- active: nextIsActive,
- source: `image://icon/${symbolImgMap[c]}`,
- mult: 1, // multiplicity; how many times this symbol was seen
- });
- } else {
- chunks[symbolChunkInd[c]].mult++
- if (nextIsActive)
- chunks[symbolChunkInd[c]].active = true;
- }
- nextIsActive = false
- }
-
- if (buffer.length > 0 && !/^\s*$/.test(buffer)) {
- chunks.push({ type: "text", value: buffer})
- }
-
- return chunks;
- }
-
- property var symbolImgMap: {
- "": "extra-scale-vim",
- "": "extra-scale-yazi",
- // "": "extra-zen",
- "": "extra-scale-firefox",
- "": "extra-scale-slack",
- "": "extra-scale-terminal-thin",
- "": "extra-scale-firefox",
- "": "extra-scale-element-desktop",
- "": "extra-scale-discord-circle-dark",
- "": "extra-scale-chromium",
- // "": "chromium",
- "": "libreoffice-draw",
- "": "libreoffice-writer",
- "": "libreoffice-calc",
- "": "libreoffice-impress",
- // "": "signal-desktop",
- "": "extra-signal-simple",
- "": "extra-zathura",
- "": "extra-spotify",
- // "": "extra-scale-spotify",
- "": "extra-steam",
- "": "extra-scale-bluetooth",
- "": "extra-anki",
- "": "extra-scale-gimp",
- "": "extra-ghidra",
- // "": "com.obsproject.Studio",
- "": "extra-scale-obs",
- "": "extra-scale-photos",
- "": "extra-anki",
- "": "extra-mpv",
- "": "extra-virtualbox",
- "": "extra-scale-emacs",
- "": "monero",
- "": "extra-system-explorer-outline",
- "": "extra-scale-vlc",
- "": "com.usebottles.bottles",
- "": "Zoom",
- "": "teams-for-linux",
- }
}
diff --git a/quickshell/.config/quickshell/bar/images/blue.png b/quickshell/.config/quickshell/bar/images/blue.png
deleted file mode 100644
index 46fff43..0000000
Binary files a/quickshell/.config/quickshell/bar/images/blue.png and /dev/null differ
diff --git a/quickshell/.config/quickshell/bar/images/dark_blue.png b/quickshell/.config/quickshell/bar/images/dark_blue.png
deleted file mode 100644
index 387c175..0000000
Binary files a/quickshell/.config/quickshell/bar/images/dark_blue.png and /dev/null differ
diff --git a/quickshell/.config/quickshell/bar/images/green.png b/quickshell/.config/quickshell/bar/images/green.png
deleted file mode 100644
index ac3b389..0000000
Binary files a/quickshell/.config/quickshell/bar/images/green.png and /dev/null differ
diff --git a/quickshell/.config/quickshell/bar/images/green.xcf b/quickshell/.config/quickshell/bar/images/green.xcf
deleted file mode 100644
index 892f81b..0000000
Binary files a/quickshell/.config/quickshell/bar/images/green.xcf and /dev/null differ
diff --git a/quickshell/.config/quickshell/bar/images/orange.png b/quickshell/.config/quickshell/bar/images/orange.png
deleted file mode 100644
index dc523c2..0000000
Binary files a/quickshell/.config/quickshell/bar/images/orange.png and /dev/null differ
diff --git a/quickshell/.config/quickshell/shell.qml b/quickshell/.config/quickshell/shell.qml
index 3079f29..6d8d8da 100644
--- a/quickshell/.config/quickshell/shell.qml
+++ b/quickshell/.config/quickshell/shell.qml
@@ -1,8 +1,8 @@
//@ pragma UseQApplication
import Quickshell
-import "bar"
+import "bar" as Bar
ShellRoot {
- Bar {}
+ Bar.Bar {}
}