diff --git a/.dotter/global.toml b/.dotter/global.toml index 66a748fc..9a4e107a 100644 --- a/.dotter/global.toml +++ b/.dotter/global.toml @@ -159,6 +159,7 @@ depends = [ "zsh", "tmux", "fish" ] "config/starship.toml" = "~/.config/starship/starship.toml" "config/ghostty/" = "~/.config/ghostty/" "config/ghostty/config" = {target = "~/.config/ghostty/config", type = "template"} +"config/xdg-desktop-portal-termfilechooser/" = "~/.config/xdg-desktop-portal-termfilechooser/" [tmux.files] "config/tmux/" = "~/.config/tmux/" diff --git a/config/HybridBar/scripts/change-active-workspace b/config/HybridBar/scripts/change-active-workspace old mode 100644 new mode 100755 diff --git a/config/HybridBar/scripts/get-active-workspace b/config/HybridBar/scripts/get-active-workspace old mode 100644 new mode 100755 diff --git a/config/HybridBar/scripts/get-window-title b/config/HybridBar/scripts/get-window-title old mode 100644 new mode 100755 diff --git a/config/HybridBar/scripts/get-workspaces b/config/HybridBar/scripts/get-workspaces old mode 100644 new mode 100755 diff --git a/config/eww/scripts/change-active-workspace b/config/eww/scripts/change-active-workspace old mode 100644 new mode 100755 diff --git a/config/eww/scripts/get-active-workspace b/config/eww/scripts/get-active-workspace old mode 100644 new mode 100755 diff --git a/config/eww/scripts/get-window-title b/config/eww/scripts/get-window-title old mode 100644 new mode 100755 diff --git a/config/eww/scripts/get-workspaces b/config/eww/scripts/get-workspaces old mode 100644 new mode 100755 diff --git a/config/eww/scripts/mem-ad b/config/eww/scripts/mem-ad old mode 100644 new mode 100755 diff --git a/config/eww/scripts/memory b/config/eww/scripts/memory old mode 100644 new mode 100755 diff --git a/config/eww/scripts/music_info b/config/eww/scripts/music_info old mode 100644 new mode 100755 diff --git a/config/eww/scripts/music_info.bak b/config/eww/scripts/music_info.bak old mode 100644 new mode 100755 diff --git a/config/eww/scripts/pop b/config/eww/scripts/pop old mode 100644 new mode 100755 diff --git a/config/eww/scripts/wifi b/config/eww/scripts/wifi old mode 100644 new mode 100755 diff --git a/config/eww/scripts/workspace b/config/eww/scripts/workspace old mode 100644 new mode 100755 diff --git a/config/git/check_email.sh b/config/git/check_email.sh old mode 100755 new mode 100644 diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index f530727e..dbaab030 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -15,7 +15,7 @@ ################ # See https://wiki.hyprland.org/Configuring/Monitors/ -monitor=eDP-1,prefered,0x0,1 +monitor=eDP-1,prefered,0x0,1.5 # monitor=DP-1,prefered,180x-1440,1 # monitor=HDMI-A-1,prefered,480x-1080,1 # monitor=HDMI-A-1,prefered,mirror,eDP-1 @@ -45,7 +45,7 @@ $browser = {{browser}} exec-once=pipewire & pipewire-pulse & wireplumber & eww daemon & eww open bar exec-once=dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP DISPLAY XAUTHORITY -exec-once=nextcloud & /usr/lib/hyprpolkitagent & xrdb "$XDG_CONFIG_HOME/x11/xresources" & transmission-daemon & dunst & hyprpaper +exec-once=nextcloud & /usr/lib/hyprpolkitagent & xrdb "$XDG_CONFIG_HOME/x11/xresources" & transmission-daemon & mako & hyprpaper exec-once=[workspace 1 silent] $browser exec-once=[workspace 8 silent] kotatogram-desktop & flatpak run dev.vencord.Vesktop # exec-once=[workspace 9 silent] spotify-launcher @@ -286,51 +286,51 @@ bind = $mainMod SHIFT, L, movewindow, r bind = $mainMod SHIFT, H, movewindow, l # Switch workspaces with mainMod + [0-9] -# bind = $mainMod, 1, workspace, 1 -# bind = $mainMod, 2, workspace, 2 -# bind = $mainMod, 3, workspace, 3 -# bind = $mainMod, 4, workspace, 4 -# bind = $mainMod, 5, workspace, 5 -# bind = $mainMod, 6, workspace, 6 -# bind = $mainMod, 7, workspace, 7 -# bind = $mainMod, 8, workspace, 8 -# bind = $mainMod, 9, workspace, 9 -# bind = $mainMod, 0, workspace, 10 -bind = $mainMod, 1, split-workspace, 1 -bind = $mainMod, 2, split-workspace, 2 -bind = $mainMod, 3, split-workspace, 3 -bind = $mainMod, 4, split-workspace, 4 -bind = $mainMod, 5, split-workspace, 5 -bind = $mainMod, 6, split-workspace, 6 -bind = $mainMod, 7, split-workspace, 7 -bind = $mainMod, 8, split-workspace, 8 -bind = $mainMod, 9, split-workspace, 9 -bind = $mainMod, 0, split-workspace, 10 +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 +# bind = $mainMod, 1, split-workspace, 1 +# bind = $mainMod, 2, split-workspace, 2 +# bind = $mainMod, 3, split-workspace, 3 +# bind = $mainMod, 4, split-workspace, 4 +# bind = $mainMod, 5, split-workspace, 5 +# bind = $mainMod, 6, split-workspace, 6 +# bind = $mainMod, 7, split-workspace, 7 +# bind = $mainMod, 8, split-workspace, 8 +# bind = $mainMod, 9, split-workspace, 9 +# bind = $mainMod, 0, split-workspace, 10 # Move active window to a workspace with mainMod + SHIFT + [0-9] -# bind = $mainMod SHIFT, 1, movetoworkspace, 1 -# bind = $mainMod SHIFT, 2, movetoworkspace, 2 -# bind = $mainMod SHIFT, 3, movetoworkspace, 3 -# bind = $mainMod SHIFT, 4, movetoworkspace, 4 -# bind = $mainMod SHIFT, 5, movetoworkspace, 5 -# bind = $mainMod SHIFT, 6, movetoworkspace, 6 -# bind = $mainMod SHIFT, 7, movetoworkspace, 7 -# bind = $mainMod SHIFT, 8, movetoworkspace, 8 -# bind = $mainMod SHIFT, 9, movetoworkspace, 9 -# bind = $mainMod SHIFT, 0, movetoworkspace, 10 -bind = $mainMod SHIFT, 1, split-movetoworkspace, 1 -bind = $mainMod SHIFT, 2, split-movetoworkspace, 2 -bind = $mainMod SHIFT, 3, split-movetoworkspace, 3 -bind = $mainMod SHIFT, 4, split-movetoworkspace, 4 -bind = $mainMod SHIFT, 5, split-movetoworkspace, 5 -bind = $mainMod SHIFT, 6, split-movetoworkspace, 6 -bind = $mainMod SHIFT, 7, split-movetoworkspace, 7 -bind = $mainMod SHIFT, 8, split-movetoworkspace, 8 -bind = $mainMod SHIFT, 9, split-movetoworkspace, 9 -bind = $mainMod SHIFT, 0, split-movetoworkspace, 10 +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 +# bind = $mainMod SHIFT, 1, split-movetoworkspace, 1 +# bind = $mainMod SHIFT, 2, split-movetoworkspace, 2 +# bind = $mainMod SHIFT, 3, split-movetoworkspace, 3 +# bind = $mainMod SHIFT, 4, split-movetoworkspace, 4 +# bind = $mainMod SHIFT, 5, split-movetoworkspace, 5 +# bind = $mainMod SHIFT, 6, split-movetoworkspace, 6 +# bind = $mainMod SHIFT, 7, split-movetoworkspace, 7 +# bind = $mainMod SHIFT, 8, split-movetoworkspace, 8 +# bind = $mainMod SHIFT, 9, split-movetoworkspace, 9 +# bind = $mainMod SHIFT, 0, split-movetoworkspace, 10 -bind = $mainMod, O, split-changemonitor, next +# bind = $mainMod, O, split-changemonitor, next # Example special workspace (scratchpad) # bind = $mainMod, S, togglespecialworkspace, magic # bind = $mainMod SHIFT, S, movetoworkspace, special:magic diff --git a/config/lf/cleaner b/config/lf/cleaner old mode 100644 new mode 100755 diff --git a/config/lf/lfrc b/config/lf/lfrc old mode 100644 new mode 100755 diff --git a/config/nsxiv/exec/image-info b/config/nsxiv/exec/image-info old mode 100644 new mode 100755 diff --git a/config/nsxiv/exec/key-handler b/config/nsxiv/exec/key-handler old mode 100644 new mode 100755 diff --git a/config/nsxiv/exec/nsxiv-url b/config/nsxiv/exec/nsxiv-url old mode 100644 new mode 100755 diff --git a/config/nsxiv/exec/thumb-info b/config/nsxiv/exec/thumb-info old mode 100644 new mode 100755 diff --git a/config/nsxiv/exec/win-title b/config/nsxiv/exec/win-title old mode 100644 new mode 100755 diff --git a/config/sqruff/config.cfg b/config/sqruff/config.cfg index 2a4030e9..58f5576e 100644 --- a/config/sqruff/config.cfg +++ b/config/sqruff/config.cfg @@ -1,431 +1,27 @@ [sqlfluff] -# verbose is an integer (0-2) indicating the level of log output -verbose = 0 -# Turn off color formatting of output -nocolor = False -# Supported dialects https://docs.sqlfluff.com/en/stable/dialects.html -# Or run 'sqlfluff dialects' -dialect = None -# See templater docs for options -templater = raw -# Comma separated list of rules to check, default to core -rules = core -# Comma separated list of rules to exclude, or None -exclude_rules = None -# Below controls SQLFluff output, see max_line_length for SQL output -output_line_length = 80 -# Number of passes to run before admitting defeat -runaway_limit = 10 -# Ignore errors by category (one or more of the following, separated by commas: lexing,linting,parsing,templating) -ignore = None -# Warn only for rule codes (one of more rule codes, seperated by commas: e.g. LT01,LT02) -# Also works for templating and parsing errors by using TMP or PRS -warnings = None -# Whether to warn about unneeded '-- noqa:' comments. -warn_unused_ignores = False -# Ignore linting errors found within sections of code coming directly from -# templated code (e.g. from within Jinja curly braces. Note that it does not -# ignore errors from literal code found within template loops. -ignore_templated_areas = True -# can either be autodetect or a valid encoding e.g. utf-8, utf-8-sig -encoding = autodetect -# Ignore inline overrides (e.g. to test if still required) -disable_noqa = False -# Comma separated list of file extensions to lint -# NB: This config will only apply in the root folder -sql_file_exts = .sql,.sql.j2,.dml,.ddl -# Allow fix to run on files, even if they contain parsing errors -# Note altering this is NOT RECOMMENDED as can corrupt SQL -fix_even_unparsable = False -# Very large files can make the parser effectively hang. -# The more efficient check is the _byte_ limit check which -# is enabled by default. The previous _character_ limit check -# is still present for backward compatibility. This will be -# removed in a future version. -# Set either to 0 to disable. -large_file_skip_char_limit = 0 -large_file_skip_byte_limit = 20000 -# CPU processes to use while linting. -# If positive, just implies number of processes. -# If negative or zero, implies number_of_cpus - specified_number. -# e.g. -1 means use all processors but one. 0 means all cpus. -processes = 1 -# Max line length is set by default to be in line with the dbt style guide. -# https://github.com/dbt-labs/corp/blob/main/dbt_style_guide.md -# Set to zero or negative to disable checks. -max_line_length = 80 +dialect = postgres [sqlfluff:indentation] -# See https://docs.sqlfluff.com/en/stable/layout.html#configuring-indent-locations -indent_unit = space -tab_space_size = 4 -indented_joins = False -indented_ctes = False -indented_using_on = True -indented_on_contents = True -indented_then = True -indented_then_contents = True -allow_implicit_indents = False -template_blocks_indent = True -# This is a comma seperated list of elements to skip -# indentation edits to. -skip_indentation_in = script_content -# If comments are found at the end of long lines, we default to moving -# them to the line _before_ their current location as the convention is -# that a comment precedes the line it describes. However if you prefer -# comments moved _after_, this configuration setting can be set to "after". -trailing_comments = before - -# Layout configuration -# See https://docs.sqlfluff.com/en/stable/layout.html#configuring-layout-and-spacing -[sqlfluff:layout:type:comma] -spacing_before = touch -line_position = trailing - -[sqlfluff:layout:type:binary_operator] -spacing_within = touch -line_position = leading - -[sqlfluff:layout:type:statement_terminator] -spacing_before = touch -line_position = trailing - -[sqlfluff:layout:type:end_of_file] -spacing_before = touch - -[sqlfluff:layout:type:set_operator] -line_position = alone:strict - -[sqlfluff:layout:type:start_bracket] -spacing_after = touch - -[sqlfluff:layout:type:end_bracket] -spacing_before = touch - -[sqlfluff:layout:type:start_square_bracket] -spacing_after = touch - -[sqlfluff:layout:type:end_square_bracket] -spacing_before = touch - -[sqlfluff:layout:type:start_angle_bracket] -spacing_after = touch - -[sqlfluff:layout:type:end_angle_bracket] -spacing_before = touch - -[sqlfluff:layout:type:casting_operator] -spacing_before = touch -spacing_after = touch:inline - -[sqlfluff:layout:type:slice] -spacing_before = touch -spacing_after = touch - -[sqlfluff:layout:type:dot] -spacing_before = touch -spacing_after = touch - -[sqlfluff:layout:type:comparison_operator] -spacing_within = touch -line_position = leading - -[sqlfluff:layout:type:assignment_operator] -spacing_within = touch -line_position = leading - -[sqlfluff:layout:type:object_reference] -spacing_within = touch:inline - -[sqlfluff:layout:type:numeric_literal] -spacing_within = touch:inline - -[sqlfluff:layout:type:sign_indicator] -spacing_after = touch:inline - -[sqlfluff:layout:type:tilde] -spacing_after = touch:inline - -[sqlfluff:layout:type:function_name] -spacing_within = touch:inline - -[sqlfluff:layout:type:function_contents] -spacing_before = touch:inline - -[sqlfluff:layout:type:function_parameter_list] -spacing_before = touch:inline - -[sqlfluff:layout:type:array_type] -spacing_within = touch:inline - -[sqlfluff:layout:type:typed_array_literal] -spacing_within = touch - -[sqlfluff:layout:type:sized_array_type] -spacing_within = touch - -[sqlfluff:layout:type:struct_type] -spacing_within = touch:inline - -[sqlfluff:layout:type:bracketed_arguments] -spacing_before = touch:inline - -[sqlfluff:layout:type:typed_struct_literal] -spacing_within = touch - -[sqlfluff:layout:type:semi_structured_expression] -spacing_within = touch:inline -spacing_before = touch:inline - -[sqlfluff:layout:type:array_accessor] -spacing_before = touch:inline - -[sqlfluff:layout:type:colon] -spacing_before = touch - -[sqlfluff:layout:type:colon_delimiter] -spacing_before = touch -spacing_after = touch - -[sqlfluff:layout:type:path_segment] -spacing_within = touch - -[sqlfluff:layout:type:sql_conf_option] -spacing_within = touch - -[sqlfluff:layout:type:sqlcmd_operator] -# NOTE: This is the spacing between the operator and the colon -spacing_before = touch - -[sqlfluff:layout:type:comment] -spacing_before = any -spacing_after = any - -[sqlfluff:layout:type:inline_comment] -spacing_before = any -spacing_after = any - -[sqlfluff:layout:type:block_comment] -spacing_before = any -spacing_after = any - -[sqlfluff:layout:type:pattern_expression] -# Snowflake pattern expressions shouldn't have their spacing changed. -spacing_within = any - -[sqlfluff:layout:type:placeholder] -# Placeholders exist "outside" the rendered SQL syntax -# so we shouldn't enforce any particular spacing around -# them. -spacing_before = any -spacing_after = any - -[sqlfluff:layout:type:common_table_expression] -# The definition part of a CTE should fit on one line where possible. -# For users which regularly define column names in their CTEs they -# may which to relax this config to just `single`. -spacing_within = single:inline - -# By setting a selection of clauses to "alone", we hint to the reflow -# algorithm that in the case of a long single line statement, the -# first place to add newlines would be around these clauses. -# Setting this to "alone:strict" would always _force_ line breaks -# around them even if the line isn't too long. -[sqlfluff:layout:type:select_clause] -line_position = alone - -[sqlfluff:layout:type:where_clause] -line_position = alone - -[sqlfluff:layout:type:from_clause] -line_position = alone - -[sqlfluff:layout:type:join_clause] -line_position = alone - -[sqlfluff:layout:type:groupby_clause] -line_position = alone - -[sqlfluff:layout:type:orderby_clause] -# NOTE: Order by clauses appear in many places other than in a select -# clause. To avoid unexpected behaviour we use `leading` in this -# case rather than `alone`. -line_position = leading - -[sqlfluff:layout:type:having_clause] -line_position = alone - -[sqlfluff:layout:type:limit_clause] -line_position = alone - -# Template loop tokens shouldn't dictate spacing around them. -[sqlfluff:layout:type:template_loop] -spacing_before = any -spacing_after = any - -[sqlfluff:templater] -unwrap_wrapped_queries = True - -[sqlfluff:templater:jinja] -apply_dbt_builtins = True - -# Some rules can be configured directly from the config common to other rules -[sqlfluff:rules] -allow_scalar = True -single_table_references = consistent -unquoted_identifiers_policy = all +indented_joins = True +indented_ctes = True [sqlfluff:rules:capitalisation.keywords] -# Keywords -capitalisation_policy = consistent -# Comma separated list of words to ignore for this rule -ignore_words = None -ignore_words_regex = None - -[sqlfluff:rules:capitalisation.identifiers] -# Unquoted identifiers -extended_capitalisation_policy = consistent -# Comma separated list of words to ignore for this rule -ignore_words = None -ignore_words_regex = None - -[sqlfluff:rules:capitalisation.functions] -# Function names -extended_capitalisation_policy = consistent -# Comma separated list of words to ignore for this rule -ignore_words = None -ignore_words_regex = None - -[sqlfluff:rules:capitalisation.literals] -# Null & Boolean Literals -capitalisation_policy = consistent -# Comma separated list of words to ignore for this rule -ignore_words = None -ignore_words_regex = None +capitalisation_policy = upper [sqlfluff:rules:capitalisation.types] -# Data Types -extended_capitalisation_policy = consistent -# Comma separated list of words to ignore for this rule -ignore_words = None -ignore_words_regex = None - -[sqlfluff:rules:ambiguous.join] -# Fully qualify JOIN clause -fully_qualify_join_types = inner +extended_capitalisation_policy = upper [sqlfluff:rules:ambiguous.column_references] -# GROUP BY/ORDER BY column references -group_by_and_order_by_style = consistent - -[sqlfluff:rules:aliasing.table] -# Aliasing preference for tables -aliasing = explicit - -[sqlfluff:rules:aliasing.column] -# Aliasing preference for columns -aliasing = explicit - -[sqlfluff:rules:aliasing.length] -min_alias_length = None -max_alias_length = None - -[sqlfluff:rules:aliasing.forbid] -# Avoid table aliases in from clauses and join conditions. -# Disabled by default for all dialects unless explicitly enabled. -# We suggest instead using aliasing.length (AL06) in most cases. -force_enable = False - -[sqlfluff:rules:convention.select_trailing_comma] -# Trailing commas -select_clause_trailing_comma = forbid - -[sqlfluff:rules:convention.count_rows] -# Consistent syntax to count all rows -prefer_count_1 = False -prefer_count_0 = False - -[sqlfluff:rules:convention.terminator] -# Semi-colon formatting approach -multiline_newline = False -require_final_semicolon = False - -[sqlfluff:rules:convention.blocked_words] -# Comma separated list of blocked words that should not be used -blocked_words = None -blocked_regex = None -match_source = False - -[sqlfluff:rules:convention.quoted_literals] -# Consistent usage of preferred quotes for quoted literals -preferred_quoted_literal_style = consistent -# Disabled for dialects that do not support single and double quotes for quoted literals (e.g. Postgres) -force_enable = False +group_by_and_order_by_style = explicit [sqlfluff:rules:convention.casting_style] -# SQL type casting -preferred_type_casting_style = consistent +preferred_type_casting_style = cast [sqlfluff:rules:convention.not_equal] -# Consistent usage of preferred "not equal to" comparison -preferred_not_equal_style = consistent - -[sqlfluff:rules:references.from] -# References must be in FROM clause -# Disabled for some dialects (e.g. bigquery) -force_enable = False - -[sqlfluff:rules:references.qualification] -# Comma separated list of words to ignore for this rule -ignore_words = None -ignore_words_regex = None +preferred_not_equal_style = c_style [sqlfluff:rules:references.consistent] -# References must be consistently used -# Disabled for some dialects (e.g. bigquery) -force_enable = False - -[sqlfluff:rules:references.keywords] -# Keywords should not be used as identifiers. -unquoted_identifiers_policy = aliases -quoted_identifiers_policy = none -# Comma separated list of words to ignore for this rule -ignore_words = None -ignore_words_regex = None - -[sqlfluff:rules:references.special_chars] -# Special characters in identifiers -unquoted_identifiers_policy = all -quoted_identifiers_policy = all -allow_space_in_identifier = False -additional_allowed_characters = None -ignore_words = None -ignore_words_regex = None - -[sqlfluff:rules:references.quoting] -# Policy on quoted and unquoted identifiers -prefer_quoted_identifiers = False -prefer_quoted_keywords = False -ignore_words = None -ignore_words_regex = None -force_enable = False - -[sqlfluff:rules:layout.long_lines] -# Line length -ignore_comment_lines = False -ignore_comment_clauses = False +single_table_references = consistent [sqlfluff:rules:layout.select_targets] -wildcard_policy = single - -[sqlfluff:rules:layout.newlines] -# Consecutive blank lines -maximum_empty_lines_between_statements = 2 -maximum_empty_lines_inside_statements = 1 - -[sqlfluff:rules:structure.subquery] -# By default, allow subqueries in from clauses, but not join clauses -forbid_subquery_in = join - -[sqlfluff:rules:structure.join_condition_order] -preferred_first_table_in_join_clause = earlier +wildcard_policy = multiple diff --git a/config/sqruff/foo.sql b/config/sqruff/foo.sql new file mode 100644 index 00000000..4cccfd62 --- /dev/null +++ b/config/sqruff/foo.sql @@ -0,0 +1,6 @@ +SELECT + id, password +FROM + users +WHERE + username = $1 diff --git a/config/waybar/scripts/mediaplayer.py b/config/waybar/scripts/mediaplayer.py old mode 100755 new mode 100644 diff --git a/config/x11/opt-apps b/config/x11/opt-apps old mode 100644 new mode 100755 diff --git a/config/xdg-desktop-portal-termfilechooser/config b/config/xdg-desktop-portal-termfilechooser/config new file mode 100644 index 00000000..34ddb509 --- /dev/null +++ b/config/xdg-desktop-portal-termfilechooser/config @@ -0,0 +1,11 @@ +[filechooser] +cmd=yazi-wrapper.sh +default_dir=$HOME +; Uncomment to skip creating destination save files with instructions in them +; create_help_file=0 +; Uncomment and edit the line below to change the terminal emulator command +; env=TERMCMD=foot + +; Mode must be one of 'suggested', 'default', or 'last'. +open_mode=suggested +save_mode=suggested diff --git a/config/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh b/config/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh new file mode 100755 index 00000000..3fc95ddf --- /dev/null +++ b/config/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env sh +# This wrapper script is invoked by xdg-desktop-portal-termfilechooser. +# +# For more information about input/output arguments read `xdg-desktop-portal-termfilechooser(5)` + +set -e + +if [ "$6" -ge 4 ]; then + set -x +fi + +multiple="$1" +directory="$2" +save="$3" +path="$4" +out="$5" + +cmd="yazi" +termcmd="${TERMCMD:-kitty --title 'termfilechooser'}" + +if [ "$save" = "1" ]; then + # save a file + set -- --chooser-file="$out" "$path" +elif [ "$directory" = "1" ]; then + # upload files from a directory + set -- --chooser-file="$out" --cwd-file="$out"".1" "$path" +elif [ "$multiple" = "1" ]; then + # upload multiple files + set -- --chooser-file="$out" "$path" +else + # upload only 1 file + set -- --chooser-file="$out" "$path" +fi + +command="$termcmd $cmd" +for arg in "$@"; do + # escape double quotes + escaped=$(printf "%s" "$arg" | sed 's/"/\\"/g') + # escape special + case "$termcmd" in + *"ghostty"*) + command="$command \"\\\"$escaped\\\"\"" + ;; + *) + command="$command \"$escaped\"" + ;; + esac +done + +sh -c "$command" + +if [ "$directory" = "1" ]; then + if [ ! -s "$out" ] && [ -s "$out"".1" ]; then + cat "$out"".1" >"$out" + rm "$out"".1" + else + rm "$out"".1" + fi +fi diff --git a/config/yazi/plugins/vidir.yazi/LICENSE b/config/yazi/flavors/rose-pine-dawn.yazi/LICENSE similarity index 96% rename from config/yazi/plugins/vidir.yazi/LICENSE rename to config/yazi/flavors/rose-pine-dawn.yazi/LICENSE index 34034b42..78e74c8c 100644 --- a/config/yazi/plugins/vidir.yazi/LICENSE +++ b/config/yazi/flavors/rose-pine-dawn.yazi/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 Kristofers Solo +Copyright (c) 2025 Mintass Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/config/yazi/flavors/rose-pine-dawn.yazi/LICENSE-tmtheme b/config/yazi/flavors/rose-pine-dawn.yazi/LICENSE-tmtheme new file mode 100644 index 00000000..ef13b562 --- /dev/null +++ b/config/yazi/flavors/rose-pine-dawn.yazi/LICENSE-tmtheme @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Rosé Pine + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/config/yazi/flavors/rose-pine-dawn.yazi/README.md b/config/yazi/flavors/rose-pine-dawn.yazi/README.md new file mode 100644 index 00000000..6163fb57 --- /dev/null +++ b/config/yazi/flavors/rose-pine-dawn.yazi/README.md @@ -0,0 +1,36 @@ +
+ Yazi logo +
+ +

+ Rosé Pine Dawn Flavor for Yazi +

+ +## 👀 Preview + + + +## 🎨 Installation + +```sh +ya pkg add Mintass/rose-pine-dawn +``` + +## ⚙️ Usage + +To set it as your dark flavor, change the content of your `theme.toml` to: + +```toml +[flavor] +light = "rose-pine-dawn" +``` + +Make sure your `theme.toml` doesn't contain anything other than `[flavor]`, unless you want to override certain styles of this flavor. + +See the [Yazi flavor documentation](https://yazi-rs.github.io/docs/flavors/overview) for more details. + +## 📜 License + +The flavor is MIT-licensed, and the included tmTheme is also MIT-licensed. + +Check the [LICENSE](LICENSE) and [LICENSE-tmtheme](LICENSE-tmtheme) file for more details. diff --git a/config/yazi/flavors/rose-pine-dawn.yazi/flavor.toml b/config/yazi/flavors/rose-pine-dawn.yazi/flavor.toml new file mode 100644 index 00000000..cf641114 --- /dev/null +++ b/config/yazi/flavors/rose-pine-dawn.yazi/flavor.toml @@ -0,0 +1,230 @@ +# vim:fileencoding=utf-8:foldmethod=marker + +# : Manager {{{ + +[mgr] +cwd = { fg = "#56949f" } + +# Hovered +hovered = { reversed = true } +preview_hovered = { underline = true } + +# Find +find_keyword = { fg = "#ea9d34", bold = true, italic = true, underline = true } +find_position = { fg = "#907aa9", bg = "reset", bold = true, italic = true } + +# Symlink +symlink_target = { italic = true } + +# Marker +marker_copied = { fg = "#286983", bg = "#286983" } +marker_cut = { fg = "#b4637a", bg = "#b4637a" } +marker_marked = { fg = "#d7827e", bg = "#d7827e" } +marker_selected = { fg = "#ea9d34", bg = "#ea9d34" } + +# Count +count_copied = { fg = "#575279", bg = "#286983" } +count_cut = { fg = "#575279", bg = "#b4637a" } +count_selected = { fg = "#faf4ed", bg = "#ea9d34" } + +# Border +border_symbol = "│" +border_style = { fg = "#cecacd" } + +# Highlighting +syntect_theme = "" + +# : }}} + + +# : Tabs {{{ + +[tabs] +active = { fg = "#575279", bg = "#286983", bold = true } +inactive = { fg = "#286983", bg = "#575279" } + +# Separator +sep_inner = { open = "", close = "" } +sep_outer = { open = "", close = "" } + +# : }}} + + +# : Mode {{{ + +[mode] +normal_main = { fg = "#faf4ed", bg = "#56949f", bold = true } +normal_alt = { fg = "#faf4ed", bg = "#575279", bold = true } + +# Select mode +select_main = { fg = "#faf4ed", bg = "#b4637a", bold = true } +select_alt = { fg = "#faf4ed", bg = "#575279", bold = true } + +# Unset mode +unset_main = { fg = "#faf4ed", bg = "#b4637a", bold = true } +unset_alt = { fg = "#faf4ed", bg = "#575279", bold = true } + +# : }}} + + +# : Status bar {{{ + +[status] +overall = { bg = "#faf4ed" } +sep_left = { open = "", close = "" } +sep_right = { open = "", close = "" } + +# Permissions +perm_sep = { fg = "#9893a5" } +perm_type = { fg = "#907aa9" } +perm_read = { fg = "#ea9d34" } +perm_write = { fg = "#b4637a" } +perm_exec = { fg = "#56949f" } + +# Progress +progress_label = { fg = "#575279", bold = true } +progress_normal = { fg = "#286983", bg = "#f4ede8" } +progress_error = { fg = "#b4637a", bg = "#f4ede8" } + +# : }}} + + +# : Which {{{ + +[which] +cols = 3 +mask = { bg = "#fffaf3" } +cand = { fg = "#56949f" } +rest = { fg = "#9893a5" } +desc = { fg = "#ea9d34" } +separator = "  " +separator_style = { fg = "#9893a5" } + +# : }}} + + +# : Confirmation {{{ + +[confirm] +border = { fg = "#cecacd" } +title = { fg = "#b4637a", bold = true } +body = { fg = "#575279" } +list = { fg = "#575279" } +btn_yes = { fg = "#faf4ed", bg = "#286983", bold = true } +btn_no = { fg = "#faf4ed", bg = "#575279", bold = true } +btn_labels = [ " [y]es ", " (n)o " ] + +# : }}} + + +# : Spotter {{{ + +[spot] +border = { fg = "#cecacd" } +title = { fg = "#56949f", bold = true } + +# Table +tbl_col = { fg = "#56949f" } +tbl_cell = { fg = "#faf4ed", bg = "#ea9d34", bold = true } + +# : }}} + + +# : Notification {{{ + +[notify] +title_info = { fg = "#286983" } +title_warn = { fg = "#ea9d34" } +title_error = { fg = "#b4637a" } + + +# : }}} + + +# : Picker {{{ + +[pick] +border = { fg = "#286983" } +active = { fg = "#907aa9", bold = true } +inactive = { fg = "#797593"} + +# : }}} + + +# : Input {{{ + +[input] +border = { fg = "#286983" } +title = { bold = true } +value = { fg = "#575279"} +selected = { reversed = true } + +# : }}} + + +# : Completion {{{ + +[cmp] +border = { fg = "#286983" } +active = { bg = "#575279", fg = "#faf4ed", bold = true } +inactive = { fg = "#797593" } + + +# : }}} + + +# : Task manager {{{ + +[tasks] +border = { fg = "#286983" } +title = { bold = true} +hovered = { fg = "#907aa9", bold = true, reversed = true } + +# : }}} + + +# : Help menu {{{ + +[help] +on = { fg = "#56949f" } +run = { fg = "#907aa9" } +desc = { fg = "#ea9d34"} +hovered = { reversed = true, bold = true } +footer = { fg = "#faf4ed", bg = "#575279" } + +# : }}} + + +# : File-specific styles {{{ + +[filetype] +rules = [ + # Images + { mime = "image/*", fg = "#907aa9" }, + + # Media + { mime = "{audio,video}/*", fg = "#ea9d34" }, + + # Archives + { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "#b4637a" }, + + # Documents + { mime = "application/{pdf,doc,rtf}", fg = "#d7827e" }, + + # Empty files + # { mime = "inode/empty", fg = "#b4637a" }, + + # Special files + { name = "*", is = "orphan", fg = "#faf4ed", bg = "#b4637a" }, + { name = "*", is = "exec" , fg = "#56949f" }, + + # Dummy files + { name = "*", is = "dummy", fg = "#faf4ed", bg = "#b4637a" }, + { name = "*/", is = "dummy", fg = "#faf4ed", bg = "#b4637a" }, + + # Fallback + { name = "*", fg = "#575279" }, + { name = "*/", fg = "#286983" } +] + +# : }}} \ No newline at end of file diff --git a/config/yazi/flavors/rose-pine-dawn.yazi/preview.png b/config/yazi/flavors/rose-pine-dawn.yazi/preview.png new file mode 100644 index 00000000..e4ef7cbe Binary files /dev/null and b/config/yazi/flavors/rose-pine-dawn.yazi/preview.png differ diff --git a/config/yazi/flavors/rose-pine-dawn.yazi/tmtheme.xml b/config/yazi/flavors/rose-pine-dawn.yazi/tmtheme.xml new file mode 100644 index 00000000..4610ea59 --- /dev/null +++ b/config/yazi/flavors/rose-pine-dawn.yazi/tmtheme.xml @@ -0,0 +1,316 @@ + + + + + name + Rosé Pine Dawn + settings + + + settings + + background + #faf4ed + caret + #cecacd + foreground + #575279 + invisibles + #fffaf3 + lineHighlight + #f4ede8 + selection + #dfdad9 + + + + name + Comment + scope + comment + settings + + fontStyle + italic + foreground + #797593 + + + + name + String + scope + string, punctuation.definition.string + settings + + foreground + #ea9d34 + + + + name + Number + scope + constant.numeric + settings + + foreground + #ea9d34 + + + + name + Built-in constant + scope + constant.language + settings + + fontStyle + bold + foreground + #ea9d34 + + + + name + User-defined constant + scope + constant.character, constant.other + settings + + foreground + #ea9d34 + + + + name + Variable + scope + variable + settings + + fontStyle + italic + foreground + #575279 + + + + name + Keyword + scope + keyword + settings + + foreground + #286983 + + + + name + Storage + scope + storage + settings + + fontStyle + + foreground + #56949f + + + + name + Storage type + scope + storage.type + settings + + fontStyle + + foreground + #56949f + + + + name + Class name + scope + entity.name.class + settings + + fontStyle + bold + foreground + #286983 + + + + name + Inherited class + scope + entity.other.inherited-class + settings + + fontStyle + italic + foreground + #286983 + + + + name + Function name + scope + entity.name.function + settings + + fontStyle + italic + foreground + #d7827e + + + + name + Function argument + scope + variable.parameter + settings + + fontStyle + + foreground + #907aa9 + + + + name + Tag name + scope + entity.name.tag + settings + + fontStyle + bold + foreground + #286983 + + + + name + Tag attribute + scope + entity.other.attribute-name + settings + + fontStyle + + foreground + #907aa9 + + + + name + Library function + scope + support.function + settings + + fontStyle + bold + foreground + #d7827e + + + + name + Library constant + scope + support.constant + settings + + fontStyle + bold + foreground + #ea9d34 + + + + name + Library class/type + scope + support.type, support.class + settings + + fontStyle + bold + foreground + #56949f + + + + name + Library variable + scope + support.other.variable + settings + + fontStyle + bold + foreground + #b4637a + + + + name + Invalid + scope + invalid + settings + + background + #b4637a + fontStyle + + foreground + #575279 + + + + name + Invalid deprecated + scope + invalid.deprecated + settings + + background + #907aa9 + foreground + #575279 + + + + name + Punctuation, Operators + scope + punctuation, keyword.operator + settings + + foreground + #797593 + + + + colorSpaceName + sRGB + semanticClass + theme.light.rosé-pine-dawn + author + arrrgi + comment + All natural pine, faux fur and a bit of soho vibes for the classy minimalist + uuid + BB4B4616-E742-41D5-BB5B-63D45FA614F + + diff --git a/config/yazi/flavors/rose-pine-moon.yazi/LICENSE b/config/yazi/flavors/rose-pine-moon.yazi/LICENSE new file mode 100644 index 00000000..78e74c8c --- /dev/null +++ b/config/yazi/flavors/rose-pine-moon.yazi/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Mintass + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/config/yazi/flavors/rose-pine-moon.yazi/LICENSE-tmtheme b/config/yazi/flavors/rose-pine-moon.yazi/LICENSE-tmtheme new file mode 100644 index 00000000..ef13b562 --- /dev/null +++ b/config/yazi/flavors/rose-pine-moon.yazi/LICENSE-tmtheme @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Rosé Pine + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/config/yazi/flavors/rose-pine-moon.yazi/README.md b/config/yazi/flavors/rose-pine-moon.yazi/README.md new file mode 100644 index 00000000..b241c252 --- /dev/null +++ b/config/yazi/flavors/rose-pine-moon.yazi/README.md @@ -0,0 +1,36 @@ +
+ Yazi logo +
+ +

+ Rosé Pine Moon Flavor for Yazi +

+ +## 👀 Preview + + + +## 🎨 Installation + +```sh +ya pkg add Mintass/rose-pine-moon +``` + +## ⚙️ Usage + +To set it as your dark flavor, change the content of your `theme.toml` to: + +```toml +[flavor] +dark = "rose-pine-moon" +``` + +Make sure your `theme.toml` doesn't contain anything other than `[flavor]`, unless you want to override certain styles of this flavor. + +See the [Yazi flavor documentation](https://yazi-rs.github.io/docs/flavors/overview) for more details. + +## 📜 License + +The flavor is MIT-licensed, and the included tmTheme is also MIT-licensed. + +Check the [LICENSE](LICENSE) and [LICENSE-tmtheme](LICENSE-tmtheme) file for more details. diff --git a/config/yazi/flavors/rose-pine-moon.yazi/flavor.toml b/config/yazi/flavors/rose-pine-moon.yazi/flavor.toml new file mode 100644 index 00000000..905ae6fd --- /dev/null +++ b/config/yazi/flavors/rose-pine-moon.yazi/flavor.toml @@ -0,0 +1,230 @@ +# vim:fileencoding=utf-8:foldmethod=marker + +# : Manager {{{ + +[mgr] +cwd = { fg = "#9ccfd8" } + +# Hovered +hovered = { reversed = true } +preview_hovered = { underline = true } + +# Find +find_keyword = { fg = "#f6c177", bold = true, italic = true, underline = true } +find_position = { fg = "#c4a7e7", bg = "reset", bold = true, italic = true } + +# Symlink +symlink_target = { italic = true } + +# Marker +marker_copied = { fg = "#3e8fb0", bg = "#3e8fb0" } +marker_cut = { fg = "#eb6f92", bg = "#eb6f92" } +marker_marked = { fg = "#ea9a97", bg = "#ea9a97" } +marker_selected = { fg = "#f6c177", bg = "#f6c177" } + +# Count +count_copied = { fg = "#e0def4", bg = "#3e8fb0" } +count_cut = { fg = "#e0def4", bg = "#eb6f92" } +count_selected = { fg = "#232136", bg = "#f6c177" } + +# Border +border_symbol = "│" +border_style = { fg = "#56526e" } + +# Highlighting +syntect_theme = "" + +# : }}} + + +# : Tabs {{{ + +[tabs] +active = { fg = "#e0def4", bg = "#3e8fb0", bold = true } +inactive = { fg = "#3e8fb0", bg = "#e0def4" } + +# Separator +sep_inner = { open = "", close = "" } +sep_outer = { open = "", close = "" } + +# : }}} + + +# : Mode {{{ + +[mode] +normal_main = { fg = "#232136", bg = "#9ccfd8", bold = true } +normal_alt = { fg = "#232136", bg = "#e0def4", bold = true } + +# Select mode +select_main = { fg = "#232136", bg = "#eb6f92", bold = true } +select_alt = { fg = "#232136", bg = "#e0def4", bold = true } + +# Unset mode +unset_main = { fg = "#232136", bg = "#eb6f92", bold = true } +unset_alt = { fg = "#232136", bg = "#e0def4", bold = true } + +# : }}} + + +# : Status bar {{{ + +[status] +overall = { bg = "#232136" } +sep_left = { open = "", close = "" } +sep_right = { open = "", close = "" } + +# Permissions +perm_sep = { fg = "#6e6a86" } +perm_type = { fg = "#c4a7e7" } +perm_read = { fg = "#f6c177" } +perm_write = { fg = "#eb6f92" } +perm_exec = { fg = "#9ccfd8" } + +# Progress +progress_label = { fg = "#e0def4", bold = true } +progress_normal = { fg = "#3e8fb0", bg = "#2a283e" } +progress_error = { fg = "#eb6f92", bg = "#2a283e" } + +# : }}} + + +# : Which {{{ + +[which] +cols = 3 +mask = { bg = "#2a273f" } +cand = { fg = "#9ccfd8" } +rest = { fg = "#6e6a86" } +desc = { fg = "#f6c177" } +separator = "  " +separator_style = { fg = "#6e6a86" } + +# : }}} + + +# : Confirmation {{{ + +[confirm] +border = { fg = "#56526e" } +title = { fg = "#eb6f92", bold = true } +body = { fg = "#e0def4" } +list = { fg = "#e0def4" } +btn_yes = { fg = "#232136", bg = "#3e8fb0", bold = true } +btn_no = { fg = "#232136", bg = "#e0def4", bold = true } +btn_labels = [ " [y]es ", " (n)o " ] + +# : }}} + + +# : Spotter {{{ + +[spot] +border = { fg = "#56526e" } +title = { fg = "#9ccfd8", bold = true } + +# Table +tbl_col = { fg = "#9ccfd8" } +tbl_cell = { fg = "#232136", bg = "#f6c177", bold = true } + +# : }}} + + +# : Notification {{{ + +[notify] +title_info = { fg = "#3e8fb0" } +title_warn = { fg = "#f6c177" } +title_error = { fg = "#eb6f92" } + + +# : }}} + + +# : Picker {{{ + +[pick] +border = { fg = "#3e8fb0" } +active = { fg = "#c4a7e7", bold = true } +inactive = { fg = "#908caa"} + +# : }}} + + +# : Input {{{ + +[input] +border = { fg = "#3e8fb0" } +title = { bold = true } +value = { fg = "#e0def4"} +selected = { reversed = true } + +# : }}} + + +# : Completion {{{ + +[cmp] +border = { fg = "#3e8fb0" } +active = { bg = "#e0def4", fg = "#232136", bold = true } +inactive = { fg = "#908caa" } + + +# : }}} + + +# : Task manager {{{ + +[tasks] +border = { fg = "#3e8fb0" } +title = { bold = true} +hovered = { fg = "#c4a7e7", bold = true, reversed = true } + +# : }}} + + +# : Help menu {{{ + +[help] +on = { fg = "#9ccfd8" } +run = { fg = "#c4a7e7" } +desc = { fg = "#f6c177"} +hovered = { reversed = true, bold = true } +footer = { fg = "#232136", bg = "#e0def4" } + +# : }}} + + +# : File-specific styles {{{ + +[filetype] +rules = [ + # Images + { mime = "image/*", fg = "#c4a7e7" }, + + # Media + { mime = "{audio,video}/*", fg = "#f6c177" }, + + # Archives + { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", fg = "#eb6f92" }, + + # Documents + { mime = "application/{pdf,doc,rtf}", fg = "#ea9a97" }, + + # Empty files + # { mime = "inode/empty", fg = "#eb6f92" }, + + # Special files + { name = "*", is = "orphan", fg = "#232136", bg = "#eb6f92" }, + { name = "*", is = "exec" , fg = "#9ccfd8" }, + + # Dummy files + { name = "*", is = "dummy", fg = "#232136", bg = "#eb6f92" }, + { name = "*/", is = "dummy", fg = "#232136", bg = "#eb6f92" }, + + # Fallback + { name = "*", fg = "#e0def4" }, + { name = "*/", fg = "#3e8fb0" } +] + +# : }}} \ No newline at end of file diff --git a/config/yazi/flavors/rose-pine-moon.yazi/preview.png b/config/yazi/flavors/rose-pine-moon.yazi/preview.png new file mode 100644 index 00000000..9661964d Binary files /dev/null and b/config/yazi/flavors/rose-pine-moon.yazi/preview.png differ diff --git a/config/yazi/flavors/rose-pine-moon.yazi/tmtheme.xml b/config/yazi/flavors/rose-pine-moon.yazi/tmtheme.xml new file mode 100644 index 00000000..3e26d9ce --- /dev/null +++ b/config/yazi/flavors/rose-pine-moon.yazi/tmtheme.xml @@ -0,0 +1,316 @@ + + + + + name + Rosé Pine Moon + settings + + + settings + + background + #232136 + caret + #56526e + foreground + #e0def4 + invisibles + #2a273f + lineHighlight + #2a283e + selection + #6e6a86 + + + + name + Comment + scope + comment + settings + + fontStyle + italic + foreground + #908caa + + + + name + String + scope + string, punctuation.definition.string + settings + + foreground + #f6c177 + + + + name + Number + scope + constant.numeric + settings + + foreground + #f6c177 + + + + name + Built-in constant + scope + constant.language + settings + + fontStyle + bold + foreground + #f6c177 + + + + name + User-defined constant + scope + constant.character, constant.other + settings + + foreground + #f6c177 + + + + name + Variable + scope + variable + settings + + fontStyle + italic + foreground + #e0def4 + + + + name + Keyword + scope + keyword + settings + + foreground + #3e8fb0 + + + + name + Storage + scope + storage + settings + + fontStyle + + foreground + #9ccfd8 + + + + name + Storage type + scope + storage.type + settings + + fontStyle + + foreground + #9ccfd8 + + + + name + Class name + scope + entity.name.class + settings + + fontStyle + bold + foreground + #3e8fb0 + + + + name + Inherited class + scope + entity.other.inherited-class + settings + + fontStyle + italic + foreground + #3e8fb0 + + + + name + Function name + scope + entity.name.function + settings + + fontStyle + italic + foreground + #ea9a97 + + + + name + Function argument + scope + variable.parameter + settings + + fontStyle + + foreground + #c4a7e7 + + + + name + Tag name + scope + entity.name.tag + settings + + fontStyle + bold + foreground + #3e8fb0 + + + + name + Tag attribute + scope + entity.other.attribute-name + settings + + fontStyle + + foreground + #c4a7e7 + + + + name + Library function + scope + support.function + settings + + fontStyle + bold + foreground + #ea9a97 + + + + name + Library constant + scope + support.constant + settings + + fontStyle + bold + foreground + #f6c177 + + + + name + Library class/type + scope + support.type, support.class + settings + + fontStyle + bold + foreground + #9ccfd8 + + + + name + Library variable + scope + support.other.variable + settings + + fontStyle + bold + foreground + #eb6f92 + + + + name + Invalid + scope + invalid + settings + + background + #eb6f92 + fontStyle + + foreground + #e0def4 + + + + name + Invalid deprecated + scope + invalid.deprecated + settings + + background + #c4a7e7 + foreground + #e0def4 + + + + name + Punctuation, Operators + scope + punctuation, keyword.operator + settings + + foreground + #908caa + + + + colorSpaceName + sRGB + semanticClass + theme.dark.rosé-pine-moon + author + arrrgi + comment + All natural pine, faux fur and a bit of soho vibes for the classy minimalist + uuid + CC28B8FB-96BA-43EB-B71F-5AA3D3EBB0BB + + diff --git a/config/yazi/init.lua b/config/yazi/init.lua index 40412706..539fa879 100644 --- a/config/yazi/init.lua +++ b/config/yazi/init.lua @@ -20,52 +20,3 @@ require("augment-command"):setup({ wraparound_file_navigation = false, }) require("git"):setup() --- require("yatline"):setup({ --- show_background = false, --- section_separator = { open = "", close = "" }, --- part_separator = { open = "", close = "" }, --- inverse_separator = { open = "", close = "" }, --- --- header_line = { --- left = { --- section_a = { --- { type = "line", custom = false, name = "tabs", params = { "left" } }, --- }, --- section_b = {}, --- section_c = {}, --- }, --- right = { --- section_a = { --- { type = "string", custom = false, name = "date", params = { "%A, %d %B %Y" } }, --- }, --- section_b = { --- { type = "string", custom = false, name = "date", params = { "%X" } }, --- }, --- section_c = {}, --- }, --- }, --- --- status_line = { --- left = { --- section_a = {}, --- section_b = {}, --- section_c = { --- { type = "string", custom = false, name = "hovered_path" }, --- { type = "coloreds", custom = false, name = "task_states" }, --- }, --- }, --- right = { --- section_a = { --- { type = "string", custom = false, name = "cursor_position" }, --- { type = "string", custom = false, name = "cursor_percentage" }, --- }, --- section_b = { --- { type = "string", custom = false, name = "hovered_file_extension", params = { true } }, --- }, --- section_c = { --- { type = "coloreds", custom = false, name = "permissions" }, --- { type = "coloreds", custom = false, name = "count", params = "true" }, --- }, --- }, --- }, --- }) diff --git a/config/yazi/keymap.toml b/config/yazi/keymap.toml index 998e1ca1..ead536e8 100644 --- a/config/yazi/keymap.toml +++ b/config/yazi/keymap.toml @@ -155,8 +155,6 @@ prepend_keymap = [ {on = [ "y" ], run = [ 'shell -- echo "$@" | xclip -selection clipboard', "yank" ], desc = "Yank the selected files"}, {on = [ "y" ], run = [ 'shell -- for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list', "yank" ], desc = "Yank the selected files"}, {on = [ "b", "g" ], run = [ ''' shell 'setbg "$1"' --confirm ''' ], desc = "Set the background image"}, - # vidir - {on = "B", run = [ "escape --visual", "plugin --sync vidir" ], desc = "Bulk rename with vidir"}, # chmod {on = [ "c", "m" ], run = "plugin chmod", desc = "Chmod on selected files"}, # Archive diff --git a/config/yazi/package.toml b/config/yazi/package.toml index d0f03f0d..2ea860db 100644 --- a/config/yazi/package.toml +++ b/config/yazi/package.toml @@ -10,8 +10,8 @@ hash = "e02a788e5b8ae0fb47fd0193dda589cc" [[plugin.deps]] use = "hankertrix/augment-command" -rev = "edc1bcf" -hash = "d5874bfb59265c96e8d9d5ef53c9450" +rev = "120406f" +hash = "e83ccc99739cd500fb1b1014dc45824a" [[plugin.deps]] use = "kirasok/torrent-preview" @@ -30,32 +30,32 @@ hash = "62251f94eb67648d42cdfcfb8be0fad2" [[plugin.deps]] use = "yazi-rs/plugins:git" -rev = "b886025" +rev = "de53d90" hash = "63b6c222bf2103b3023389dde5e2ecfe" [[plugin.deps]] use = "yazi-rs/plugins:chmod" -rev = "b886025" +rev = "de53d90" hash = "1adc12c2b2b025411ab61eb8f0879574" [[plugin.deps]] use = "yazi-rs/plugins:full-border" -rev = "b886025" +rev = "de53d90" hash = "3996fc74044bc44144b323686f887e1" [[plugin.deps]] use = "yazi-rs/plugins:mount" -rev = "b886025" +rev = "de53d90" hash = "f10a14e823382d90fab5b3ee54cb38fe" [[plugin.deps]] use = "yazi-rs/plugins:smart-filter" -rev = "b886025" -hash = "a9d553bd19a3cd7f4eab3abaac5d67ff" +rev = "de53d90" +hash = "e56b7abf3c06e8ce496eadcca168c093" [[plugin.deps]] use = "yazi-rs/plugins:diff" -rev = "b886025" +rev = "de53d90" hash = "47865a70cade14a0b9b6bc6a54f16bdb" [[plugin.deps]] @@ -65,13 +65,13 @@ hash = "b4040931f0d2f9670ddb4923e55cd881" [[plugin.deps]] use = "macydnah/office" -rev = "4002d36" -hash = "9c68763dd4f2799f7cfee1e9c3e819a9" +rev = "33cc61a" +hash = "d7e31c616cc6c8a1f05fdff7c47dae98" [[plugin.deps]] use = "boydaihungst/mediainfo" -rev = "cc12f3f" -hash = "b92e44ad5004f1b45e5c3d717a60ed24" +rev = "0e2ae47" +hash = "6656f2869ae2274a0e1860876f15186f" [[plugin.deps]] use = "iynaix/time-travel" @@ -83,10 +83,17 @@ use = "imsi32/yatline" rev = "88bd1c5" hash = "981acbe9b758b1af3a8154c932bb936d" -[[plugin.deps]] -use = "kristoferssolo/vidir" -rev = "54ef22b" -hash = "e3fe41820f43c3511be9846cc7bdf638" +[[flavor.deps]] +use = "Mintass/rose-pine" +rev = "8343340" +hash = "e2336631865c0f90276dcbc553d532fc" -[flavor] -deps = [] +[[flavor.deps]] +use = "Mintass/rose-pine-moon" +rev = "aa2d937" +hash = "97cd4819252cb1a9d0f55daa14e481e" + +[[flavor.deps]] +use = "Mintass/rose-pine-dawn" +rev = "5c6d353" +hash = "d9d9463d5d43ced18e18986d05439ace" diff --git a/config/yazi/plugins/augment-command.yazi/README.md b/config/yazi/plugins/augment-command.yazi/README.md index 1fb81ab8..98b0a25d 100644 --- a/config/yazi/plugins/augment-command.yazi/README.md +++ b/config/yazi/plugins/augment-command.yazi/README.md @@ -32,6 +32,7 @@ plugin. - [Arrow (`arrow`)](#arrow-arrow) - [New commands](#new-commands) - [Parent arrow (`parent_arrow`)](#parent-arrow-parent_arrow) + - [First file (`first_file`)](#first-file-first_file) - [Archive (`archive`)](#archive-archive) - [Emit (`emit`)](#emit-emit) - [Editor (`editor`)](#editor-editor) @@ -995,6 +996,33 @@ in your `keymap.toml` file. wrapping around, even when `wraparound_file_navigation` is set to `true`. +### First file (`first_file`) + +- This command just moves the cursor to the first file + in the current directory, regardless of the current cursor position. +- It is useful for quickly getting to the first file + in the current directory when `sort_dir_first` is set to `true`, + which is the case by default. + + Video: + + [first-file-video] + +- It also works with smooth scrolling, so when `smooth_scrolling` + is set to `true`, the command will smoothly scroll the cursor + to the first file. + + Video: + + [smooth-first-file-video] + +- Alternatively, if you just want to get to a file + in the current directory, you can use the built-in `G` key bind + that calls `arrow bot` to get to the last item + in the current directory, which would be a file + if `sort_dir_first` is set to `true`, + which is the case by default. + ### Archive (`archive`) - The `archive` command adds the selected or hovered items @@ -1410,7 +1438,7 @@ and [my `yazi.toml` file][my-yazi-toml]. ## [Licence] -This plugin is licenced under the [GNU AGPL v3 licence][Licence]. +This plugin is licensed under the [GNU AGPL v3 licence][Licence]. You can view the full licence in the [`LICENSE`][Licence] file. @@ -1426,15 +1454,15 @@ You can view the full licence in the [`LICENSE`][Licence] file. [gnu-tar-link]: https://www.gnu.org/software/tar/ [apple-tar-link]: https://ss64.com/mac/tar.html [brew-link]: https://brew.sh/ -[yazi-yazi-toml-extract-openers]: https://github.com/sxyazi/yazi/blob/main/yazi-config/preset/yazi-default.toml#L51-L54 +[yazi-yazi-toml-extract-openers]: https://github.com/sxyazi/yazi/blob/main/yazi-config/preset/yazi-default.toml#L50-L53 [yazi-yazi-toml]: https://github.com/sxyazi/yazi/blob/main/yazi-config/preset/yazi-default.toml -[yazi-shell-variables]: https://yazi-rs.github.io/docs/configuration/keymap/#manager.shell -[thunderbird-tip]: https://yazi-rs.github.io/docs/tips#email-selected-files-using-thunderbird +[yazi-shell-variables]: https://yazi-rs.github.io/docs/configuration/keymap/#mgr.shell +[thunderbird-tip]: https://yazi-rs.github.io/docs/tips/#email-selected-files [input-configuration]: https://yazi-rs.github.io/docs/configuration/yazi#input [confirm-configuration]: https://yazi-rs.github.io/docs/configuration/yazi#confirm [yazi-keymap-toml]: https://github.com/sxyazi/yazi/blob/main/yazi-config/preset/keymap-default.toml -[my-keymap-toml]: https://github.com/hankertrix/Dotfiles/blob/main/.config/yazi/keymap.toml -[my-yazi-toml]: https://github.com/hankertrix/Dotfiles/blob/main/.config/yazi/yazi.toml +[my-keymap-toml]: https://github.com/hankertrix/Dotfiles/blob/main/tilde/dot_config/yazi/keymap.toml.tmpl +[my-yazi-toml]: https://github.com/hankertrix/Dotfiles/blob/main/tilde/dot_config/yazi/yazi.toml [Licence]: LICENSE @@ -1532,6 +1560,11 @@ You can view the full licence in the [`LICENSE`][Licence] file. [wraparound-parent-arrow-video]: https://github.com/user-attachments/assets/ce35b55f-98dc-485d-a5e4-005ebe3ea169 [smooth-wraparound-parent-arrow-video]: https://github.com/user-attachments/assets/5256f0c5-b96b-4f4c-ac1d-f4a3f087cc57 + + +[first-file-video]: https://github.com/user-attachments/assets/4b4a1e6d-b013-47b5-919f-90279977fd98 +[smooth-first-file-video]: https://github.com/user-attachments/assets/f4c9c191-fa9f-428e-87e2-9bf654e60f72 + [archive-must-have-hovered-item-video]: https://github.com/user-attachments/assets/a49929b3-3b0d-4a50-b5d6-9dae7c119e7e diff --git a/config/yazi/plugins/augment-command.yazi/main.lua b/config/yazi/plugins/augment-command.yazi/main.lua index b32654e9..e6bd729f 100644 --- a/config/yazi/plugins/augment-command.yazi/main.lua +++ b/config/yazi/plugins/augment-command.yazi/main.lua @@ -131,6 +131,7 @@ local Commands = { Emit = "emit", Editor = "editor", Pager = "pager", + FirstFile = "first_file", } -- The enum for which group of items to operate on @@ -4233,6 +4234,56 @@ local function handle_parent_arrow(args, config) ) end +-- Function to execute the first file command +---@type fun(): nil +local execute_first_file = ya.sync(function() + -- + + -- Get the current working directory + local current = cx.active.current + + -- Get the files in the current working directory + local files = current.files + + -- Initialise the index of the first file + local first_file_index = nil + + -- Iterate over the files + for index, file in ipairs(files) do + -- + + -- If the file isn't a directory, + if not file.cha.is_dir then + -- + + -- Set the first file index + first_file_index = index + + -- Break out of the loop + break + end + end + + -- Get the amount to move the cursor by. + -- + -- The cursor index needs to be increased by 1 + -- because the cursor index is 0-indexed + -- while Lua tables are 1-indexed. + local move_by = first_file_index - (current.cursor + 1) + + -- Emit the augmented arrow command + emit_augmented_command("arrow", { move_by }) +end) + +-- Function to handle the first file command +---@type CommandFunction +local function handle_first_file() + -- + + -- Call the function to execute the first file command + execute_first_file() +end + -- Function to check if an archive supports header encryption ---@param archive_path string The path to the archive ---@param wanted boolean Whether header encryption is wanted @@ -4666,6 +4717,7 @@ local function run_command_func(command, args, config) [Commands.Quit] = handle_quit, [Commands.Arrow] = handle_arrow, [Commands.ParentArrow] = handle_parent_arrow, + [Commands.FirstFile] = handle_first_file, [Commands.Archive] = handle_archive, [Commands.Emit] = handle_emit, [Commands.Editor] = handle_editor, diff --git a/config/yazi/plugins/mediainfo.yazi/README.md b/config/yazi/plugins/mediainfo.yazi/README.md index 4b3d83e6..952655f5 100644 --- a/config/yazi/plugins/mediainfo.yazi/README.md +++ b/config/yazi/plugins/mediainfo.yazi/README.md @@ -34,7 +34,7 @@ using `ffmpeg` if available and media metadata using `mediainfo`. ![subrip](assets/2025-02-15-16-51-11.png) - SVG+XML file doesn't have useful information, so it only show the image preview. -- There are more file extensions which are supported by mediainfo. Just add file's MIME type to `previewers`, `preloaders`. +- There are more file extensions which are supported by mediainfo. Just add file's MIME type to `prepend_previewers`, `prepend_preloaders`. Use `spotter` to determine File's MIME type. [Default is `` key](https://github.com/sxyazi/yazi/blob/1a6abae974370702c8865459344bf256de58359e/yazi-config/preset/keymap-default.toml#L59) ## Installation @@ -58,8 +58,10 @@ using `ffmpeg` if available and media metadata using `mediainfo`. ## Configuration: -> [!IMPORTANT] > `mediainfo` use video, image, svg, magick built-in plugins behind the scene to render preview image, song cover. -> So you can remove those 3 plugins from `preloaders` and `previewers` sections in `yazi.toml`. +> [!IMPORTANT] +> +> `mediainfo` use built-in video, image, svg, magick plugins behind the scene to render preview image, song cover. +> So you can remove those 4 plugins from `prepend_preloaders` and `prepend_previewers` sections in `yazi.toml`. If you have cache problem, run this cmd, and follow the tips: `yazi --clear-cache` @@ -67,25 +69,36 @@ Config folder for each OS: https://yazi-rs.github.io/docs/configuration/overview Create `.../yazi/yazi.toml` and add: +> [!IMPORTANT] +> +> For yazi nightly replace `name` with `url` + ```toml [plugin] prepend_preloaders = [ # Replace magick, image, video with mediainfo { mime = "{audio,video,image}/*", run = "mediainfo" }, { mime = "application/subrip", run = "mediainfo" }, - # Adobe Illustrator + # Adobe Illustrator, Adobe Photoshop is image/adobe.photoshop, already handled above { mime = "application/postscript", run = "mediainfo" }, ] prepend_previewers = [ # Replace magick, image, video with mediainfo { mime = "{audio,video,image}/*", run = "mediainfo"}, { mime = "application/subrip", run = "mediainfo" }, - # Adobe Illustrator + # Adobe Illustrator, Adobe Photoshop is image/adobe.photoshop, already handled above { mime = "application/postscript", run = "mediainfo" }, ] # There are more extensions which are supported by mediainfo. # Just add file's MIME type to `previewers`, `preloaders` above. # https://mediaarea.net/en/MediaInfo/Support/Formats + +# For a large file like Adobe Illustrator, Adobe Photoshop, etc +# you may need to increase the memory limit if no image is rendered. +# https://yazi-rs.github.io/docs/configuration/yazi#tasks +[tasks] + image_alloc = 1073741824 # = 1024*1024*1024 = 1024MB + ``` ## Custom theme diff --git a/config/yazi/plugins/mediainfo.yazi/main.lua b/config/yazi/plugins/mediainfo.yazi/main.lua index 8b5a595a..e4966360 100644 --- a/config/yazi/plugins/mediainfo.yazi/main.lua +++ b/config/yazi/plugins/mediainfo.yazi/main.lua @@ -165,7 +165,8 @@ function M:peek(job) or (is_video and job.skip >= 90) or ( (job.mime == "image/adobe.photoshop" or job.mime == "application/postscript") - and image_layer_count(job) < (1 + math.floor(math.max(0, job.skip / (get_state("units") or 0)))) + and image_layer_count(job) + < (1 + math.floor(math.max(0, get_state("units") and (job.skip / get_state("units")) or 0))) ) ) then diff --git a/config/yazi/plugins/office.yazi/README.md b/config/yazi/plugins/office.yazi/README.md index b6893cd5..c6fdf374 100644 --- a/config/yazi/plugins/office.yazi/README.md +++ b/config/yazi/plugins/office.yazi/README.md @@ -16,7 +16,7 @@ > > To install it with `ya` run: > ```sh -> ya pack -a macydnah/office +> ya pkg add macydnah/office > ``` > Or if you prefer a manual approach: diff --git a/config/yazi/plugins/smart-filter.yazi/main.lua b/config/yazi/plugins/smart-filter.yazi/main.lua index f8fd2d9d..146e265c 100644 --- a/config/yazi/plugins/smart-filter.yazi/main.lua +++ b/config/yazi/plugins/smart-filter.yazi/main.lua @@ -43,6 +43,7 @@ local function entry() elseif event == 1 then ya.emit("escape", { filter = true }) ya.emit(h.is_dir and "enter" or "open", { h.url }) + break end end end diff --git a/config/yazi/plugins/vidir.yazi/README.md b/config/yazi/plugins/vidir.yazi/README.md deleted file mode 100644 index e59778b1..00000000 --- a/config/yazi/plugins/vidir.yazi/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# vidir.yazi - -This plugin is a bulk-rename plugin using [vidir](https://linux.die.net/man/1/vidir). - -## Requirements - -- [yazi >= v25.2.7](https://github.com/sxyazi/yazi) -- [vidir](https://linux.die.net/man/1/vidir) (sometimes included in [moreutils](https://man.archlinux.org/listing/extra/moreutils/) package) - -## Installation - -```bash -ya pack -a kristoferssolo/vidir -``` - -## Usage - -Add this to your `~/.config/yazi/keymap.toml`: - -```toml -[[manager.prepend_keymap]] -on = "B" -run = [ "escape --visual", "plugin --sync vidir" ] -desc = "Bulk rename with vidir" -``` - -## License - -This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file. diff --git a/config/yazi/plugins/vidir.yazi/main.lua b/config/yazi/plugins/vidir.yazi/main.lua deleted file mode 100644 index 90ff69c9..00000000 --- a/config/yazi/plugins/vidir.yazi/main.lua +++ /dev/null @@ -1,9 +0,0 @@ ---- @sync entry ---- @since 25.2.7 - -return { - entry = function() - -- If no selection, use current directory (.) - ya.manager_emit("shell", { "vidir .", block = true, confirm = true }) - end, -} diff --git a/config/zsh/.zprofile-wayland b/config/zsh/.zprofile-wayland index bde3260c..c07aadea 100644 --- a/config/zsh/.zprofile-wayland +++ b/config/zsh/.zprofile-wayland @@ -5,5 +5,5 @@ export XDG_CURRENT_DESKTOP=Hyprland export XDG_SESSION_TYPE=wayland export XDG_SESSION_DESKTOP=Hyprland -[ "$(tty)" = "/dev/tty1" ] && ! pidof -s niri >/dev/null 2>&1 && niri --session -# [ "$(tty)" = "/dev/tty1" ] && ! pidof -s Hyprland >/dev/null 2>&1 && Hyprland +# [ "$(tty)" = "/dev/tty1" ] && ! pidof -s niri >/dev/null 2>&1 && niri --session +[ "$(tty)" = "/dev/tty1" ] && ! pidof -s Hyprland >/dev/null 2>&1 && Hyprland diff --git a/dotter b/dotter old mode 100644 new mode 100755 diff --git a/dotter.arm b/dotter.arm old mode 100644 new mode 100755 diff --git a/dotter.exe b/dotter.exe old mode 100644 new mode 100755 diff --git a/local/bin/ani-skip.bak b/local/bin/ani-skip.bak old mode 100755 new mode 100644 diff --git a/local/bin/get-spotify-id b/local/bin/get-spotify-id old mode 100755 new mode 100644 diff --git a/local/share/fonts/jetbrainsmono/AUTHORS.txt b/local/share/fonts/jetbrainsmono/AUTHORS.txt old mode 100755 new mode 100644