diff --git a/.rubocop.yml b/.rubocop.yml deleted file mode 100644 index 7c3585c..0000000 --- a/.rubocop.yml +++ /dev/null @@ -1,3952 +0,0 @@ -# Common configuration. - -AllCops: - RubyInterpreters: - - ruby - - macruby - - rake - - jruby - - rbx - # Include common Ruby source files. - Include: - - '**/*.rb' - - '**/*.arb' - - '**/*.axlsx' - - '**/*.builder' - - '**/*.fcgi' - - '**/*.gemfile' - - '**/*.gemspec' - - '**/*.god' - - '**/*.jb' - - '**/*.jbuilder' - - '**/*.mspec' - - '**/*.opal' - - '**/*.pluginspec' - - '**/*.podspec' - - '**/*.rabl' - - '**/*.rake' - - '**/*.rbuild' - - '**/*.rbw' - - '**/*.rbx' - - '**/*.ru' - - '**/*.ruby' - - '**/*.spec' - - '**/*.thor' - - '**/*.watchr' - - '**/.irbrc' - - '**/.pryrc' - - '**/buildfile' - - '**/Appraisals' - - '**/Berksfile' - - '**/Brewfile' - - '**/Buildfile' - - '**/Capfile' - - '**/Cheffile' - - '**/Dangerfile' - - '**/Deliverfile' - - '**/Fastfile' - - '**/*Fastfile' - - '**/Gemfile' - - '**/Guardfile' - - '**/Jarfile' - - '**/Mavenfile' - - '**/Podfile' - - '**/Puppetfile' - - '**/Rakefile' - - '**/Snapfile' - - '**/Thorfile' - - '**/Vagabondfile' - - '**/Vagrantfile' - Exclude: - - 'node_modules/**/*' - - 'tmp/**/*' - - 'vendor/**/*' - - '.git/**/*' - # Default formatter will be used if no `-f/--format` option is given. - DefaultFormatter: progress - # Cop names are displayed in offense messages by default. Change behavior - # by overriding DisplayCopNames, or by giving the `--no-display-cop-names` - # option. - DisplayCopNames: true - # Style guide URLs are not displayed in offense messages by default. Change - # behavior by overriding `DisplayStyleGuide`, or by giving the - # `-S/--display-style-guide` option. - DisplayStyleGuide: false - # When specifying style guide URLs, any paths and/or fragments will be - # evaluated relative to the base URL. - StyleGuideBaseURL: https://rubystyle.guide - # Extra details are not displayed in offense messages by default. Change - # behavior by overriding ExtraDetails, or by giving the - # `-E/--extra-details` option. - ExtraDetails: false - # Additional cops that do not reference a style guide rule may be enabled by - # default. Change behavior by overriding `StyleGuideCopsOnly`, or by giving - # the `--only-guide-cops` option. - StyleGuideCopsOnly: false - # All cops except the ones configured `Enabled: false` in this file are enabled by default. - # Change this behavior by overriding either `DisabledByDefault` or `EnabledByDefault`. - # When `DisabledByDefault` is `true`, all cops in the default configuration - # are disabled, and only cops in user configuration are enabled. This makes - # cops opt-in instead of opt-out. Note that when `DisabledByDefault` is `true`, - # cops in user configuration will be enabled even if they don't set the - # Enabled parameter. - # When `EnabledByDefault` is `true`, all cops, even those configured `Enabled: false` - # in this file are enabled by default. Cops can still be disabled in user configuration. - # Note that it is invalid to set both EnabledByDefault and DisabledByDefault - # to true in the same configuration. - EnabledByDefault: false - DisabledByDefault: false - # Enables the result cache if `true`. Can be overridden by the `--cache` command - # line option. - UseCache: true - # Threshold for how many files can be stored in the result cache before some - # of the files are automatically removed. - MaxFilesInCache: 20000 - # The cache will be stored in "rubocop_cache" under this directory. If - # CacheRootDirectory is ~ (nil), which it is by default, the root will be - # taken from the environment variable `$XDG_CACHE_HOME` if it is set, or if - # `$XDG_CACHE_HOME` is not set, it will be `$HOME/.cache/`. - CacheRootDirectory: ~ - # It is possible for a malicious user to know the location of RuboCop's cache - # directory by looking at CacheRootDirectory, and create a symlink in its - # place that could cause RuboCop to overwrite unintended files, or read - # malicious input. If you are certain that your cache location is secure from - # this kind of attack, and wish to use a symlinked cache location, set this - # value to "true". - AllowSymlinksInCacheRootDirectory: false - # What MRI version of the Ruby interpreter is the inspected code intended to - # run on? (If there is more than one, set this to the lowest version.) - # If a value is specified for TargetRubyVersion then it is used. Acceptable - # values are specificed as a float (i.e. 2.5); the teeny version of Ruby - # should not be included. If the project specifies a Ruby version in the - # .ruby-version file, Gemfile or gems.rb file, RuboCop will try to determine - # the desired version of Ruby by inspecting the .ruby-version file first, - # followed by the Gemfile.lock or gems.locked file. (Although the Ruby version - # is specified in the Gemfile or gems.rb file, RuboCop reads the final value - # from the lock file.) If the Ruby version is still unresolved, RuboCop will - # use the oldest officially supported Ruby version (currently Ruby 2.3). - TargetRubyVersion: ~ - -#################### Bundler ############################### - -Bundler/DuplicatedGem: - Description: 'Checks for duplicate gem entries in Gemfile.' - Enabled: true - VersionAdded: '0.46' - Include: - - '**/*.gemfile' - - '**/Gemfile' - - '**/gems.rb' - -Bundler/GemComment: - Description: 'Add a comment describing each gem.' - Enabled: false - VersionAdded: '0.59' - VersionChanged: '0.77' - Include: - - '**/*.gemfile' - - '**/Gemfile' - - '**/gems.rb' - IgnoredGems: [] - -Bundler/InsecureProtocolSource: - Description: >- - The source `:gemcutter`, `:rubygems` and `:rubyforge` are deprecated - because HTTP requests are insecure. Please change your source to - 'https://rubygems.org' if possible, or 'http://rubygems.org' if not. - Enabled: true - VersionAdded: '0.50' - Include: - - '**/*.gemfile' - - '**/Gemfile' - - '**/gems.rb' - -Bundler/OrderedGems: - Description: >- - Gems within groups in the Gemfile should be alphabetically sorted. - Enabled: true - VersionAdded: '0.46' - VersionChanged: '0.47' - TreatCommentsAsGroupSeparators: true - Include: - - '**/*.gemfile' - - '**/Gemfile' - - '**/gems.rb' - -#################### Gemspec ############################### - -Gemspec/DuplicatedAssignment: - Description: 'An attribute assignment method calls should be listed only once in a gemspec.' - Enabled: true - VersionAdded: '0.52' - Include: - - '**/*.gemspec' - -Gemspec/OrderedDependencies: - Description: >- - Dependencies in the gemspec should be alphabetically sorted. - Enabled: true - VersionAdded: '0.51' - TreatCommentsAsGroupSeparators: true - Include: - - '**/*.gemspec' - -Gemspec/RequiredRubyVersion: - Description: 'Checks that `required_ruby_version` of gemspec and `TargetRubyVersion` of .rubocop.yml are equal.' - Enabled: true - VersionAdded: '0.52' - Include: - - '**/*.gemspec' - -Gemspec/RubyVersionGlobalsUsage: - Description: Checks usage of RUBY_VERSION in gemspec. - Enabled: true - VersionAdded: '0.72' - Include: - - '**/*.gemspec' - -#################### Layout ########################### - -Layout/AccessModifierIndentation: - Description: Check indentation of private/protected visibility modifiers. - StyleGuide: '#indent-public-private-protected' - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: indent - SupportedStyles: - - outdent - - indent - # By default, the indentation width from Layout/IndentationWidth is used - # But it can be overridden by setting this parameter - IndentationWidth: ~ - -Layout/ArgumentAlignment: - Description: >- - Align the arguments of a method call if they span more - than one line. - StyleGuide: '#no-double-indent' - Enabled: true - VersionAdded: '0.68' - VersionChanged: '0.77' - # Alignment of arguments in multi-line method calls. - # - # The `with_first_argument` style aligns the following lines along the same - # column as the first parameter. - # - # method_call(a, - # b) - # - # The `with_fixed_indentation` style aligns the following lines with one - # level of indentation relative to the start of the line with the method call. - # - # method_call(a, - # b) - EnforcedStyle: with_first_argument - SupportedStyles: - - with_first_argument - - with_fixed_indentation - # By default, the indentation width from Layout/IndentationWidth is used - # But it can be overridden by setting this parameter - IndentationWidth: ~ - -Layout/ArrayAlignment: - Description: >- - Align the elements of an array literal if they span more than - one line. - StyleGuide: '#align-multiline-arrays' - Enabled: true - VersionAdded: '0.49' - VersionChanged: '0.77' - -Layout/AssignmentIndentation: - Description: >- - Checks the indentation of the first line of the - right-hand-side of a multi-line assignment. - Enabled: true - VersionAdded: '0.49' - VersionChanged: '0.77' - # By default, the indentation width from `Layout/IndentationWidth` is used - # But it can be overridden by setting this parameter - IndentationWidth: ~ - -Layout/BlockAlignment: - Description: 'Align block ends correctly.' - Enabled: true - VersionAdded: '0.53' - # The value `start_of_block` means that the `end` should be aligned with line - # where the `do` keyword appears. - # The value `start_of_line` means it should be aligned with the whole - # expression's starting line. - # The value `either` means both are allowed. - EnforcedStyleAlignWith: either - SupportedStylesAlignWith: - - either - - start_of_block - - start_of_line - -Layout/BlockEndNewline: - Description: 'Put end statement of multiline block on its own line.' - Enabled: true - VersionAdded: '0.49' - -Layout/CaseIndentation: - Description: 'Indentation of when in a case/when/[else/]end.' - StyleGuide: '#indent-when-to-case' - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: case - SupportedStyles: - - case - - end - IndentOneStep: false - # By default, the indentation width from `Layout/IndentationWidth` is used. - # But it can be overridden by setting this parameter. - # This only matters if `IndentOneStep` is `true` - IndentationWidth: ~ - -Layout/ClassStructure: - Description: 'Enforces a configured order of definitions within a class body.' - StyleGuide: '#consistent-classes' - Enabled: false - VersionAdded: '0.52' - Categories: - module_inclusion: - - include - - prepend - - extend - ExpectedOrder: - - module_inclusion - - constants - - public_class_methods - - initializer - - public_methods - - protected_methods - - private_methods - -Layout/ClosingHeredocIndentation: - Description: 'Checks the indentation of here document closings.' - Enabled: true - VersionAdded: '0.57' - -Layout/ClosingParenthesisIndentation: - Description: 'Checks the indentation of hanging closing parentheses.' - Enabled: true - VersionAdded: '0.49' - -Layout/CommentIndentation: - Description: 'Indentation of comments.' - Enabled: true - VersionAdded: '0.49' - -Layout/ConditionPosition: - Description: >- - Checks for condition placed in a confusing position relative to - the keyword. - StyleGuide: '#same-line-condition' - Enabled: true - VersionAdded: '0.53' - -Layout/DefEndAlignment: - Description: 'Align ends corresponding to defs correctly.' - Enabled: true - VersionAdded: '0.53' - # The value `def` means that `end` should be aligned with the def keyword. - # The value `start_of_line` means that `end` should be aligned with method - # calls like `private`, `public`, etc, if present in front of the `def` - # keyword on the same line. - EnforcedStyleAlignWith: start_of_line - SupportedStylesAlignWith: - - start_of_line - - def - AutoCorrect: false - Severity: warning - -Layout/DotPosition: - Description: 'Checks the position of the dot in multi-line method calls.' - StyleGuide: '#consistent-multi-line-chains' - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: leading - SupportedStyles: - - leading - - trailing - -Layout/ElseAlignment: - Description: 'Align elses and elsifs correctly.' - Enabled: true - VersionAdded: '0.49' - -Layout/EmptyComment: - Description: 'Checks empty comment.' - Enabled: true - VersionAdded: '0.53' - AllowBorderComment: true - AllowMarginComment: true - -Layout/EmptyLineAfterGuardClause: - Description: 'Add empty line after guard clause.' - Enabled: true - VersionAdded: '0.56' - VersionChanged: '0.59' - -Layout/EmptyLineAfterMagicComment: - Description: 'Add an empty line after magic comments to separate them from code.' - StyleGuide: '#separate-magic-comments-from-code' - Enabled: true - VersionAdded: '0.49' - -Layout/EmptyLineBetweenDefs: - Description: 'Use empty lines between defs.' - StyleGuide: '#empty-lines-between-methods' - Enabled: true - VersionAdded: '0.49' - # If `true`, this parameter means that single line method definitions don't - # need an empty line between them. - AllowAdjacentOneLineDefs: false - # Can be array to specify minimum and maximum number of empty lines, e.g. [1, 2] - NumberOfEmptyLines: 1 - -Layout/EmptyLines: - Description: "Don't use several empty lines in a row." - StyleGuide: '#two-or-more-empty-lines' - Enabled: true - VersionAdded: '0.49' - -Layout/EmptyLinesAroundAccessModifier: - Description: "Keep blank lines around access modifiers." - StyleGuide: '#empty-lines-around-access-modifier' - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: around - SupportedStyles: - - around - - only_before - Reference: - # A reference to `EnforcedStyle: only_before`. - - https://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html#follow-the-coding-conventions - -Layout/EmptyLinesAroundArguments: - Description: "Keeps track of empty lines around method arguments." - Enabled: true - VersionAdded: '0.52' - -Layout/EmptyLinesAroundBeginBody: - Description: "Keeps track of empty lines around begin-end bodies." - StyleGuide: '#empty-lines-around-bodies' - Enabled: true - VersionAdded: '0.49' - -Layout/EmptyLinesAroundBlockBody: - Description: "Keeps track of empty lines around block bodies." - StyleGuide: '#empty-lines-around-bodies' - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: no_empty_lines - SupportedStyles: - - empty_lines - - no_empty_lines - -Layout/EmptyLinesAroundClassBody: - Description: "Keeps track of empty lines around class bodies." - StyleGuide: '#empty-lines-around-bodies' - Enabled: true - VersionAdded: '0.49' - VersionChanged: '0.53' - EnforcedStyle: no_empty_lines - SupportedStyles: - - empty_lines - - empty_lines_except_namespace - - empty_lines_special - - no_empty_lines - - beginning_only - - ending_only - -Layout/EmptyLinesAroundExceptionHandlingKeywords: - Description: "Keeps track of empty lines around exception handling keywords." - StyleGuide: '#empty-lines-around-bodies' - Enabled: true - VersionAdded: '0.49' - -Layout/EmptyLinesAroundMethodBody: - Description: "Keeps track of empty lines around method bodies." - StyleGuide: '#empty-lines-around-bodies' - Enabled: true - VersionAdded: '0.49' - -Layout/EmptyLinesAroundModuleBody: - Description: "Keeps track of empty lines around module bodies." - StyleGuide: '#empty-lines-around-bodies' - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: no_empty_lines - SupportedStyles: - - empty_lines - - empty_lines_except_namespace - - empty_lines_special - - no_empty_lines - -Layout/EndAlignment: - Description: 'Align ends correctly.' - Enabled: true - VersionAdded: '0.53' - # The value `keyword` means that `end` should be aligned with the matching - # keyword (`if`, `while`, etc.). - # The value `variable` means that in assignments, `end` should be aligned - # with the start of the variable on the left hand side of `=`. In all other - # situations, `end` should still be aligned with the keyword. - # The value `start_of_line` means that `end` should be aligned with the start - # of the line which the matching keyword appears on. - EnforcedStyleAlignWith: keyword - SupportedStylesAlignWith: - - keyword - - variable - - start_of_line - AutoCorrect: false - Severity: warning - -Layout/EndOfLine: - Description: 'Use Unix-style line endings.' - StyleGuide: '#crlf' - Enabled: true - VersionAdded: '0.49' - # The `native` style means that CR+LF (Carriage Return + Line Feed) is - # enforced on Windows, and LF is enforced on other platforms. The other styles - # mean LF and CR+LF, respectively. - EnforcedStyle: native - SupportedStyles: - - native - - lf - - crlf - -Layout/ExtraSpacing: - Description: 'Do not use unnecessary spacing.' - Enabled: true - VersionAdded: '0.49' - # When true, allows most uses of extra spacing if the intent is to align - # things with the previous or next line, not counting empty lines or comment - # lines. - AllowForAlignment: true - # When true, allows things like 'obj.meth(arg) # comment', - # rather than insisting on 'obj.meth(arg) # comment'. - # If done for alignment, either this OR AllowForAlignment will allow it. - AllowBeforeTrailingComments: false - # When true, forces the alignment of `=` in assignments on consecutive lines. - ForceEqualSignAlignment: false - -Layout/FirstArgumentIndentation: - Description: 'Checks the indentation of the first argument in a method call.' - Enabled: true - VersionAdded: '0.68' - VersionChanged: '0.77' - EnforcedStyle: special_for_inner_method_call_in_parentheses - SupportedStyles: - # The first parameter should always be indented one step more than the - # preceding line. - - consistent - # The first parameter should always be indented one level relative to the - # parent that is receiving the parameter - - consistent_relative_to_receiver - # The first parameter should normally be indented one step more than the - # preceding line, but if it's a parameter for a method call that is itself - # a parameter in a method call, then the inner parameter should be indented - # relative to the inner method. - - special_for_inner_method_call - # Same as `special_for_inner_method_call` except that the special rule only - # applies if the outer method call encloses its arguments in parentheses. - - special_for_inner_method_call_in_parentheses - # By default, the indentation width from `Layout/IndentationWidth` is used - # But it can be overridden by setting this parameter - IndentationWidth: ~ - -Layout/FirstArrayElementIndentation: - Description: >- - Checks the indentation of the first element in an array - literal. - Enabled: true - VersionAdded: '0.68' - VersionChanged: '0.77' - # The value `special_inside_parentheses` means that array literals with - # brackets that have their opening bracket on the same line as a surrounding - # opening round parenthesis, shall have their first element indented relative - # to the first position inside the parenthesis. - # - # The value `consistent` means that the indentation of the first element shall - # always be relative to the first position of the line where the opening - # bracket is. - # - # The value `align_brackets` means that the indentation of the first element - # shall always be relative to the position of the opening bracket. - EnforcedStyle: special_inside_parentheses - SupportedStyles: - - special_inside_parentheses - - consistent - - align_brackets - # By default, the indentation width from `Layout/IndentationWidth` is used - # But it can be overridden by setting this parameter - IndentationWidth: ~ - -Layout/FirstArrayElementLineBreak: - Description: >- - Checks for a line break before the first element in a - multi-line array. - Enabled: false - VersionAdded: '0.49' - -Layout/FirstHashElementIndentation: - Description: 'Checks the indentation of the first key in a hash literal.' - Enabled: true - VersionAdded: '0.68' - VersionChanged: '0.77' - # The value `special_inside_parentheses` means that hash literals with braces - # that have their opening brace on the same line as a surrounding opening - # round parenthesis, shall have their first key indented relative to the - # first position inside the parenthesis. - # - # The value `consistent` means that the indentation of the first key shall - # always be relative to the first position of the line where the opening - # brace is. - # - # The value `align_braces` means that the indentation of the first key shall - # always be relative to the position of the opening brace. - EnforcedStyle: special_inside_parentheses - SupportedStyles: - - special_inside_parentheses - - consistent - - align_braces - # By default, the indentation width from `Layout/IndentationWidth` is used - # But it can be overridden by setting this parameter - IndentationWidth: ~ - -Layout/FirstHashElementLineBreak: - Description: >- - Checks for a line break before the first element in a - multi-line hash. - Enabled: false - VersionAdded: '0.49' - -Layout/FirstMethodArgumentLineBreak: - Description: >- - Checks for a line break before the first argument in a - multi-line method call. - Enabled: false - VersionAdded: '0.49' - -Layout/FirstMethodParameterLineBreak: - Description: >- - Checks for a line break before the first parameter in a - multi-line method parameter definition. - Enabled: false - VersionAdded: '0.49' - -Layout/FirstParameterIndentation: - Description: >- - Checks the indentation of the first parameter in a - method definition. - Enabled: true - VersionAdded: '0.49' - VersionChanged: '0.77' - EnforcedStyle: consistent - SupportedStyles: - - consistent - - align_parentheses - # By default, the indentation width from `Layout/IndentationWidth` is used - # But it can be overridden by setting this parameter - IndentationWidth: ~ - -Layout/HashAlignment: - Description: >- - Align the elements of a hash literal if they span more than - one line. - Enabled: true - AllowMultipleStyles: true - VersionAdded: '0.49' - VersionChanged: '0.77' - # Alignment of entries using hash rocket as separator. Valid values are: - # - # key - left alignment of keys - # 'a' => 2 - # 'bb' => 3 - # separator - alignment of hash rockets, keys are right aligned - # 'a' => 2 - # 'bb' => 3 - # table - left alignment of keys, hash rockets, and values - # 'a' => 2 - # 'bb' => 3 - EnforcedHashRocketStyle: key - SupportedHashRocketStyles: - - key - - separator - - table - # Alignment of entries using colon as separator. Valid values are: - # - # key - left alignment of keys - # a: 0 - # bb: 1 - # separator - alignment of colons, keys are right aligned - # a: 0 - # bb: 1 - # table - left alignment of keys and values - # a: 0 - # bb: 1 - EnforcedColonStyle: key - SupportedColonStyles: - - key - - separator - - table - # Select whether hashes that are the last argument in a method call should be - # inspected? Valid values are: - # - # always_inspect - Inspect both implicit and explicit hashes. - # Registers an offense for: - # function(a: 1, - # b: 2) - # Registers an offense for: - # function({a: 1, - # b: 2}) - # always_ignore - Ignore both implicit and explicit hashes. - # Accepts: - # function(a: 1, - # b: 2) - # Accepts: - # function({a: 1, - # b: 2}) - # ignore_implicit - Ignore only implicit hashes. - # Accepts: - # function(a: 1, - # b: 2) - # Registers an offense for: - # function({a: 1, - # b: 2}) - # ignore_explicit - Ignore only explicit hashes. - # Accepts: - # function({a: 1, - # b: 2}) - # Registers an offense for: - # function(a: 1, - # b: 2) - EnforcedLastArgumentHashStyle: always_inspect - SupportedLastArgumentHashStyles: - - always_inspect - - always_ignore - - ignore_implicit - - ignore_explicit - -Layout/HeredocArgumentClosingParenthesis: - Description: >- - Checks for the placement of the closing parenthesis in a - method call that passes a HEREDOC string as an argument. - Enabled: false - StyleGuide: '#heredoc-argument-closing-parentheses' - VersionAdded: '0.68' - -Layout/HeredocIndentation: - Description: 'This cop checks the indentation of the here document bodies.' - StyleGuide: '#squiggly-heredocs' - Enabled: true - VersionAdded: '0.49' - VersionChanged: '0.77' - EnforcedStyle: squiggly - SupportedStyles: - - squiggly - - active_support - - powerpack - - unindent - -Layout/IndentationConsistency: - Description: 'Keep indentation straight.' - StyleGuide: '#spaces-indentation' - Enabled: true - VersionAdded: '0.49' - # The difference between `indented` and `normal` is that the `indented_internal_methods` - # style prescribes that in classes and modules the `protected` and `private` - # modifier keywords shall be indented the same as public methods and that - # protected and private members shall be indented one step more than the - # modifiers. Other than that, both styles mean that entities on the same - # logical depth shall have the same indentation. - EnforcedStyle: normal - SupportedStyles: - - normal - - indented_internal_methods - Reference: - # A reference to `EnforcedStyle: indented_internal_methods`. - - https://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html#follow-the-coding-conventions - -Layout/IndentationWidth: - Description: 'Use 2 spaces for indentation.' - StyleGuide: '#spaces-indentation' - Enabled: true - VersionAdded: '0.49' - # Number of spaces for each indentation level. - Width: 2 - IgnoredPatterns: [] - -Layout/InitialIndentation: - Description: >- - Checks the indentation of the first non-blank non-comment line in a file. - Enabled: true - VersionAdded: '0.49' - -Layout/LeadingCommentSpace: - Description: 'Comments should start with a space.' - StyleGuide: '#hash-space' - Enabled: true - VersionAdded: '0.49' - VersionChanged: '0.73' - AllowDoxygenCommentStyle: false - -Layout/LeadingEmptyLines: - Description: Check for unnecessary blank lines at the beginning of a file. - Enabled: true - VersionAdded: '0.57' - VersionChanged: '0.77' - -Layout/LineLength: - Description: 'Limit lines to 80 characters.' - StyleGuide: '#80-character-limits' - Enabled: true - VersionAdded: '0.25' - VersionChanged: '0.78' - AutoCorrect: false - Max: 80 - # To make it possible to copy or click on URIs in the code, we allow lines - # containing a URI to be longer than Max. - AllowHeredoc: true - AllowURI: true - URISchemes: - - http - - https - # The IgnoreCopDirectives option causes the LineLength rule to ignore cop - # directives like '# rubocop: enable ...' when calculating a line's length. - IgnoreCopDirectives: true - # The IgnoredPatterns option is a list of !ruby/regexp and/or string - # elements. Strings will be converted to Regexp objects. A line that matches - # any regular expression listed in this option will be ignored by LineLength. - IgnoredPatterns: [] - -Layout/MultilineArrayBraceLayout: - Description: >- - Checks that the closing brace in an array literal is - either on the same line as the last array element, or - a new line. - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: symmetrical - SupportedStyles: - # symmetrical: closing brace is positioned in same way as opening brace - # new_line: closing brace is always on a new line - # same_line: closing brace is always on the same line as last element - - symmetrical - - new_line - - same_line - -Layout/MultilineArrayLineBreaks: - Description: >- - Checks that each item in a multi-line array literal - starts on a separate line. - Enabled: false - VersionAdded: '0.67' - -Layout/MultilineAssignmentLayout: - Description: 'Check for a newline after the assignment operator in multi-line assignments.' - StyleGuide: '#indent-conditional-assignment' - Enabled: false - VersionAdded: '0.49' - # The types of assignments which are subject to this rule. - SupportedTypes: - - block - - case - - class - - if - - kwbegin - - module - EnforcedStyle: new_line - SupportedStyles: - # Ensures that the assignment operator and the rhs are on the same line for - # the set of supported types. - - same_line - # Ensures that the assignment operator and the rhs are on separate lines - # for the set of supported types. - - new_line - -Layout/MultilineBlockLayout: - Description: 'Ensures newlines after multiline block do statements.' - Enabled: true - VersionAdded: '0.49' - -Layout/MultilineHashBraceLayout: - Description: >- - Checks that the closing brace in a hash literal is - either on the same line as the last hash element, or - a new line. - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: symmetrical - SupportedStyles: - # symmetrical: closing brace is positioned in same way as opening brace - # new_line: closing brace is always on a new line - # same_line: closing brace is always on same line as last element - - symmetrical - - new_line - - same_line - -Layout/MultilineHashKeyLineBreaks: - Description: >- - Checks that each item in a multi-line hash literal - starts on a separate line. - Enabled: false - VersionAdded: '0.67' - -Layout/MultilineMethodArgumentLineBreaks: - Description: >- - Checks that each argument in a multi-line method call - starts on a separate line. - Enabled: false - VersionAdded: '0.67' - -Layout/MultilineMethodCallBraceLayout: - Description: >- - Checks that the closing brace in a method call is - either on the same line as the last method argument, or - a new line. - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: symmetrical - SupportedStyles: - # symmetrical: closing brace is positioned in same way as opening brace - # new_line: closing brace is always on a new line - # same_line: closing brace is always on the same line as last argument - - symmetrical - - new_line - - same_line - -Layout/MultilineMethodCallIndentation: - Description: >- - Checks indentation of method calls with the dot operator - that span more than one line. - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: aligned - SupportedStyles: - - aligned - - indented - - indented_relative_to_receiver - # By default, the indentation width from Layout/IndentationWidth is used - # But it can be overridden by setting this parameter - IndentationWidth: ~ - -Layout/MultilineMethodDefinitionBraceLayout: - Description: >- - Checks that the closing brace in a method definition is - either on the same line as the last method parameter, or - a new line. - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: symmetrical - SupportedStyles: - # symmetrical: closing brace is positioned in same way as opening brace - # new_line: closing brace is always on a new line - # same_line: closing brace is always on the same line as last parameter - - symmetrical - - new_line - - same_line - -Layout/MultilineOperationIndentation: - Description: >- - Checks indentation of binary operations that span more than - one line. - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: aligned - SupportedStyles: - - aligned - - indented - # By default, the indentation width from `Layout/IndentationWidth` is used - # But it can be overridden by setting this parameter - IndentationWidth: ~ - -Layout/ParameterAlignment: - Description: >- - Align the parameters of a method definition if they span more - than one line. - StyleGuide: '#no-double-indent' - Enabled: true - VersionAdded: '0.49' - VersionChanged: '0.77' - # Alignment of parameters in multi-line method calls. - # - # The `with_first_parameter` style aligns the following lines along the same - # column as the first parameter. - # - # def method_foo(a, - # b) - # - # The `with_fixed_indentation` style aligns the following lines with one - # level of indentation relative to the start of the line with the method call. - # - # def method_foo(a, - # b) - EnforcedStyle: with_first_parameter - SupportedStyles: - - with_first_parameter - - with_fixed_indentation - # By default, the indentation width from Layout/IndentationWidth is used - # But it can be overridden by setting this parameter - IndentationWidth: ~ - -Layout/RescueEnsureAlignment: - Description: 'Align rescues and ensures correctly.' - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceAfterColon: - Description: 'Use spaces after colons.' - StyleGuide: '#spaces-operators' - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceAfterComma: - Description: 'Use spaces after commas.' - StyleGuide: '#spaces-operators' - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceAfterMethodName: - Description: >- - Do not put a space between a method name and the opening - parenthesis in a method definition. - StyleGuide: '#parens-no-spaces' - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceAfterNot: - Description: Tracks redundant space after the ! operator. - StyleGuide: '#no-space-bang' - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceAfterSemicolon: - Description: 'Use spaces after semicolons.' - StyleGuide: '#spaces-operators' - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceAroundBlockParameters: - Description: 'Checks the spacing inside and after block parameters pipes.' - Enabled: true - VersionAdded: '0.49' - EnforcedStyleInsidePipes: no_space - SupportedStylesInsidePipes: - - space - - no_space - -Layout/SpaceAroundEqualsInParameterDefault: - Description: >- - Checks that the equals signs in parameter default assignments - have or don't have surrounding space depending on - configuration. - StyleGuide: '#spaces-around-equals' - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: space - SupportedStyles: - - space - - no_space - -Layout/SpaceAroundKeyword: - Description: 'Use a space around keywords if appropriate.' - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceAroundOperators: - Description: 'Use a single space around operators.' - StyleGuide: '#spaces-operators' - Enabled: true - VersionAdded: '0.49' - # When `true`, allows most uses of extra spacing if the intent is to align - # with an operator on the previous or next line, not counting empty lines - # or comment lines. - AllowForAlignment: true - -Layout/SpaceBeforeBlockBraces: - Description: >- - Checks that the left block brace has or doesn't have space - before it. - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: space - SupportedStyles: - - space - - no_space - EnforcedStyleForEmptyBraces: space - SupportedStylesForEmptyBraces: - - space - - no_space - VersionChanged: '0.52.1' - -Layout/SpaceBeforeComma: - Description: 'No spaces before commas.' - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceBeforeComment: - Description: >- - Checks for missing space between code and a comment on the - same line. - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceBeforeFirstArg: - Description: >- - Checks that exactly one space is used between a method name - and the first argument for method calls without parentheses. - Enabled: true - VersionAdded: '0.49' - # When `true`, allows most uses of extra spacing if the intent is to align - # things with the previous or next line, not counting empty lines or comment - # lines. - AllowForAlignment: true - -Layout/SpaceBeforeSemicolon: - Description: 'No spaces before semicolons.' - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceInLambdaLiteral: - Description: 'Checks for spaces in lambda literals.' - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: require_no_space - SupportedStyles: - - require_no_space - - require_space - -Layout/SpaceInsideArrayLiteralBrackets: - Description: 'Checks the spacing inside array literal brackets.' - Enabled: true - VersionAdded: '0.52' - EnforcedStyle: no_space - SupportedStyles: - - space - - no_space - # 'compact' normally requires a space inside the brackets, with the exception - # that successive left brackets or right brackets are collapsed together - - compact - EnforcedStyleForEmptyBrackets: no_space - SupportedStylesForEmptyBrackets: - - space - - no_space - -Layout/SpaceInsideArrayPercentLiteral: - Description: 'No unnecessary additional spaces between elements in %i/%w literals.' - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceInsideBlockBraces: - Description: >- - Checks that block braces have or don't have surrounding space. - For blocks taking parameters, checks that the left brace has - or doesn't have trailing space. - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: space - SupportedStyles: - - space - - no_space - EnforcedStyleForEmptyBraces: no_space - SupportedStylesForEmptyBraces: - - space - - no_space - # Space between `{` and `|`. Overrides `EnforcedStyle` if there is a conflict. - SpaceBeforeBlockParameters: true - -Layout/SpaceInsideHashLiteralBraces: - Description: "Use spaces inside hash literal braces - or don't." - StyleGuide: '#spaces-operators' - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: space - SupportedStyles: - - space - - no_space - # 'compact' normally requires a space inside hash braces, with the exception - # that successive left braces or right braces are collapsed together - - compact - EnforcedStyleForEmptyBraces: no_space - SupportedStylesForEmptyBraces: - - space - - no_space - - -Layout/SpaceInsideParens: - Description: 'No spaces after ( or before ).' - StyleGuide: '#spaces-braces' - Enabled: true - VersionAdded: '0.49' - VersionChanged: '0.55' - EnforcedStyle: no_space - SupportedStyles: - - space - - no_space - -Layout/SpaceInsidePercentLiteralDelimiters: - Description: 'No unnecessary spaces inside delimiters of %i/%w/%x literals.' - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceInsideRangeLiteral: - Description: 'No spaces inside range literals.' - StyleGuide: '#no-space-inside-range-literals' - Enabled: true - VersionAdded: '0.49' - -Layout/SpaceInsideReferenceBrackets: - Description: 'Checks the spacing inside referential brackets.' - Enabled: true - VersionAdded: '0.52' - VersionChanged: '0.53' - EnforcedStyle: no_space - SupportedStyles: - - space - - no_space - EnforcedStyleForEmptyBrackets: no_space - SupportedStylesForEmptyBrackets: - - space - - no_space - -Layout/SpaceInsideStringInterpolation: - Description: 'Checks for padding/surrounding spaces inside string interpolation.' - StyleGuide: '#string-interpolation' - Enabled: true - VersionAdded: '0.49' - EnforcedStyle: no_space - SupportedStyles: - - space - - no_space - -Layout/Tab: - Description: 'No hard tabs.' - StyleGuide: '#spaces-indentation' - Enabled: true - VersionAdded: '0.49' - VersionChanged: '0.51' - # By default, the indentation width from Layout/IndentationWidth is used - # But it can be overridden by setting this parameter - # It is used during auto-correction to determine how many spaces should - # replace each tab. - IndentationWidth: ~ - -Layout/TrailingEmptyLines: - Description: 'Checks trailing blank lines and final newline.' - StyleGuide: '#newline-eof' - Enabled: true - VersionAdded: '0.49' - VersionChanged: '0.77' - EnforcedStyle: final_newline - SupportedStyles: - - final_newline - - final_blank_line - -Layout/TrailingWhitespace: - Description: 'Avoid trailing whitespace.' - StyleGuide: '#no-trailing-whitespace' - Enabled: true - VersionAdded: '0.49' - VersionChanged: '0.55' - AllowInHeredoc: false - -#################### Lint ################################## -### Warnings - -Lint/AmbiguousBlockAssociation: - Description: >- - Checks for ambiguous block association with method when param passed without - parentheses. - StyleGuide: '#syntax' - Enabled: true - VersionAdded: '0.48' - -Lint/AmbiguousOperator: - Description: >- - Checks for ambiguous operators in the first argument of a - method invocation without parentheses. - StyleGuide: '#method-invocation-parens' - Enabled: true - VersionAdded: '0.17' - -Lint/AmbiguousRegexpLiteral: - Description: >- - Checks for ambiguous regexp literals in the first argument of - a method invocation without parentheses. - Enabled: true - VersionAdded: '0.17' - -Lint/AssignmentInCondition: - Description: "Don't use assignment in conditions." - StyleGuide: '#safe-assignment-in-condition' - Enabled: true - VersionAdded: '0.9' - AllowSafeAssignment: true - -Lint/BigDecimalNew: - Description: '`BigDecimal.new()` is deprecated. Use `BigDecimal()` instead.' - Enabled: true - VersionAdded: '0.53' - -Lint/BooleanSymbol: - Description: 'Check for `:true` and `:false` symbols.' - Enabled: true - VersionAdded: '0.50' - -Lint/CircularArgumentReference: - Description: "Default values in optional keyword arguments and optional ordinal arguments should not refer back to the name of the argument." - Enabled: true - VersionAdded: '0.33' - -Lint/Debugger: - Description: 'Check for debugger calls.' - Enabled: true - VersionAdded: '0.14' - VersionChanged: '0.49' - -Lint/DeprecatedClassMethods: - Description: 'Check for deprecated class method calls.' - Enabled: true - VersionAdded: '0.19' - -Lint/DisjunctiveAssignmentInConstructor: - Description: 'In constructor, plain assignment is preferred over disjunctive.' - Enabled: true - Safe: false - VersionAdded: '0.62' - -Lint/DuplicateCaseCondition: - Description: 'Do not repeat values in case conditionals.' - Enabled: true - VersionAdded: '0.45' - -Lint/DuplicateHashKey: - Description: 'Check for duplicate keys in hash literals.' - Enabled: true - VersionAdded: '0.34' - VersionChanged: '0.77' - -Lint/DuplicateMethods: - Description: 'Check for duplicate method definitions.' - Enabled: true - VersionAdded: '0.29' - -Lint/EachWithObjectArgument: - Description: 'Check for immutable argument given to each_with_object.' - Enabled: true - VersionAdded: '0.31' - -Lint/ElseLayout: - Description: 'Check for odd code arrangement in an else block.' - Enabled: true - VersionAdded: '0.17' - -Lint/EmptyEnsure: - Description: 'Checks for empty ensure block.' - Enabled: true - VersionAdded: '0.10' - VersionChanged: '0.48' - AutoCorrect: false - -Lint/EmptyExpression: - Description: 'Checks for empty expressions.' - Enabled: true - VersionAdded: '0.45' - -Lint/EmptyInterpolation: - Description: 'Checks for empty string interpolation.' - Enabled: true - VersionAdded: '0.20' - VersionChanged: '0.45' - -Lint/EmptyWhen: - Description: 'Checks for `when` branches with empty bodies.' - Enabled: true - VersionAdded: '0.45' - -Lint/EndInMethod: - Description: 'END blocks should not be placed inside method definitions.' - Enabled: true - VersionAdded: '0.9' - -Lint/EnsureReturn: - Description: 'Do not use return in an ensure block.' - StyleGuide: '#no-return-ensure' - Enabled: true - VersionAdded: '0.9' - -Lint/ErbNewArguments: - Description: 'Use `:trim_mode` and `:eoutvar` keyword arguments to `ERB.new`.' - Enabled: true - VersionAdded: '0.56' - -Lint/FlipFlop: - Description: 'Checks for flip-flops.' - StyleGuide: '#no-flip-flops' - Enabled: true - VersionAdded: '0.16' - -Lint/FloatOutOfRange: - Description: >- - Catches floating-point literals too large or small for Ruby to - represent. - Enabled: true - VersionAdded: '0.36' - -Lint/FormatParameterMismatch: - Description: 'The number of parameters to format/sprint must match the fields.' - Enabled: true - VersionAdded: '0.33' - -Lint/HeredocMethodCallPosition: - Description: >- - Checks for the ordering of a method call where - the receiver of the call is a HEREDOC. - Enabled: false - StyleGuide: '#heredoc-method-calls' - VersionAdded: '0.68' - -Lint/ImplicitStringConcatenation: - Description: >- - Checks for adjacent string literals on the same line, which - could better be represented as a single string literal. - Enabled: true - VersionAdded: '0.36' - -Lint/IneffectiveAccessModifier: - Description: >- - Checks for attempts to use `private` or `protected` to set - the visibility of a class method, which does not work. - Enabled: true - VersionAdded: '0.36' - -Lint/InheritException: - Description: 'Avoid inheriting from the `Exception` class.' - Enabled: true - VersionAdded: '0.41' - # The default base class in favour of `Exception`. - EnforcedStyle: runtime_error - SupportedStyles: - - runtime_error - - standard_error - -Lint/InterpolationCheck: - Description: 'Raise warning for interpolation in single q strs.' - Enabled: true - VersionAdded: '0.50' - -Lint/LiteralAsCondition: - Description: 'Checks of literals used in conditions.' - Enabled: true - VersionAdded: '0.51' - -Lint/LiteralInInterpolation: - Description: 'Checks for literals used in interpolation.' - Enabled: true - VersionAdded: '0.19' - VersionChanged: '0.32' - -Lint/Loop: - Description: >- - Use Kernel#loop with break rather than begin/end/until or - begin/end/while for post-loop tests. - StyleGuide: '#loop-with-break' - Enabled: true - VersionAdded: '0.9' - -Lint/MissingCopEnableDirective: - Description: 'Checks for a `# rubocop:enable` after `# rubocop:disable`.' - Enabled: true - VersionAdded: '0.52' - # Maximum number of consecutive lines the cop can be disabled for. - # 0 allows only single-line disables - # 1 would mean the maximum allowed is the following: - # # rubocop:disable SomeCop - # a = 1 - # # rubocop:enable SomeCop - # .inf for any size - MaximumRangeSize: .inf - -Lint/MultipleComparison: - Description: "Use `&&` operator to compare multiple values." - Enabled: true - VersionAdded: '0.47' - VersionChanged: '0.77' - -Lint/NestedMethodDefinition: - Description: 'Do not use nested method definitions.' - StyleGuide: '#no-nested-methods' - Enabled: true - VersionAdded: '0.32' - -Lint/NestedPercentLiteral: - Description: 'Checks for nested percent literals.' - Enabled: true - VersionAdded: '0.52' - -Lint/NextWithoutAccumulator: - Description: >- - Do not omit the accumulator when calling `next` - in a `reduce`/`inject` block. - Enabled: true - VersionAdded: '0.36' - -Lint/NonLocalExitFromIterator: - Description: 'Do not use return in iterator to cause non-local exit.' - Enabled: true - VersionAdded: '0.30' - -Lint/NumberConversion: - Description: 'Checks unsafe usage of number conversion methods.' - Enabled: false - VersionAdded: '0.53' - VersionChanged: '0.70' - SafeAutoCorrect: false - -Lint/OrderedMagicComments: - Description: 'Checks the proper ordering of magic comments and whether a magic comment is not placed before a shebang.' - Enabled: true - VersionAdded: '0.53' - -Lint/ParenthesesAsGroupedExpression: - Description: >- - Checks for method calls with a space before the opening - parenthesis. - StyleGuide: '#parens-no-spaces' - Enabled: true - VersionAdded: '0.12' - -Lint/PercentStringArray: - Description: >- - Checks for unwanted commas and quotes in %w/%W literals. - Enabled: true - Safe: false - VersionAdded: '0.41' - -Lint/PercentSymbolArray: - Description: >- - Checks for unwanted commas and colons in %i/%I literals. - Enabled: true - VersionAdded: '0.41' - -Lint/RandOne: - Description: >- - Checks for `rand(1)` calls. Such calls always return `0` - and most likely a mistake. - Enabled: true - VersionAdded: '0.36' - -Lint/RedundantCopDisableDirective: - Description: >- - Checks for rubocop:disable comments that can be removed. - Note: this cop is not disabled when disabling all cops. - It must be explicitly disabled. - Enabled: true - VersionAdded: '0.76' - -Lint/RedundantCopEnableDirective: - Description: Checks for rubocop:enable comments that can be removed. - Enabled: true - VersionAdded: '0.76' - -Lint/RedundantRequireStatement: - Description: 'Checks for unnecessary `require` statement.' - Enabled: true - VersionAdded: '0.76' - -Lint/RedundantSplatExpansion: - Description: 'Checks for splat unnecessarily being called on literals.' - Enabled: true - VersionChanged: '0.76' - -Lint/RedundantStringCoercion: - Description: 'Checks for Object#to_s usage in string interpolation.' - StyleGuide: '#no-to-s' - Enabled: true - VersionAdded: '0.19' - VersionChanged: '0.77' - -Lint/RedundantWithIndex: - Description: 'Checks for redundant `with_index`.' - Enabled: true - VersionAdded: '0.50' - -Lint/RedundantWithObject: - Description: 'Checks for redundant `with_object`.' - Enabled: true - VersionAdded: '0.51' - -Lint/RegexpAsCondition: - Description: >- - Do not use regexp literal as a condition. - The regexp literal matches `$_` implicitly. - Enabled: true - VersionAdded: '0.51' - -Lint/RequireParentheses: - Description: >- - Use parentheses in the method call to avoid confusion - about precedence. - Enabled: true - VersionAdded: '0.18' - -Lint/RescueException: - Description: 'Avoid rescuing the Exception class.' - StyleGuide: '#no-blind-rescues' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.27.1' - -Lint/RescueType: - Description: 'Avoid rescuing from non constants that could result in a `TypeError`.' - Enabled: true - VersionAdded: '0.49' - -Lint/ReturnInVoidContext: - Description: 'Checks for return in void context.' - Enabled: true - VersionAdded: '0.50' - -Lint/SafeNavigationChain: - Description: 'Do not chain ordinary method call after safe navigation operator.' - Enabled: true - VersionAdded: '0.47' - VersionChanged: '0.77' - AllowedMethods: - - present? - - blank? - - presence - - try - - try! - -Lint/SafeNavigationConsistency: - Description: >- - Check to make sure that if safe navigation is used for a method - call in an `&&` or `||` condition that safe navigation is used - for all method calls on that same object. - Enabled: true - VersionAdded: '0.55' - VersionChanged: '0.77' - AllowedMethods: - - present? - - blank? - - presence - - try - - try! - -Lint/SafeNavigationWithEmpty: - Description: 'Avoid `foo&.empty?` in conditionals.' - Enabled: true - VersionAdded: '0.62' - -Lint/ScriptPermission: - Description: 'Grant script file execute permission.' - Enabled: true - VersionAdded: '0.49' - VersionChanged: '0.50' - -Lint/SendWithMixinArgument: - Description: 'Checks for `send` method when using mixin.' - Enabled: true - VersionAdded: '0.75' - -Lint/ShadowedArgument: - Description: 'Avoid reassigning arguments before they were used.' - Enabled: true - VersionAdded: '0.52' - IgnoreImplicitReferences: false - - -Lint/ShadowedException: - Description: >- - Avoid rescuing a higher level exception - before a lower level exception. - Enabled: true - VersionAdded: '0.41' - -Lint/ShadowingOuterLocalVariable: - Description: >- - Do not use the same name as outer local variable - for block arguments or block local variables. - Enabled: true - VersionAdded: '0.9' - -Lint/SuppressedException: - Description: "Don't suppress exceptions." - StyleGuide: '#dont-hide-exceptions' - Enabled: true - AllowComments: false - VersionAdded: '0.9' - VersionChanged: '0.77' - -Lint/Syntax: - Description: 'Checks syntax error.' - Enabled: true - VersionAdded: '0.9' - - -Lint/ToJSON: - Description: 'Ensure #to_json includes an optional argument.' - Enabled: true - -Lint/UnderscorePrefixedVariableName: - Description: 'Do not use prefix `_` for a variable that is used.' - Enabled: true - VersionAdded: '0.21' - AllowKeywordBlockArguments: false - -Lint/UnifiedInteger: - Description: 'Use Integer instead of Fixnum or Bignum.' - Enabled: true - VersionAdded: '0.43' - -Lint/UnreachableCode: - Description: 'Unreachable code.' - Enabled: true - VersionAdded: '0.9' - -Lint/UnusedBlockArgument: - Description: 'Checks for unused block arguments.' - StyleGuide: '#underscore-unused-vars' - Enabled: true - VersionAdded: '0.21' - VersionChanged: '0.22' - IgnoreEmptyBlocks: true - AllowUnusedKeywordArguments: false - -Lint/UnusedMethodArgument: - Description: 'Checks for unused method arguments.' - StyleGuide: '#underscore-unused-vars' - Enabled: true - VersionAdded: '0.21' - VersionChanged: '0.35' - AllowUnusedKeywordArguments: false - IgnoreEmptyMethods: true - -Lint/UriEscapeUnescape: - Description: >- - `URI.escape` method is obsolete and should not be used. Instead, use - `CGI.escape`, `URI.encode_www_form` or `URI.encode_www_form_component` - depending on your specific use case. - Also `URI.unescape` method is obsolete and should not be used. Instead, use - `CGI.unescape`, `URI.decode_www_form` or `URI.decode_www_form_component` - depending on your specific use case. - Enabled: true - VersionAdded: '0.50' - -Lint/UriRegexp: - Description: 'Use `URI::DEFAULT_PARSER.make_regexp` instead of `URI.regexp`.' - Enabled: true - VersionAdded: '0.50' - -Lint/UselessAccessModifier: - Description: 'Checks for useless access modifiers.' - Enabled: true - VersionAdded: '0.20' - VersionChanged: '0.47' - ContextCreatingMethods: [] - MethodCreatingMethods: [] - -Lint/UselessAssignment: - Description: 'Checks for useless assignment to a local variable.' - StyleGuide: '#underscore-unused-vars' - Enabled: true - VersionAdded: '0.11' - -Lint/UselessComparison: - Description: 'Checks for comparison of something with itself.' - Enabled: true - VersionAdded: '0.11' - -Lint/UselessElseWithoutRescue: - Description: 'Checks for useless `else` in `begin..end` without `rescue`.' - Enabled: true - VersionAdded: '0.17' - -Lint/UselessSetterCall: - Description: 'Checks for useless setter call to a local variable.' - Enabled: true - VersionAdded: '0.13' - -Lint/Void: - Description: 'Possible use of operator/literal/variable in void context.' - Enabled: true - VersionAdded: '0.9' - CheckForMethodsWithNoSideEffects: false - -#################### Metrics ############################### - -Metrics/AbcSize: - Description: >- - A calculated magnitude based on number of assignments, - branches, and conditions. - Reference: - - http://c2.com/cgi/wiki?AbcMetric - - https://en.wikipedia.org/wiki/ABC_Software_Metric - Enabled: true - VersionAdded: '0.27' - VersionChanged: '0.66' - # The ABC size is a calculated magnitude, so this number can be an Integer or - # a Float. - Max: 15 - -Metrics/BlockLength: - Description: 'Avoid long blocks with many lines.' - Enabled: true - VersionAdded: '0.44' - VersionChanged: '0.66' - CountComments: false # count full line comments? - Max: 25 - ExcludedMethods: - # By default, exclude the `#refine` method, as it tends to have larger - # associated blocks. - - refine - Exclude: - - '**/*.gemspec' - -Metrics/BlockNesting: - Description: 'Avoid excessive block nesting.' - StyleGuide: '#three-is-the-number-thou-shalt-count' - Enabled: true - VersionAdded: '0.25' - VersionChanged: '0.47' - CountBlocks: false - Max: 3 - -Metrics/ClassLength: - Description: 'Avoid classes longer than 100 lines of code.' - Enabled: true - VersionAdded: '0.25' - CountComments: false # count full line comments? - Max: 100 - -# Avoid complex methods. -Metrics/CyclomaticComplexity: - Description: >- - A complexity metric that is strongly correlated to the number - of test cases needed to validate a method. - Enabled: true - VersionAdded: '0.25' - Max: 6 - -Metrics/MethodLength: - Description: 'Avoid methods longer than 10 lines of code.' - StyleGuide: '#short-methods' - Enabled: true - VersionAdded: '0.25' - VersionChanged: '0.59.2' - CountComments: false # count full line comments? - Max: 10 - ExcludedMethods: [] - -Metrics/ModuleLength: - Description: 'Avoid modules longer than 100 lines of code.' - Enabled: true - VersionAdded: '0.31' - CountComments: false # count full line comments? - Max: 100 - -Metrics/ParameterLists: - Description: 'Avoid parameter lists longer than three or four parameters.' - StyleGuide: '#too-many-params' - Enabled: true - VersionAdded: '0.25' - Max: 5 - CountKeywordArgs: true - -Metrics/PerceivedComplexity: - Description: >- - A complexity metric geared towards measuring complexity for a - human reader. - Enabled: true - VersionAdded: '0.25' - Max: 7 - -################## Migration ############################# - -Migration/DepartmentName: - Description: >- - Check that cop names in rubocop:disable (etc) comments are - given with department name. - Enabled: false - -#################### Naming ############################## - -Naming/AccessorMethodName: - Description: Check the naming of accessor methods for get_/set_. - StyleGuide: '#accessor_mutator_method_names' - Enabled: true - VersionAdded: '0.50' - -Naming/AsciiIdentifiers: - Description: 'Use only ascii symbols in identifiers.' - StyleGuide: '#english-identifiers' - Enabled: true - VersionAdded: '0.50' - -Naming/BinaryOperatorParameterName: - Description: 'When defining binary operators, name the argument other.' - StyleGuide: '#other-arg' - Enabled: true - VersionAdded: '0.50' - -Naming/BlockParameterName: - Description: >- - Checks for block parameter names that contain capital letters, - end in numbers, or do not meet a minimal length. - Enabled: true - VersionAdded: '0.53' - VersionChanged: '0.77' - # Parameter names may be equal to or greater than this value - MinNameLength: 1 - AllowNamesEndingInNumbers: true - # Allowed names that will not register an offense - AllowedNames: [] - # Forbidden names that will register an offense - ForbiddenNames: [] - -Naming/ClassAndModuleCamelCase: - Description: 'Use CamelCase for classes and modules.' - StyleGuide: '#camelcase-classes' - Enabled: true - VersionAdded: '0.50' - -Naming/ConstantName: - Description: 'Constants should use SCREAMING_SNAKE_CASE.' - StyleGuide: '#screaming-snake-case' - Enabled: true - VersionAdded: '0.50' - -Naming/FileName: - Description: 'Use snake_case for source file names.' - StyleGuide: '#snake-case-files' - Enabled: true - VersionAdded: '0.50' - # Camel case file names listed in `AllCops:Include` and all file names listed - # in `AllCops:Exclude` are excluded by default. Add extra excludes here. - Exclude: [] - # When `true`, requires that each source file should define a class or module - # with a name which matches the file name (converted to ... case). - # It further expects it to be nested inside modules which match the names - # of subdirectories in its path. - ExpectMatchingDefinition: false - # If non-`nil`, expect all source file names to match the following regex. - # Only the file name itself is matched, not the entire file path. - # Use anchors as necessary if you want to match the entire name rather than - # just a part of it. - Regex: ~ - # With `IgnoreExecutableScripts` set to `true`, this cop does not - # report offending filenames for executable scripts (i.e. source - # files with a shebang in the first line). - IgnoreExecutableScripts: true - AllowedAcronyms: - - CLI - - DSL - - ACL - - API - - ASCII - - CPU - - CSS - - DNS - - EOF - - GUID - - HTML - - HTTP - - HTTPS - - ID - - IP - - JSON - - LHS - - QPS - - RAM - - RHS - - RPC - - SLA - - SMTP - - SQL - - SSH - - TCP - - TLS - - TTL - - UDP - - UI - - UID - - UUID - - URI - - URL - - UTF8 - - VM - - XML - - XMPP - - XSRF - - XSS - -Naming/HeredocDelimiterCase: - Description: 'Use configured case for heredoc delimiters.' - StyleGuide: '#heredoc-delimiters' - Enabled: true - VersionAdded: '0.50' - EnforcedStyle: uppercase - SupportedStyles: - - lowercase - - uppercase - -Naming/HeredocDelimiterNaming: - Description: 'Use descriptive heredoc delimiters.' - StyleGuide: '#heredoc-delimiters' - Enabled: true - VersionAdded: '0.50' - ForbiddenDelimiters: - - !ruby/regexp '/(^|\s)(EO[A-Z]{1}|END)(\s|$)/' - -Naming/MemoizedInstanceVariableName: - Description: >- - Memoized method name should match memo instance variable name. - Enabled: true - VersionAdded: '0.53' - VersionChanged: '0.58' - EnforcedStyleForLeadingUnderscores: disallowed - SupportedStylesForLeadingUnderscores: - - disallowed - - required - - optional - -Naming/MethodName: - Description: 'Use the configured style when naming methods.' - StyleGuide: '#snake-case-symbols-methods-vars' - Enabled: true - VersionAdded: '0.50' - EnforcedStyle: snake_case - SupportedStyles: - - snake_case - - camelCase - # Method names matching patterns are always allowed. - # - # IgnoredPatterns: - # - '\A\s*onSelectionBulkChange\s*' - # - '\A\s*onSelectionCleared\s*' - # - IgnoredPatterns: [] - -Naming/MethodParameterName: - Description: >- - Checks for method parameter names that contain capital letters, - end in numbers, or do not meet a minimal length. - Enabled: true - VersionAdded: '0.53' - VersionChanged: '0.77' - # Parameter names may be equal to or greater than this value - MinNameLength: 3 - AllowNamesEndingInNumbers: true - # Allowed names that will not register an offense - AllowedNames: - - io - - id - - to - - by - - 'on' - - in - - at - - ip - - db - - os - # Forbidden names that will register an offense - ForbiddenNames: [] - -Naming/PredicateName: - Description: 'Check the names of predicate methods.' - StyleGuide: '#bool-methods-qmark' - Enabled: true - VersionAdded: '0.50' - VersionChanged: '0.77' - # Predicate name prefixes. - NamePrefix: - - is_ - - has_ - - have_ - # Predicate name prefixes that should be removed. - ForbiddenPrefixes: - - is_ - - has_ - - have_ - # Predicate names which, despite having a forbidden prefix, or no `?`, - # should still be accepted - AllowedMethods: - - is_a? - # Method definition macros for dynamically generated methods. - MethodDefinitionMacros: - - define_method - - define_singleton_method - # Exclude Rspec specs because there is a strong convention to write spec - # helpers in the form of `have_something` or `be_something`. - Exclude: - - 'spec/**/*' - -Naming/RescuedExceptionsVariableName: - Description: 'Use consistent rescued exceptions variables naming.' - Enabled: true - VersionAdded: '0.67' - VersionChanged: '0.68' - PreferredName: e - -Naming/VariableName: - Description: 'Use the configured style when naming variables.' - StyleGuide: '#snake-case-symbols-methods-vars' - Enabled: true - VersionAdded: '0.50' - EnforcedStyle: snake_case - SupportedStyles: - - snake_case - - camelCase - -Naming/VariableNumber: - Description: 'Use the configured style when numbering variables.' - Enabled: true - VersionAdded: '0.50' - EnforcedStyle: normalcase - SupportedStyles: - - snake_case - - normalcase - - non_integer - -#################### Security ############################## - -Security/Eval: - Description: 'The use of eval represents a serious security risk.' - Enabled: true - VersionAdded: '0.47' - -Security/JSONLoad: - Description: >- - Prefer usage of `JSON.parse` over `JSON.load` due to potential - security issues. See reference for more information. - Reference: 'https://ruby-doc.org/stdlib-2.3.0/libdoc/json/rdoc/JSON.html#method-i-load' - Enabled: true - VersionAdded: '0.43' - VersionChanged: '0.44' - # Autocorrect here will change to a method that may cause crashes depending - # on the value of the argument. - AutoCorrect: false - SafeAutoCorrect: false - -Security/MarshalLoad: - Description: >- - Avoid using of `Marshal.load` or `Marshal.restore` due to potential - security issues. See reference for more information. - Reference: 'https://ruby-doc.org/core-2.3.3/Marshal.html#module-Marshal-label-Security+considerations' - Enabled: true - VersionAdded: '0.47' - -Security/Open: - Description: 'The use of Kernel#open represents a serious security risk.' - Enabled: true - VersionAdded: '0.53' - Safe: false - -Security/YAMLLoad: - Description: >- - Prefer usage of `YAML.safe_load` over `YAML.load` due to potential - security issues. See reference for more information. - Reference: 'https://ruby-doc.org/stdlib-2.3.3/libdoc/yaml/rdoc/YAML.html#module-YAML-label-Security' - Enabled: true - VersionAdded: '0.47' - SafeAutoCorrect: false - -#################### Style ############################### - -Style/AccessModifierDeclarations: - Description: 'Checks style of how access modifiers are used.' - Enabled: true - VersionAdded: '0.57' - EnforcedStyle: group - SupportedStyles: - - inline - - group - -Style/Alias: - Description: 'Use alias instead of alias_method.' - StyleGuide: '#alias-method-lexically' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.36' - EnforcedStyle: prefer_alias - SupportedStyles: - - prefer_alias - - prefer_alias_method - -Style/AndOr: - Description: 'Use &&/|| instead of and/or.' - StyleGuide: '#no-and-or-or' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.25' - # Whether `and` and `or` are banned only in conditionals (conditionals) - # or completely (always). - EnforcedStyle: always - SupportedStyles: - - always - - conditionals - -Style/ArrayJoin: - Description: 'Use Array#join instead of Array#*.' - StyleGuide: '#array-join' - Enabled: true - VersionAdded: '0.20' - VersionChanged: '0.31' - -Style/AsciiComments: - Description: 'Use only ascii symbols in comments.' - StyleGuide: '#english-comments' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.52' - AllowedChars: [] - -Style/Attr: - Description: 'Checks for uses of Module#attr.' - StyleGuide: '#attr' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.12' - -Style/AutoResourceCleanup: - Description: 'Suggests the usage of an auto resource cleanup version of a method (if available).' - Enabled: false - VersionAdded: '0.30' - -Style/BarePercentLiterals: - Description: 'Checks if usage of %() or %Q() matches configuration.' - StyleGuide: '#percent-q-shorthand' - Enabled: true - VersionAdded: '0.25' - EnforcedStyle: bare_percent - SupportedStyles: - - percent_q - - bare_percent - -Style/BeginBlock: - Description: 'Avoid the use of BEGIN blocks.' - StyleGuide: '#no-BEGIN-blocks' - Enabled: true - VersionAdded: '0.9' - -Style/BlockComments: - Description: 'Do not use block comments.' - StyleGuide: '#no-block-comments' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.23' - -Style/BlockDelimiters: - Description: >- - Avoid using {...} for multi-line blocks (multiline chaining is - always ugly). - Prefer {...} over do...end for single-line blocks. - StyleGuide: '#single-line-blocks' - Enabled: true - VersionAdded: '0.30' - VersionChanged: '0.35' - EnforcedStyle: line_count_based - SupportedStyles: - # The `line_count_based` style enforces braces around single line blocks and - # do..end around multi-line blocks. - - line_count_based - # The `semantic` style enforces braces around functional blocks, where the - # primary purpose of the block is to return a value and do..end for - # multi-line procedural blocks, where the primary purpose of the block is - # its side-effects. Single-line procedural blocks may only use do-end, - # unless AllowBracesOnProceduralOneLiners has a truthy value (see below). - # - # This looks at the usage of a block's method to determine its type (e.g. is - # the result of a `map` assigned to a variable or passed to another - # method) but exceptions are permitted in the `ProceduralMethods`, - # `FunctionalMethods` and `IgnoredMethods` sections below. - - semantic - # The `braces_for_chaining` style enforces braces around single line blocks - # and do..end around multi-line blocks, except for multi-line blocks whose - # return value is being chained with another method (in which case braces - # are enforced). - - braces_for_chaining - # The `always_braces` style always enforces braces. - - always_braces - ProceduralMethods: - # Methods that are known to be procedural in nature but look functional from - # their usage, e.g. - # - # time = Benchmark.realtime do - # foo.bar - # end - # - # Here, the return value of the block is discarded but the return value of - # `Benchmark.realtime` is used. - - benchmark - - bm - - bmbm - - create - - each_with_object - - measure - - new - - realtime - - tap - - with_object - FunctionalMethods: - # Methods that are known to be functional in nature but look procedural from - # their usage, e.g. - # - # let(:foo) { Foo.new } - # - # Here, the return value of `Foo.new` is used to define a `foo` helper but - # doesn't appear to be used from the return value of `let`. - - let - - let! - - subject - - watch - IgnoredMethods: - # Methods that can be either procedural or functional and cannot be - # categorised from their usage alone, e.g. - # - # foo = lambda do |x| - # puts "Hello, #{x}" - # end - # - # foo = lambda do |x| - # x * 100 - # end - # - # Here, it is impossible to tell from the return value of `lambda` whether - # the inner block's return value is significant. - - lambda - - proc - - it - # The AllowBracesOnProceduralOneLiners option is ignored unless the - # EnforcedStyle is set to `semantic`. If so: - # - # If AllowBracesOnProceduralOneLiners is unspecified, or set to any - # falsey value, then semantic purity is maintained, so one-line - # procedural blocks must use do-end, not braces. - # - # # bad - # collection.each { |element| puts element } - # - # # good - # collection.each do |element| puts element end - # - # If AllowBracesOnProceduralOneLiners is set to any truthy value, - # then one-line procedural blocks may use either style. - # - # # good - # collection.each { |element| puts element } - # - # # also good - # collection.each do |element| puts element end - AllowBracesOnProceduralOneLiners: false - -Style/BracesAroundHashParameters: - Description: 'Enforce braces style around hash parameters.' - Enabled: true - VersionAdded: '0.14.1' - VersionChanged: '0.28' - EnforcedStyle: no_braces - SupportedStyles: - # The `braces` style enforces braces around all method parameters that are - # hashes. - - braces - # The `no_braces` style checks that the last parameter doesn't have braces - # around it. - - no_braces - # The `context_dependent` style checks that the last parameter doesn't have - # braces around it, but requires braces if the second to last parameter is - # also a hash literal. - - context_dependent - -Style/CaseEquality: - Description: 'Avoid explicit use of the case equality operator(===).' - StyleGuide: '#no-case-equality' - Enabled: true - VersionAdded: '0.9' - -Style/CharacterLiteral: - Description: 'Checks for uses of character literals.' - StyleGuide: '#no-character-literals' - Enabled: true - VersionAdded: '0.9' - -Style/ClassAndModuleChildren: - Description: 'Checks style of children classes and modules.' - StyleGuide: '#namespace-definition' - # Moving from compact to nested children requires knowledge of whether the - # outer parent is a module or a class. Moving from nested to compact requires - # verification that the outer parent is defined elsewhere. Rubocop does not - # have the knowledge to perform either operation safely and thus requires - # manual oversight. - SafeAutoCorrect: false - AutoCorrect: false - Enabled: true - VersionAdded: '0.19' - # - # Basically there are two different styles: - # - # `nested` - have each child on a separate line - # class Foo - # class Bar - # end - # end - # - # `compact` - combine definitions as much as possible - # class Foo::Bar - # end - # - # The compact style is only forced, for classes or modules with one child. - EnforcedStyle: nested - SupportedStyles: - - nested - - compact - -Style/ClassCheck: - Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.' - Enabled: true - VersionAdded: '0.24' - EnforcedStyle: is_a? - SupportedStyles: - - is_a? - - kind_of? - -Style/ClassMethods: - Description: 'Use self when defining module/class methods.' - StyleGuide: '#def-self-class-methods' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.20' - -Style/ClassVars: - Description: 'Avoid the use of class variables.' - StyleGuide: '#no-class-vars' - Enabled: true - VersionAdded: '0.13' - -# Align with the style guide. -Style/CollectionMethods: - Description: 'Preferred collection methods.' - StyleGuide: '#map-find-select-reduce-size' - Enabled: false - VersionAdded: '0.9' - VersionChanged: '0.27' - Safe: false - # Mapping from undesired method to desired method - # e.g. to use `detect` over `find`: - # - # Style/CollectionMethods: - # PreferredMethods: - # find: detect - PreferredMethods: - collect: 'map' - collect!: 'map!' - inject: 'reduce' - detect: 'find' - find_all: 'select' - -Style/ColonMethodCall: - Description: 'Do not use :: for method call.' - StyleGuide: '#double-colons' - Enabled: true - VersionAdded: '0.9' - -Style/ColonMethodDefinition: - Description: 'Do not use :: for defining class methods.' - StyleGuide: '#colon-method-definition' - Enabled: true - VersionAdded: '0.52' - -Style/CommandLiteral: - Description: 'Use `` or %x around command literals.' - StyleGuide: '#percent-x' - Enabled: true - VersionAdded: '0.30' - EnforcedStyle: backticks - # backticks: Always use backticks. - # percent_x: Always use `%x`. - # mixed: Use backticks on single-line commands, and `%x` on multi-line commands. - SupportedStyles: - - backticks - - percent_x - - mixed - # If `false`, the cop will always recommend using `%x` if one or more backticks - # are found in the command string. - AllowInnerBackticks: false - -# Checks formatting of special comments -Style/CommentAnnotation: - Description: >- - Checks formatting of special comments - (TODO, FIXME, OPTIMIZE, HACK, REVIEW). - StyleGuide: '#annotate-keywords' - Enabled: true - VersionAdded: '0.10' - VersionChanged: '0.31' - Keywords: - - TODO - - FIXME - - OPTIMIZE - - HACK - - REVIEW - -Style/CommentedKeyword: - Description: 'Do not place comments on the same line as certain keywords.' - Enabled: true - VersionAdded: '0.51' - -Style/ConditionalAssignment: - Description: >- - Use the return value of `if` and `case` statements for - assignment to a variable and variable comparison instead - of assigning that variable inside of each branch. - Enabled: true - VersionAdded: '0.36' - VersionChanged: '0.47' - EnforcedStyle: assign_to_condition - SupportedStyles: - - assign_to_condition - - assign_inside_condition - # When configured to `assign_to_condition`, `SingleLineConditionsOnly` - # will only register an offense when all branches of a condition are - # a single line. - # When configured to `assign_inside_condition`, `SingleLineConditionsOnly` - # will only register an offense for assignment to a condition that has - # at least one multiline branch. - SingleLineConditionsOnly: true - IncludeTernaryExpressions: true - -Style/ConstantVisibility: - Description: >- - Check that class- and module constants have - visibility declarations. - Enabled: false - VersionAdded: '0.66' - -# Checks that you have put a copyright in a comment before any code. -# -# You can override the default Notice in your .rubocop.yml file. -# -# In order to use autocorrect, you must supply a value for the -# `AutocorrectNotice` key that matches the regexp Notice. A blank -# `AutocorrectNotice` will cause an error during autocorrect. -# -# Autocorrect will add a copyright notice in a comment at the top -# of the file immediately after any shebang or encoding comments. -# -# Example rubocop.yml: -# -# Style/Copyright: -# Enabled: true -# Notice: 'Copyright (\(c\) )?2015 Yahoo! Inc' -# AutocorrectNotice: '# Copyright (c) 2015 Yahoo! Inc.' -# -Style/Copyright: - Description: 'Include a copyright notice in each file before any code.' - Enabled: false - VersionAdded: '0.30' - Notice: '^Copyright (\(c\) )?2[0-9]{3} .+' - AutocorrectNotice: '' - -Style/DateTime: - Description: 'Use Time over DateTime.' - StyleGuide: '#date--time' - Enabled: false - VersionAdded: '0.51' - VersionChanged: '0.59' - AllowCoercion: false - -Style/DefWithParentheses: - Description: 'Use def with parentheses when there are arguments.' - StyleGuide: '#method-parens' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.12' - -Style/Dir: - Description: >- - Use the `__dir__` method to retrieve the canonicalized - absolute path to the current file. - Enabled: true - VersionAdded: '0.50' - -Style/Documentation: - Description: 'Document classes and non-namespace modules.' - Enabled: true - VersionAdded: '0.9' - Exclude: - - 'spec/**/*' - - 'test/**/*' - -Style/DocumentationMethod: - Description: 'Checks for missing documentation comment for public methods.' - Enabled: false - VersionAdded: '0.43' - Exclude: - - 'spec/**/*' - - 'test/**/*' - RequireForNonPublicMethods: false - -Style/DoubleCopDisableDirective: - Description: 'Checks for double rubocop:disable comments on a single line.' - Enabled: true - VersionAdded: '0.73' - -Style/DoubleNegation: - Description: 'Checks for uses of double negation (!!).' - StyleGuide: '#no-bang-bang' - Enabled: true - VersionAdded: '0.19' - -Style/EachForSimpleLoop: - Description: >- - Use `Integer#times` for a simple loop which iterates a fixed - number of times. - Enabled: true - VersionAdded: '0.41' - -Style/EachWithObject: - Description: 'Prefer `each_with_object` over `inject` or `reduce`.' - Enabled: true - VersionAdded: '0.22' - VersionChanged: '0.42' - -Style/EmptyBlockParameter: - Description: 'Omit pipes for empty block parameters.' - Enabled: true - VersionAdded: '0.52' - -Style/EmptyCaseCondition: - Description: 'Avoid empty condition in case statements.' - Enabled: true - VersionAdded: '0.40' - -Style/EmptyElse: - Description: 'Avoid empty else-clauses.' - Enabled: true - VersionAdded: '0.28' - VersionChanged: '0.32' - EnforcedStyle: both - # empty - warn only on empty `else` - # nil - warn on `else` with nil in it - # both - warn on empty `else` and `else` with `nil` in it - SupportedStyles: - - empty - - nil - - both - -Style/EmptyLambdaParameter: - Description: 'Omit parens for empty lambda parameters.' - Enabled: true - VersionAdded: '0.52' - -Style/EmptyLiteral: - Description: 'Prefer literals to Array.new/Hash.new/String.new.' - StyleGuide: '#literal-array-hash' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.12' - -Style/EmptyMethod: - Description: 'Checks the formatting of empty method definitions.' - StyleGuide: '#no-single-line-methods' - Enabled: true - VersionAdded: '0.46' - EnforcedStyle: compact - SupportedStyles: - - compact - - expanded - -Style/Encoding: - Description: 'Use UTF-8 as the source file encoding.' - StyleGuide: '#utf-8' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.50' - -Style/EndBlock: - Description: 'Avoid the use of END blocks.' - StyleGuide: '#no-END-blocks' - Enabled: true - VersionAdded: '0.9' - -Style/EvalWithLocation: - Description: 'Pass `__FILE__` and `__LINE__` to `eval` method, as they are used by backtraces.' - Enabled: true - VersionAdded: '0.52' - -Style/EvenOdd: - Description: 'Favor the use of `Integer#even?` && `Integer#odd?`.' - StyleGuide: '#predicate-methods' - Enabled: true - VersionAdded: '0.12' - VersionChanged: '0.29' - -Style/ExpandPathArguments: - Description: "Use `expand_path(__dir__)` instead of `expand_path('..', __FILE__)`." - Enabled: true - VersionAdded: '0.53' - -Style/FloatDivision: - Description: 'For performing float division, coerce one side only.' - StyleGuide: '#float-division' - Reference: 'https://github.com/rubocop-hq/ruby-style-guide/issues/628' - Enabled: true - VersionAdded: '0.72' - EnforcedStyle: single_coerce - SupportedStyles: - - left_coerce - - right_coerce - - single_coerce - - fdiv - -Style/For: - Description: 'Checks use of for or each in multiline loops.' - StyleGuide: '#no-for-loops' - Enabled: true - VersionAdded: '0.13' - VersionChanged: '0.59' - EnforcedStyle: each - SupportedStyles: - - each - - for - -Style/FormatString: - Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.' - StyleGuide: '#sprintf' - Enabled: true - VersionAdded: '0.19' - VersionChanged: '0.49' - EnforcedStyle: format - SupportedStyles: - - format - - sprintf - - percent - -Style/FormatStringToken: - Description: 'Use a consistent style for format string tokens.' - Enabled: true - EnforcedStyle: annotated - SupportedStyles: - # Prefer tokens which contain a sprintf like type annotation like - # `%s`, `%d`, `%f` - - annotated - # Prefer simple looking "template" style tokens like `%{name}`, `%{age}` - - template - - unannotated - VersionAdded: '0.49' - VersionChanged: '0.75' - -Style/FrozenStringLiteralComment: - Description: >- - Add the frozen_string_literal comment to the top of files - to help transition to frozen string literals by default. - Enabled: false - VersionAdded: '0.36' - VersionChanged: '0.69' - EnforcedStyle: always - SupportedStyles: - # `always` will always add the frozen string literal comment to a file - # regardless of the Ruby version or if `freeze` or `<<` are called on a - # string literal. If you run code against multiple versions of Ruby, it is - # possible that this will create errors in Ruby 2.3.0+. - - always - # `never` will enforce that the frozen string literal comment does not - # exist in a file. - - never - -Style/GlobalVars: - Description: 'Do not introduce global variables.' - StyleGuide: '#instance-vars' - Reference: 'https://www.zenspider.com/ruby/quickref.html' - Enabled: true - VersionAdded: '0.13' - # Built-in global variables are allowed by default. - AllowedVariables: [] - -Style/GuardClause: - Description: 'Check for conditionals that can be replaced with guard clauses.' - StyleGuide: '#no-nested-conditionals' - Enabled: true - VersionAdded: '0.20' - VersionChanged: '0.22' - # `MinBodyLength` defines the number of lines of the a body of an `if` or `unless` - # needs to have to trigger this cop - MinBodyLength: 1 - -Style/HashSyntax: - Description: >- - Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax - { :a => 1, :b => 2 }. - StyleGuide: '#hash-literals' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.43' - EnforcedStyle: ruby19 - SupportedStyles: - # checks for 1.9 syntax (e.g. {a: 1}) for all symbol keys - - ruby19 - # checks for hash rocket syntax for all hashes - - hash_rockets - # forbids mixed key syntaxes (e.g. {a: 1, :b => 2}) - - no_mixed_keys - # enforces both ruby19 and no_mixed_keys styles - - ruby19_no_mixed_keys - # Force hashes that have a symbol value to use hash rockets - UseHashRocketsWithSymbolValues: false - # Do not suggest { a?: 1 } over { :a? => 1 } in ruby19 style - PreferHashRocketsForNonAlnumEndingSymbols: false - -Style/IdenticalConditionalBranches: - Description: >- - Checks that conditional statements do not have an identical - line at the end of each branch, which can validly be moved - out of the conditional. - Enabled: true - VersionAdded: '0.36' - -Style/IfInsideElse: - Description: 'Finds if nodes inside else, which can be converted to elsif.' - Enabled: true - AllowIfModifier: false - VersionAdded: '0.36' - -Style/IfUnlessModifier: - Description: >- - Favor modifier if/unless usage when you have a - single-line body. - StyleGuide: '#if-as-a-modifier' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.30' - -Style/IfUnlessModifierOfIfUnless: - Description: >- - Avoid modifier if/unless usage on conditionals. - Enabled: true - VersionAdded: '0.39' - -Style/IfWithSemicolon: - Description: 'Do not use if x; .... Use the ternary operator instead.' - StyleGuide: '#no-semicolon-ifs' - Enabled: true - VersionAdded: '0.9' - -Style/ImplicitRuntimeError: - Description: >- - Use `raise` or `fail` with an explicit exception class and - message, rather than just a message. - Enabled: false - VersionAdded: '0.41' - -Style/InfiniteLoop: - Description: 'Use Kernel#loop for infinite loops.' - StyleGuide: '#infinite-loop' - Enabled: true - VersionAdded: '0.26' - VersionChanged: '0.61' - SafeAutoCorrect: true - -Style/InlineComment: - Description: 'Avoid trailing inline comments.' - Enabled: false - VersionAdded: '0.23' - -Style/InverseMethods: - Description: >- - Use the inverse method instead of `!.method` - if an inverse method is defined. - Enabled: true - Safe: false - VersionAdded: '0.48' - # `InverseMethods` are methods that can be inverted by a not (`not` or `!`) - # The relationship of inverse methods only needs to be defined in one direction. - # Keys and values both need to be defined as symbols. - InverseMethods: - :any?: :none? - :even?: :odd? - :==: :!= - :=~: :!~ - :<: :>= - :>: :<= - # `ActiveSupport` defines some common inverse methods. They are listed below, - # and not enabled by default. - #:present?: :blank?, - #:include?: :exclude? - # `InverseBlocks` are methods that are inverted by inverting the return - # of the block that is passed to the method - InverseBlocks: - :select: :reject - :select!: :reject! - -Style/IpAddresses: - Description: "Don't include literal IP addresses in code." - Enabled: false - VersionAdded: '0.58' - VersionChanged: '0.77' - # Allow addresses to be permitted - AllowedAddresses: - - "::" - # :: is a valid IPv6 address, but could potentially be legitimately in code - -Style/Lambda: - Description: 'Use the new lambda literal syntax for single-line blocks.' - StyleGuide: '#lambda-multi-line' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.40' - EnforcedStyle: line_count_dependent - SupportedStyles: - - line_count_dependent - - lambda - - literal - -Style/LambdaCall: - Description: 'Use lambda.call(...) instead of lambda.(...).' - StyleGuide: '#proc-call' - Enabled: true - VersionAdded: '0.13.1' - VersionChanged: '0.14' - EnforcedStyle: call - SupportedStyles: - - call - - braces - -Style/LineEndConcatenation: - Description: >- - Use \ instead of + or << to concatenate two string literals at - line end. - Enabled: true - SafeAutoCorrect: false - VersionAdded: '0.18' - VersionChanged: '0.64' - -Style/MethodCallWithArgsParentheses: - Description: 'Use parentheses for method calls with arguments.' - StyleGuide: '#method-invocation-parens' - Enabled: false - VersionAdded: '0.47' - VersionChanged: '0.61' - IgnoreMacros: true - IgnoredMethods: [] - IgnoredPatterns: [] - IncludedMacros: [] - AllowParenthesesInMultilineCall: false - AllowParenthesesInChaining: false - AllowParenthesesInCamelCaseMethod: false - EnforcedStyle: require_parentheses - SupportedStyles: - - require_parentheses - - omit_parentheses - -Style/MethodCallWithoutArgsParentheses: - Description: 'Do not use parentheses for method calls with no arguments.' - StyleGuide: '#method-invocation-parens' - Enabled: true - IgnoredMethods: [] - VersionAdded: '0.47' - VersionChanged: '0.55' - -Style/MethodCalledOnDoEndBlock: - Description: 'Avoid chaining a method call on a do...end block.' - StyleGuide: '#single-line-blocks' - Enabled: false - VersionAdded: '0.14' - -Style/MethodDefParentheses: - Description: >- - Checks if the method definitions have or don't have - parentheses. - StyleGuide: '#method-parens' - Enabled: true - VersionAdded: '0.16' - VersionChanged: '0.35' - EnforcedStyle: require_parentheses - SupportedStyles: - - require_parentheses - - require_no_parentheses - - require_no_parentheses_except_multiline - -Style/MethodMissingSuper: - Description: Checks for `method_missing` to call `super`. - StyleGuide: '#no-method-missing' - Enabled: true - VersionAdded: '0.56' - -Style/MinMax: - Description: >- - Use `Enumerable#minmax` instead of `Enumerable#min` - and `Enumerable#max` in conjunction. - Enabled: true - VersionAdded: '0.50' - -Style/MissingElse: - Description: >- - Require if/case expressions to have an else branches. - If enabled, it is recommended that - Style/UnlessElse and Style/EmptyElse be enabled. - This will conflict with Style/EmptyElse if - Style/EmptyElse is configured to style "both". - Enabled: false - VersionAdded: '0.30' - VersionChanged: '0.38' - EnforcedStyle: both - SupportedStyles: - # if - warn when an if expression is missing an else branch - # case - warn when a case expression is missing an else branch - # both - warn when an if or case expression is missing an else branch - - if - - case - - both - -Style/MissingRespondToMissing: - Description: >- - Checks if `method_missing` is implemented - without implementing `respond_to_missing`. - StyleGuide: '#no-method-missing' - Enabled: true - VersionAdded: '0.56' - -Style/MixinGrouping: - Description: 'Checks for grouping of mixins in `class` and `module` bodies.' - StyleGuide: '#mixin-grouping' - Enabled: true - VersionAdded: '0.48' - VersionChanged: '0.49' - EnforcedStyle: separated - SupportedStyles: - # separated: each mixed in module goes in a separate statement. - # grouped: mixed in modules are grouped into a single statement. - - separated - - grouped - -Style/MixinUsage: - Description: 'Checks that `include`, `extend` and `prepend` exists at the top level.' - Enabled: true - VersionAdded: '0.51' - -Style/ModuleFunction: - Description: 'Checks for usage of `extend self` in modules.' - StyleGuide: '#module-function' - Enabled: true - VersionAdded: '0.11' - VersionChanged: '0.65' - EnforcedStyle: module_function - SupportedStyles: - - module_function - - extend_self - Autocorrect: false - SafeAutoCorrect: false - -Style/MultilineBlockChain: - Description: 'Avoid multi-line chains of blocks.' - StyleGuide: '#single-line-blocks' - Enabled: true - VersionAdded: '0.13' - -Style/MultilineIfModifier: - Description: 'Only use if/unless modifiers on single line statements.' - StyleGuide: '#no-multiline-if-modifiers' - Enabled: true - VersionAdded: '0.45' - -Style/MultilineIfThen: - Description: 'Do not use then for multi-line if/unless.' - StyleGuide: '#no-then' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.26' - -Style/MultilineMemoization: - Description: 'Wrap multiline memoizations in a `begin` and `end` block.' - Enabled: true - VersionAdded: '0.44' - VersionChanged: '0.48' - EnforcedStyle: keyword - SupportedStyles: - - keyword - - braces - -Style/MultilineMethodSignature: - Description: 'Avoid multi-line method signatures.' - Enabled: false - VersionAdded: '0.59' - -Style/MultilineTernaryOperator: - Description: >- - Avoid multi-line ?: (the ternary operator); - use if/unless instead. - StyleGuide: '#no-multiline-ternary' - Enabled: true - VersionAdded: '0.9' - -Style/MultilineWhenThen: - Description: 'Do not use then for multi-line when statement.' - StyleGuide: '#no-then' - Enabled: true - VersionAdded: '0.73' - -Style/MultipleComparison: - Description: >- - Avoid comparing a variable with multiple items in a conditional, - use Array#include? instead. - Enabled: true - VersionAdded: '0.49' - -Style/MutableConstant: - Description: 'Do not assign mutable objects to constants.' - Enabled: true - VersionAdded: '0.34' - VersionChanged: '0.65' - EnforcedStyle: literals - SupportedStyles: - # literals: freeze literals assigned to constants - # strict: freeze all constants - # Strict mode is considered an experimental feature. It has not been updated - # with an exhaustive list of all methods that will produce frozen objects so - # there is a decent chance of getting some false positives. Luckily, there is - # no harm in freezing an already frozen object. - - literals - - strict - -Style/NegatedIf: - Description: >- - Favor unless over if for negative conditions - (or control flow or). - StyleGuide: '#unless-for-negatives' - Enabled: true - VersionAdded: '0.20' - VersionChanged: '0.48' - EnforcedStyle: both - SupportedStyles: - # both: prefix and postfix negated `if` should both use `unless` - # prefix: only use `unless` for negated `if` statements positioned before the body of the statement - # postfix: only use `unless` for negated `if` statements positioned after the body of the statement - - both - - prefix - - postfix - -Style/NegatedUnless: - Description: 'Favor if over unless for negative conditions.' - StyleGuide: '#if-for-negatives' - Enabled: true - VersionAdded: '0.69' - EnforcedStyle: both - SupportedStyles: - # both: prefix and postfix negated `unless` should both use `if` - # prefix: only use `if` for negated `unless` statements positioned before the body of the statement - # postfix: only use `if` for negated `unless` statements positioned after the body of the statement - - both - - prefix - - postfix - -Style/NegatedWhile: - Description: 'Favor until over while for negative conditions.' - StyleGuide: '#until-for-negatives' - Enabled: true - VersionAdded: '0.20' - -Style/NestedModifier: - Description: 'Avoid using nested modifiers.' - StyleGuide: '#no-nested-modifiers' - Enabled: true - VersionAdded: '0.35' - -Style/NestedParenthesizedCalls: - Description: >- - Parenthesize method calls which are nested inside the - argument list of another parenthesized method call. - Enabled: true - VersionAdded: '0.36' - VersionChanged: '0.77' - AllowedMethods: - - be - - be_a - - be_an - - be_between - - be_falsey - - be_kind_of - - be_instance_of - - be_truthy - - be_within - - eq - - eql - - end_with - - include - - match - - raise_error - - respond_to - - start_with - -Style/NestedTernaryOperator: - Description: 'Use one expression per branch in a ternary operator.' - StyleGuide: '#no-nested-ternary' - Enabled: true - VersionAdded: '0.9' - -Style/Next: - Description: 'Use `next` to skip iteration instead of a condition at the end.' - StyleGuide: '#no-nested-conditionals' - Enabled: true - VersionAdded: '0.22' - VersionChanged: '0.35' - # With `always` all conditions at the end of an iteration needs to be - # replaced by next - with `skip_modifier_ifs` the modifier if like this one - # are ignored: [1, 2].each { |a| return 'yes' if a == 1 } - EnforcedStyle: skip_modifier_ifs - # `MinBodyLength` defines the number of lines of the a body of an `if` or `unless` - # needs to have to trigger this cop - MinBodyLength: 3 - SupportedStyles: - - skip_modifier_ifs - - always - -Style/NilComparison: - Description: 'Prefer x.nil? to x == nil.' - StyleGuide: '#predicate-methods' - Enabled: true - VersionAdded: '0.12' - VersionChanged: '0.59' - EnforcedStyle: predicate - SupportedStyles: - - predicate - - comparison - -Style/NonNilCheck: - Description: 'Checks for redundant nil checks.' - StyleGuide: '#no-non-nil-checks' - Enabled: true - VersionAdded: '0.20' - VersionChanged: '0.22' - # With `IncludeSemanticChanges` set to `true`, this cop reports offenses for - # `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which is - # **usually** OK, but might change behavior. - # - # With `IncludeSemanticChanges` set to `false`, this cop does not report - # offenses for `!x.nil?` and does no changes that might change behavior. - IncludeSemanticChanges: false - -Style/Not: - Description: 'Use ! instead of not.' - StyleGuide: '#bang-not-not' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.20' - -Style/NumericLiteralPrefix: - Description: 'Use smallcase prefixes for numeric literals.' - StyleGuide: '#numeric-literal-prefixes' - Enabled: true - VersionAdded: '0.41' - EnforcedOctalStyle: zero_with_o - SupportedOctalStyles: - - zero_with_o - - zero_only - - -Style/NumericLiterals: - Description: >- - Add underscores to large numeric literals to improve their - readability. - StyleGuide: '#underscores-in-numerics' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.48' - MinDigits: 5 - Strict: false - -Style/NumericPredicate: - Description: >- - Checks for the use of predicate- or comparison methods for - numeric comparisons. - StyleGuide: '#predicate-methods' - Safe: false - # This will change to a new method call which isn't guaranteed to be on the - # object. Switching these methods has to be done with knowledge of the types - # of the variables which rubocop doesn't have. - SafeAutoCorrect: false - AutoCorrect: false - Enabled: true - VersionAdded: '0.42' - VersionChanged: '0.59' - EnforcedStyle: predicate - SupportedStyles: - - predicate - - comparison - IgnoredMethods: [] - # Exclude RSpec specs because assertions like `expect(1).to be > 0` cause - # false positives. - Exclude: - - 'spec/**/*' - -Style/OneLineConditional: - Description: >- - Favor the ternary operator(?:) over - if/then/else/end constructs. - StyleGuide: '#ternary-operator' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.38' - -Style/OptionHash: - Description: "Don't use option hashes when you can use keyword arguments." - Enabled: false - VersionAdded: '0.33' - VersionChanged: '0.34' - # A list of parameter names that will be flagged by this cop. - SuspiciousParamNames: - - options - - opts - - args - - params - - parameters - -Style/OptionalArguments: - Description: >- - Checks for optional arguments that do not appear at the end - of the argument list. - StyleGuide: '#optional-arguments' - Enabled: true - VersionAdded: '0.33' - -Style/OrAssignment: - Description: 'Recommend usage of double pipe equals (||=) where applicable.' - StyleGuide: '#double-pipe-for-uninit' - Enabled: true - VersionAdded: '0.50' - -Style/ParallelAssignment: - Description: >- - Check for simple usages of parallel assignment. - It will only warn when the number of variables - matches on both sides of the assignment. - StyleGuide: '#parallel-assignment' - Enabled: true - VersionAdded: '0.32' - -Style/ParenthesesAroundCondition: - Description: >- - Don't use parentheses around the condition of an - if/unless/while. - StyleGuide: '#no-parens-around-condition' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.56' - AllowSafeAssignment: true - AllowInMultilineConditions: false - -Style/PercentLiteralDelimiters: - Description: 'Use `%`-literal delimiters consistently.' - StyleGuide: '#percent-literal-braces' - Enabled: true - VersionAdded: '0.19' - # Specify the default preferred delimiter for all types with the 'default' key - # Override individual delimiters (even with default specified) by specifying - # an individual key - PreferredDelimiters: - default: () - '%i': '[]' - '%I': '[]' - '%r': '{}' - '%w': '[]' - '%W': '[]' - VersionChanged: '0.48.1' - -Style/PercentQLiterals: - Description: 'Checks if uses of %Q/%q match the configured preference.' - Enabled: true - VersionAdded: '0.25' - EnforcedStyle: lower_case_q - SupportedStyles: - - lower_case_q # Use `%q` when possible, `%Q` when necessary - - upper_case_q # Always use `%Q` - -Style/PerlBackrefs: - Description: 'Avoid Perl-style regex back references.' - StyleGuide: '#no-perl-regexp-last-matchers' - Enabled: true - VersionAdded: '0.13' - -Style/PreferredHashMethods: - Description: 'Checks use of `has_key?` and `has_value?` Hash methods.' - StyleGuide: '#hash-key' - Enabled: true - Safe: false - VersionAdded: '0.41' - VersionChanged: '0.70' - EnforcedStyle: short - SupportedStyles: - - short - - verbose - -Style/Proc: - Description: 'Use proc instead of Proc.new.' - StyleGuide: '#proc' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.18' - -Style/RaiseArgs: - Description: 'Checks the arguments passed to raise/fail.' - StyleGuide: '#exception-class-messages' - Enabled: true - VersionAdded: '0.14' - VersionChanged: '0.40' - EnforcedStyle: exploded - SupportedStyles: - - compact # raise Exception.new(msg) - - exploded # raise Exception, msg - -Style/RandomWithOffset: - Description: >- - Prefer to use ranges when generating random numbers instead of - integers with offsets. - StyleGuide: '#random-numbers' - Enabled: true - VersionAdded: '0.52' - -Style/RedundantBegin: - Description: "Don't use begin blocks when they are not needed." - StyleGuide: '#begin-implicit' - Enabled: true - VersionAdded: '0.10' - VersionChanged: '0.21' - -Style/RedundantCapitalW: - Description: 'Checks for %W when interpolation is not needed.' - Enabled: true - VersionAdded: '0.76' - -Style/RedundantCondition: - Description: 'Checks for unnecessary conditional expressions.' - Enabled: true - VersionAdded: '0.76' - -Style/RedundantConditional: - Description: "Don't return true/false from a conditional." - Enabled: true - VersionAdded: '0.50' - -Style/RedundantException: - Description: "Checks for an obsolete RuntimeException argument in raise/fail." - StyleGuide: '#no-explicit-runtimeerror' - Enabled: true - VersionAdded: '0.14' - VersionChanged: '0.29' - -Style/RedundantFreeze: - Description: "Checks usages of Object#freeze on immutable objects." - Enabled: true - VersionAdded: '0.34' - VersionChanged: '0.66' - -Style/RedundantInterpolation: - Description: 'Checks for strings that are just an interpolated expression.' - Enabled: true - VersionAdded: '0.76' - -Style/RedundantParentheses: - Description: "Checks for parentheses that seem not to serve any purpose." - Enabled: true - VersionAdded: '0.36' - -Style/RedundantPercentQ: - Description: 'Checks for %q/%Q when single quotes or double quotes would do.' - StyleGuide: '#percent-q' - Enabled: true - VersionAdded: '0.76' - -Style/RedundantReturn: - Description: "Don't use return where it's not required." - StyleGuide: '#no-explicit-return' - Enabled: true - VersionAdded: '0.10' - VersionChanged: '0.14' - # When `true` allows code like `return x, y`. - AllowMultipleReturnValues: false - -Style/RedundantSelf: - Description: "Don't use self where it's not needed." - StyleGuide: '#no-self-unless-required' - Enabled: true - VersionAdded: '0.10' - VersionChanged: '0.13' - -Style/RedundantSort: - Description: >- - Use `min` instead of `sort.first`, - `max_by` instead of `sort_by...last`, etc. - Enabled: true - VersionAdded: '0.76' - -Style/RedundantSortBy: - Description: 'Use `sort` instead of `sort_by { |x| x }`.' - Enabled: true - VersionAdded: '0.36' - -Style/RegexpLiteral: - Description: 'Use / or %r around regular expressions.' - StyleGuide: '#percent-r' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.30' - EnforcedStyle: slashes - # slashes: Always use slashes. - # percent_r: Always use `%r`. - # mixed: Use slashes on single-line regexes, and `%r` on multi-line regexes. - SupportedStyles: - - slashes - - percent_r - - mixed - # If `false`, the cop will always recommend using `%r` if one or more slashes - # are found in the regexp string. - AllowInnerSlashes: false - -Style/RescueModifier: - Description: 'Avoid using rescue in its modifier form.' - StyleGuide: '#no-rescue-modifiers' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.34' - -Style/RescueStandardError: - Description: 'Avoid rescuing without specifying an error class.' - Enabled: true - VersionAdded: '0.52' - EnforcedStyle: explicit - # implicit: Do not include the error class, `rescue` - # explicit: Require an error class `rescue StandardError` - SupportedStyles: - - implicit - - explicit - -Style/ReturnNil: - Description: 'Use return instead of return nil.' - Enabled: false - EnforcedStyle: return - SupportedStyles: - - return - - return_nil - VersionAdded: '0.50' - -Style/SafeNavigation: - Description: >- - This cop transforms usages of a method call safeguarded by - a check for the existence of the object to - safe navigation (`&.`). - Enabled: true - VersionAdded: '0.43' - VersionChanged: '0.77' - # Safe navigation may cause a statement to start returning `nil` in addition - # to whatever it used to return. - ConvertCodeThatCanStartToReturnNil: false - AllowedMethods: - - present? - - blank? - - presence - - try - - try! - -Style/Sample: - Description: >- - Use `sample` instead of `shuffle.first`, - `shuffle.last`, and `shuffle[Integer]`. - Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code' - Enabled: true - VersionAdded: '0.30' - -Style/SelfAssignment: - Description: >- - Checks for places where self-assignment shorthand should have - been used. - StyleGuide: '#self-assignment' - Enabled: true - VersionAdded: '0.19' - VersionChanged: '0.29' - -Style/Semicolon: - Description: "Don't use semicolons to terminate expressions." - StyleGuide: '#no-semicolon' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.19' - # Allow `;` to separate several expressions on the same line. - AllowAsExpressionSeparator: false - -Style/Send: - Description: 'Prefer `Object#__send__` or `Object#public_send` to `send`, as `send` may overlap with existing methods.' - StyleGuide: '#prefer-public-send' - Enabled: false - VersionAdded: '0.33' - -Style/SignalException: - Description: 'Checks for proper usage of fail and raise.' - StyleGuide: '#prefer-raise-over-fail' - Enabled: true - VersionAdded: '0.11' - VersionChanged: '0.37' - EnforcedStyle: only_raise - SupportedStyles: - - only_raise - - only_fail - - semantic - -Style/SingleLineBlockParams: - Description: 'Enforces the names of some block params.' - Enabled: false - VersionAdded: '0.16' - VersionChanged: '0.47' - Methods: - - reduce: - - acc - - elem - - inject: - - acc - - elem - -Style/SingleLineMethods: - Description: 'Avoid single-line methods.' - StyleGuide: '#no-single-line-methods' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.19' - AllowIfMethodIsEmpty: true - -Style/SpecialGlobalVars: - Description: 'Avoid Perl-style global variables.' - StyleGuide: '#no-cryptic-perlisms' - Enabled: true - VersionAdded: '0.13' - VersionChanged: '0.36' - SafeAutoCorrect: false - EnforcedStyle: use_english_names - SupportedStyles: - - use_perl_names - - use_english_names - -Style/StabbyLambdaParentheses: - Description: 'Check for the usage of parentheses around stabby lambda arguments.' - StyleGuide: '#stabby-lambda-with-args' - Enabled: true - VersionAdded: '0.35' - EnforcedStyle: require_parentheses - SupportedStyles: - - require_parentheses - - require_no_parentheses - -Style/StderrPuts: - Description: 'Use `warn` instead of `$stderr.puts`.' - StyleGuide: '#warn' - Enabled: true - VersionAdded: '0.51' - -Style/StringHashKeys: - Description: 'Prefer symbols instead of strings as hash keys.' - StyleGuide: '#symbols-as-keys' - Enabled: false - VersionAdded: '0.52' - VersionChanged: '0.75' - Safe: false - -Style/StringLiterals: - Description: 'Checks if uses of quotes match the configured preference.' - StyleGuide: '#consistent-string-literals' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.36' - EnforcedStyle: single_quotes - SupportedStyles: - - single_quotes - - double_quotes - # If `true`, strings which span multiple lines using `\` for continuation must - # use the same type of quotes on each line. - ConsistentQuotesInMultiline: false - -Style/StringLiteralsInInterpolation: - Description: >- - Checks if uses of quotes inside expressions in interpolated - strings match the configured preference. - Enabled: true - VersionAdded: '0.27' - EnforcedStyle: single_quotes - SupportedStyles: - - single_quotes - - double_quotes - -Style/StringMethods: - Description: 'Checks if configured preferred methods are used over non-preferred.' - Enabled: false - VersionAdded: '0.34' - VersionChanged: '0.34.2' - # Mapping from undesired method to desired_method - # e.g. to use `to_sym` over `intern`: - # - # StringMethods: - # PreferredMethods: - # intern: to_sym - PreferredMethods: - intern: to_sym - -Style/Strip: - Description: 'Use `strip` instead of `lstrip.rstrip`.' - Enabled: true - VersionAdded: '0.36' - -Style/StructInheritance: - Description: 'Checks for inheritance from Struct.new.' - StyleGuide: '#no-extend-struct-new' - Enabled: true - VersionAdded: '0.29' - -Style/SymbolArray: - Description: 'Use %i or %I for arrays of symbols.' - StyleGuide: '#percent-i' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.49' - EnforcedStyle: percent - MinSize: 2 - SupportedStyles: - - percent - - brackets - -Style/SymbolLiteral: - Description: 'Use plain symbols instead of string symbols when possible.' - Enabled: true - VersionAdded: '0.30' - -Style/SymbolProc: - Description: 'Use symbols as procs instead of blocks when possible.' - Enabled: true - SafeAutoCorrect: false - VersionAdded: '0.26' - VersionChanged: '0.64' - # A list of method names to be ignored by the check. - # The names should be fairly unique, otherwise you'll end up ignoring lots of code. - IgnoredMethods: - - respond_to - - define_method - -Style/TernaryParentheses: - Description: 'Checks for use of parentheses around ternary conditions.' - Enabled: true - VersionAdded: '0.42' - VersionChanged: '0.46' - EnforcedStyle: require_no_parentheses - SupportedStyles: - - require_parentheses - - require_no_parentheses - - require_parentheses_when_complex - AllowSafeAssignment: true - -Style/TrailingBodyOnClass: - Description: 'Class body goes below class statement.' - Enabled: true - VersionAdded: '0.53' - -Style/TrailingBodyOnMethodDefinition: - Description: 'Method body goes below definition.' - Enabled: true - VersionAdded: '0.52' - -Style/TrailingBodyOnModule: - Description: 'Module body goes below module statement.' - Enabled: true - VersionAdded: '0.53' - -Style/TrailingCommaInArguments: - Description: 'Checks for trailing comma in argument lists.' - StyleGuide: '#no-trailing-params-comma' - Enabled: true - VersionAdded: '0.36' - # If `comma`, the cop requires a comma after the last argument, but only for - # parenthesized method calls where each argument is on its own line. - # If `consistent_comma`, the cop requires a comma after the last argument, - # for all parenthesized method calls with arguments. - EnforcedStyleForMultiline: no_comma - SupportedStylesForMultiline: - - comma - - consistent_comma - - no_comma - -Style/TrailingCommaInArrayLiteral: - Description: 'Checks for trailing comma in array literals.' - StyleGuide: '#no-trailing-array-commas' - Enabled: true - VersionAdded: '0.53' - # but only when each item is on its own line. - # If `consistent_comma`, the cop requires a comma after the last item of all - # non-empty array literals. - EnforcedStyleForMultiline: no_comma - SupportedStylesForMultiline: - - comma - - consistent_comma - - no_comma - -Style/TrailingCommaInHashLiteral: - Description: 'Checks for trailing comma in hash literals.' - Enabled: true - # If `comma`, the cop requires a comma after the last item in a hash, - # but only when each item is on its own line. - # If `consistent_comma`, the cop requires a comma after the last item of all - # non-empty hash literals. - EnforcedStyleForMultiline: no_comma - SupportedStylesForMultiline: - - comma - - consistent_comma - - no_comma - VersionAdded: '0.53' - -Style/TrailingMethodEndStatement: - Description: 'Checks for trailing end statement on line of method body.' - Enabled: true - VersionAdded: '0.52' - -Style/TrailingUnderscoreVariable: - Description: >- - Checks for the usage of unneeded trailing underscores at the - end of parallel variable assignment. - AllowNamedUnderscoreVariables: true - Enabled: true - VersionAdded: '0.31' - VersionChanged: '0.35' - -# `TrivialAccessors` requires exact name matches and doesn't allow -# predicated methods by default. -Style/TrivialAccessors: - Description: 'Prefer attr_* methods to trivial readers/writers.' - StyleGuide: '#attr_family' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.77' - # When set to `false` the cop will suggest the use of accessor methods - # in situations like: - # - # def name - # @other_name - # end - # - # This way you can uncover "hidden" attributes in your code. - ExactNameMatch: true - AllowPredicates: true - # Allows trivial writers that don't end in an equal sign. e.g. - # - # def on_exception(action) - # @on_exception=action - # end - # on_exception :restart - # - # Commonly used in DSLs - AllowDSLWriters: false - IgnoreClassMethods: false - AllowedMethods: - - to_ary - - to_a - - to_c - - to_enum - - to_h - - to_hash - - to_i - - to_int - - to_io - - to_open - - to_path - - to_proc - - to_r - - to_regexp - - to_str - - to_s - - to_sym - -Style/UnlessElse: - Description: >- - Do not use unless with else. Rewrite these with the positive - case first. - StyleGuide: '#no-else-with-unless' - Enabled: true - VersionAdded: '0.9' - -Style/UnpackFirst: - Description: >- - Checks for accessing the first element of `String#unpack` - instead of using `unpack1`. - Enabled: true - VersionAdded: '0.54' - -Style/VariableInterpolation: - Description: >- - Don't interpolate global, instance and class variables - directly in strings. - StyleGuide: '#curlies-interpolate' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.20' - -Style/WhenThen: - Description: 'Use when x then ... for one-line cases.' - StyleGuide: '#one-line-cases' - Enabled: true - VersionAdded: '0.9' - -Style/WhileUntilDo: - Description: 'Checks for redundant do after while or until.' - StyleGuide: '#no-multiline-while-do' - Enabled: true - VersionAdded: '0.9' - -Style/WhileUntilModifier: - Description: >- - Favor modifier while/until usage when you have a - single-line body. - StyleGuide: '#while-as-a-modifier' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.30' - -Style/WordArray: - Description: 'Use %w or %W for arrays of words.' - StyleGuide: '#percent-w' - Enabled: true - VersionAdded: '0.9' - VersionChanged: '0.36' - EnforcedStyle: percent - SupportedStyles: - # percent style: %w(word1 word2) - - percent - # bracket style: ['word1', 'word2'] - - brackets - # The `MinSize` option causes the `WordArray` rule to be ignored for arrays - # smaller than a certain size. The rule is only applied to arrays - # whose element count is greater than or equal to `MinSize`. - MinSize: 2 - # The regular expression `WordRegex` decides what is considered a word. - WordRegex: !ruby/regexp '/\A(?:\p{Word}|\p{Word}-\p{Word}|\n|\t)+\z/' - -Style/YodaCondition: - Description: 'Forbid or enforce yoda conditions.' - Reference: 'https://en.wikipedia.org/wiki/Yoda_conditions' - Enabled: true - EnforcedStyle: forbid_for_all_comparison_operators - SupportedStyles: - # check all comparison operators - - forbid_for_all_comparison_operators - # check only equality operators: `!=` and `==` - - forbid_for_equality_operators_only - # enforce yoda for all comparison operators - - require_for_all_comparison_operators - # enforce yoda only for equality operators: `!=` and `==` - - require_for_equality_operators_only - Safe: false - VersionAdded: '0.49' - VersionChanged: '0.75' - -Style/ZeroLengthPredicate: - Description: 'Use #empty? when testing for objects of length 0.' - Enabled: true - Safe: false - VersionAdded: '0.37' - VersionChanged: '0.39' diff --git a/README.md b/README.md new file mode 100644 index 0000000..a258221 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +Use [rcm](https://thoughtbot.github.io/rcm/rcm) + +rcup -v diff --git a/.Xresources b/Xresources similarity index 100% rename from .Xresources rename to Xresources diff --git a/Xresources.d/ansi-us-colemak-dh-z.xmodmap b/Xresources.d/ansi-us-colemak-dh-z.xmodmap new file mode 100644 index 0000000..7456327 --- /dev/null +++ b/Xresources.d/ansi-us-colemak-dh-z.xmodmap @@ -0,0 +1,277 @@ +! xmodmap for the Colemak Mod-DH layout (US, ANSI keyboard, Z angle mod). +! http://colemakmods.github.io/mod-dh/. +! Public domain. + +keycode 49 = grave asciitilde dead_tilde asciitilde +keycode 10 = 1 exclam exclamdown onesuperior +keycode 11 = 2 at masculine twosuperior +keycode 12 = 3 numbersign ordfeminine threesuperior +keycode 13 = 4 dollar cent sterling +keycode 14 = 5 percent EuroSign yen +keycode 15 = 6 asciicircum hstroke Hstroke +keycode 16 = 7 ampersand eth ETH +keycode 17 = 8 asterisk thorn THORN +keycode 18 = 9 parenleft leftsinglequotemark leftdoublequotemark +keycode 19 = 0 parenright rightsinglequotemark rightdoublequotemark +keycode 20 = minus underscore endash emdash +keycode 21 = equal plus multiply division + +keycode 24 = q Q adiaeresis Adiaeresis +keycode 25 = w W aring Aring +keycode 26 = f F atilde Atilde +keycode 27 = p P oslash Ooblique +keycode 28 = b B dead_breve asciitilde +keycode 29 = j J dstroke Dstroke +keycode 30 = l L lstroke Lstroke +keycode 31 = u U uacute Uacute +keycode 32 = y Y udiaeresis Udiaeresis +keycode 33 = semicolon colon odiaeresis Odiaeresis +keycode 34 = bracketleft braceleft guillemotleft U2039 +keycode 35 = bracketright braceright guillemotright U203a +keycode 51 = backslash bar asciitilde asciitilde + +keycode 38 = a A aacute Aacute +keycode 39 = r R dead_grave asciitilde +keycode 40 = s S ssharp asciitilde +keycode 41 = t T dead_acute dead_doubleacute +keycode 42 = g G dead_ogonek asciitilde +keycode 43 = k K dead_abovering asciitilde +keycode 44 = n N ntilde Ntilde +keycode 45 = e E eacute Eacute +keycode 46 = i I iacute Iacute +keycode 47 = o O oacute Oacute +keycode 48 = apostrophe quotedbl otilde Otilde + +keycode 94 = minus underscore endash emdash +keycode 52 = x X dead_circumflex asciitilde +keycode 53 = c C ccedilla Ccedilla +keycode 54 = d D dead_diaeresis asciitilde +keycode 55 = v V oe OE +keycode 56 = z Z ae AE +keycode 57 = m M dead_macron asciitilde +keycode 58 = h H dead_caron asciitilde +keycode 59 = comma less dead_cedilla asciitilde +keycode 60 = period greater dead_abovedot asciitilde +keycode 61 = slash question questiondown asciitilde + +keycode 65 = space space space nobreakspace + +keycode 108 = Mode_switch Mode_switch + +! Remove these 2 lines if you want caps lock unmodified +!keycode 66 = BackSpace BackSpace BackSpace BackSpace +!clear Lock + +!clear Shift +!clear Control +!clear Mod1 +!clear Mod2 +!clear Mod3 +!clear Mod4 +!clear Mod5 + +!add Shift = Shift_L Shift_R +!add Control = Control_L Control_R +!add Mod1 = Alt_L Alt_R +!add Mod2 = Num_Lock +!add Mod4 = Meta_L Meta_R +!add Mod5 = Scroll_Lock + +!keycode 9 = Escape +!keycode 22 = BackSpace Terminate_Server +!keycode 23 = Tab ISO_Left_Tab +!keycode 36 = Return +!keycode 37 = Control_L +!keycode 50 = Shift_L +!keycode 62 = Shift_R +!keycode 63 = KP_Multiply XF86_ClearGrab +!keycode 64 = Alt_L Meta_L +!keycode 67 = F1 XF86_Switch_VT_1 +!keycode 68 = F2 XF86_Switch_VT_2 +!keycode 69 = F3 XF86_Switch_VT_3 +!keycode 70 = F4 XF86_Switch_VT_4 +!keycode 71 = F5 XF86_Switch_VT_5 +!keycode 72 = F6 XF86_Switch_VT_6 +!keycode 73 = F7 XF86_Switch_VT_7 +!keycode 74 = F8 XF86_Switch_VT_8 +!keycode 75 = F9 XF86_Switch_VT_9 +!keycode 76 = F10 XF86_Switch_VT_10 +!keycode 95 = F11 XF86_Switch_VT_11 +!keycode 96 = F12 XF86_Switch_VT_12 +!keycode 77 = Num_Lock Pointer_EnableKeys +!keycode 78 = Scroll_Lock +!keycode 79 = KP_Home KP_7 +!keycode 80 = KP_Up KP_8 +!keycode 81 = KP_Prior KP_9 +!keycode 82 = KP_Subtract XF86_Prev_VMode +!keycode 83 = KP_Left KP_4 +!keycode 84 = KP_Begin KP_5 +!keycode 85 = KP_Right KP_6 +!keycode 86 = KP_Add XF86_Next_VMode +!keycode 87 = KP_End KP_1 +!keycode 88 = KP_Down KP_2 +!keycode 89 = KP_Next KP_3 +!keycode 90 = KP_Insert KP_0 +!keycode 91 = KP_Delete KP_Decimal +!keycode 92 = Print Sys_Req +!keycode 93 = Mode_switch +!keycode 97 = Home +!keycode 98 = Up +!keycode 99 = Prior +!keycode 100 = Left +!keycode 102 = Right +!keycode 103 = End +!keycode 104 = Down +!keycode 105 = Next +!keycode 106 = Insert +!keycode 107 = Delete +!keycode 108 = KP_Enter +!keycode 109 = Control_R +!keycode 110 = Pause Break +!keycode 111 = Print Sys_Req +!keycode 112 = KP_Divide XF86_Ungrab +!keycode 114 = Pause Break +!keycode 115 = Super_L +!keycode 116 = Super_R +!keycode 117 = Menu +!keycode 124 = ISO_Level3_Shift +!keycode 125 = NoSymbol Alt_L +!keycode 126 = KP_Equal +!keycode 127 = NoSymbol Super_L +!keycode 128 = NoSymbol Hyper_L +!keycode 156 = NoSymbol Meta_L + +!keycode 8 = +!keycode 101 = +!keycode 118 = +!keycode 119 = +!keycode 120 = +!keycode 121 = +!keycode 122 = +!keycode 123 = +!keycode 129 = +!keycode 130 = +!keycode 131 = +!keycode 132 = +!keycode 133 = +!keycode 134 = +!keycode 135 = +!keycode 136 = +!keycode 137 = +!keycode 138 = +!keycode 139 = +!keycode 140 = +!keycode 141 = +!keycode 142 = +!keycode 143 = +!keycode 144 = +!keycode 145 = +!keycode 146 = +!keycode 147 = +!keycode 148 = +!keycode 149 = +!keycode 150 = +!keycode 151 = +!keycode 152 = +!keycode 153 = +!keycode 154 = +!keycode 155 = +!keycode 157 = +!keycode 158 = +!keycode 159 = +!keycode 160 = +!keycode 161 = +!keycode 162 = +!keycode 163 = +!keycode 164 = +!keycode 165 = +!keycode 166 = +!keycode 167 = +!keycode 168 = +!keycode 169 = +!keycode 170 = +!keycode 171 = +!keycode 172 = +!keycode 173 = +!keycode 174 = +!keycode 175 = +!keycode 176 = +!keycode 177 = +!keycode 178 = +!keycode 179 = +!keycode 180 = +!keycode 181 = +!keycode 182 = +!keycode 183 = +!keycode 184 = +!keycode 185 = +!keycode 186 = +!keycode 187 = +!keycode 188 = +!keycode 189 = +!keycode 190 = +!keycode 191 = +!keycode 192 = +!keycode 193 = +!keycode 194 = +!keycode 195 = +!keycode 196 = +!keycode 197 = +!keycode 198 = +!keycode 199 = +!keycode 200 = +!keycode 201 = +!keycode 202 = +!keycode 203 = +!keycode 204 = +!keycode 205 = +!keycode 206 = +!keycode 207 = +!keycode 208 = +!keycode 209 = +!keycode 210 = +!keycode 211 = +!keycode 212 = +!keycode 213 = +!keycode 214 = +!keycode 215 = +!keycode 216 = +!keycode 217 = +!keycode 218 = +!keycode 219 = +!keycode 220 = +!keycode 221 = +!keycode 222 = +!keycode 223 = +!keycode 224 = +!keycode 225 = +!keycode 226 = +!keycode 227 = +!keycode 228 = +!keycode 229 = +!keycode 230 = +!keycode 231 = +!keycode 232 = +!keycode 233 = +!keycode 234 = +!keycode 235 = +!keycode 236 = +!keycode 237 = +!keycode 238 = +!keycode 239 = +!keycode 240 = +!keycode 241 = +!keycode 242 = +!keycode 243 = +!keycode 244 = +!keycode 245 = +!keycode 246 = +!keycode 247 = +!keycode 248 = +!keycode 249 = +!keycode 250 = +!keycode 251 = +!keycode 252 = +!keycode 253 = +!keycode 254 = +!keycode 255 = diff --git a/.Xresources.d/base16-gruvbox-dark-hard-256 b/Xresources.d/base16-gruvbox-dark-hard-256 similarity index 100% rename from .Xresources.d/base16-gruvbox-dark-hard-256 rename to Xresources.d/base16-gruvbox-dark-hard-256 diff --git a/.Xresources.d/st b/Xresources.d/st similarity index 92% rename from .Xresources.d/st rename to Xresources.d/st index 1fb6243..58d68e3 100644 --- a/.Xresources.d/st +++ b/Xresources.d/st @@ -8,7 +8,7 @@ st.termname: xterm-256color ! st.shell: /bin/sh ! The following options options can be reloaded via USR1 signal. -st.font: Iosevka\ Term-11:medium:antialias=true:autohint=false:hintstyle=hintslight:rgba=rgba:lcdfilter:lcddefault; +st.font: Iosevka\ Term:Medium:pixelsize=14; st.bold_font: 1 st.borderpx: 0 ! Available cursor values: 2 4 6 7 = █ _ | ☃ ( 1 3 5 are blinking versions) @@ -25,6 +25,7 @@ st.actionfps: 30 st.mouseScrollLines: 1 ! Kerning / character bounding-box height multiplier st.chscale: 0.95 +! st.chscale: 1.0 ! Kerning / character bounding-box width multiplier st.cwscale: 1.0 ! blinking timeout for terminal and cursor blinking (0 disables) diff --git a/Xresources.d/xmodmap.orig b/Xresources.d/xmodmap.orig new file mode 100644 index 0000000..283a15d --- /dev/null +++ b/Xresources.d/xmodmap.orig @@ -0,0 +1,248 @@ +keycode 8 = +keycode 9 = Escape NoSymbol Escape +keycode 10 = 1 exclam 1 exclam +keycode 11 = 2 at 2 quotedbl +keycode 12 = 3 numbersign 3 numerosign +keycode 13 = 4 dollar 4 semicolon +keycode 14 = 5 percent 5 percent +keycode 15 = 6 asciicircum 6 colon +keycode 16 = 7 ampersand 7 question +keycode 17 = 8 asterisk 8 asterisk U20BD +keycode 18 = 9 parenleft 9 parenleft +keycode 19 = 0 parenright 0 parenright +keycode 20 = minus underscore minus underscore +keycode 21 = equal plus equal plus +keycode 22 = BackSpace BackSpace BackSpace BackSpace +keycode 23 = Tab ISO_Left_Tab Tab ISO_Left_Tab +keycode 24 = q Q Cyrillic_shorti Cyrillic_SHORTI +keycode 25 = w W Cyrillic_tse Cyrillic_TSE +keycode 26 = e E Cyrillic_u Cyrillic_U +keycode 27 = r R Cyrillic_ka Cyrillic_KA +keycode 28 = t T Cyrillic_ie Cyrillic_IE +keycode 29 = y Y Cyrillic_en Cyrillic_EN +keycode 30 = u U Cyrillic_ghe Cyrillic_GHE +keycode 31 = i I Cyrillic_sha Cyrillic_SHA +keycode 32 = o O Cyrillic_shcha Cyrillic_SHCHA +keycode 33 = p P Cyrillic_ze Cyrillic_ZE +keycode 34 = bracketleft braceleft Cyrillic_ha Cyrillic_HA +keycode 35 = bracketright braceright Cyrillic_hardsign Cyrillic_HARDSIGN +keycode 36 = Return NoSymbol Return +keycode 37 = Control_L NoSymbol Control_L +keycode 38 = a A Cyrillic_ef Cyrillic_EF +keycode 39 = s S Cyrillic_yeru Cyrillic_YERU +keycode 40 = d D Cyrillic_ve Cyrillic_VE +keycode 41 = f F Cyrillic_a Cyrillic_A +keycode 42 = g G Cyrillic_pe Cyrillic_PE +keycode 43 = h H Cyrillic_er Cyrillic_ER +keycode 44 = j J Cyrillic_o Cyrillic_O +keycode 45 = k K Cyrillic_el Cyrillic_EL +keycode 46 = l L Cyrillic_de Cyrillic_DE +keycode 47 = semicolon colon Cyrillic_zhe Cyrillic_ZHE +keycode 48 = apostrophe quotedbl Cyrillic_e Cyrillic_E +keycode 49 = grave asciitilde Cyrillic_io Cyrillic_IO +keycode 50 = Shift_L NoSymbol Shift_L +keycode 51 = backslash bar backslash slash +keycode 52 = z Z Cyrillic_ya Cyrillic_YA +keycode 53 = x X Cyrillic_che Cyrillic_CHE +keycode 54 = c C Cyrillic_es Cyrillic_ES +keycode 55 = v V Cyrillic_em Cyrillic_EM +keycode 56 = b B Cyrillic_i Cyrillic_I +keycode 57 = n N Cyrillic_te Cyrillic_TE +keycode 58 = m M Cyrillic_softsign Cyrillic_SOFTSIGN +keycode 59 = comma less Cyrillic_be Cyrillic_BE +keycode 60 = period greater Cyrillic_yu Cyrillic_YU +keycode 61 = slash question period comma +keycode 62 = Shift_R NoSymbol Shift_R +keycode 63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab KP_Multiply KP_Multiply XF86ClearGrab +keycode 64 = Alt_L Meta_L Alt_L Meta_L +keycode 65 = space ISO_Next_Group space ISO_Next_Group +keycode 66 = Escape NoSymbol Escape +keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1 F1 F1 XF86Switch_VT_1 +keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2 F2 F2 XF86Switch_VT_2 +keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3 F3 F3 XF86Switch_VT_3 +keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4 F4 F4 XF86Switch_VT_4 +keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5 F5 F5 XF86Switch_VT_5 +keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6 F6 F6 XF86Switch_VT_6 +keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7 F7 F7 XF86Switch_VT_7 +keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8 F8 F8 XF86Switch_VT_8 +keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9 F9 F9 XF86Switch_VT_9 +keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10 F10 F10 XF86Switch_VT_10 +keycode 77 = Num_Lock NoSymbol Num_Lock +keycode 78 = Scroll_Lock NoSymbol Scroll_Lock +keycode 79 = KP_Home KP_7 KP_Home KP_7 +keycode 80 = KP_Up KP_8 KP_Up KP_8 +keycode 81 = KP_Prior KP_9 KP_Prior KP_9 +keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode KP_Subtract KP_Subtract XF86Prev_VMode +keycode 83 = KP_Left KP_4 KP_Left KP_4 +keycode 84 = KP_Begin KP_5 KP_Begin KP_5 +keycode 85 = KP_Right KP_6 KP_Right KP_6 +keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode KP_Add KP_Add XF86Next_VMode +keycode 87 = KP_End KP_1 KP_End KP_1 +keycode 88 = KP_Down KP_2 KP_Down KP_2 +keycode 89 = KP_Next KP_3 KP_Next KP_3 +keycode 90 = KP_Insert KP_0 KP_Insert KP_0 +keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Separator +keycode 92 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift +keycode 93 = +keycode 94 = less greater slash bar bar brokenbar +keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11 F11 F11 XF86Switch_VT_11 +keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12 F12 F12 XF86Switch_VT_12 +keycode 97 = +keycode 98 = Katakana NoSymbol Katakana +keycode 99 = Hiragana NoSymbol Hiragana +keycode 100 = Henkan_Mode NoSymbol Henkan_Mode +keycode 101 = Hiragana_Katakana NoSymbol Hiragana_Katakana +keycode 102 = Muhenkan NoSymbol Muhenkan +keycode 103 = +keycode 104 = KP_Enter NoSymbol KP_Enter +keycode 105 = Control_R NoSymbol Control_R +keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab KP_Divide KP_Divide XF86Ungrab +keycode 107 = Print Sys_Req Print Sys_Req +keycode 108 = Alt_R Meta_R Alt_R Meta_R +keycode 109 = Linefeed NoSymbol Linefeed +keycode 110 = Home NoSymbol Home +keycode 111 = Up NoSymbol Up +keycode 112 = Prior NoSymbol Prior +keycode 113 = Left NoSymbol Left +keycode 114 = Right NoSymbol Right +keycode 115 = End NoSymbol End +keycode 116 = Down NoSymbol Down +keycode 117 = Next NoSymbol Next +keycode 118 = Insert NoSymbol Insert +keycode 119 = Delete NoSymbol Delete +keycode 120 = +keycode 121 = XF86AudioMute NoSymbol XF86AudioMute +keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume +keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume +keycode 124 = XF86PowerOff NoSymbol XF86PowerOff +keycode 125 = KP_Equal NoSymbol KP_Equal +keycode 126 = plusminus NoSymbol plusminus +keycode 127 = Pause Break Pause Break +keycode 128 = XF86LaunchA NoSymbol XF86LaunchA +keycode 129 = KP_Decimal KP_Decimal KP_Decimal KP_Decimal +keycode 130 = Hangul NoSymbol Hangul +keycode 131 = Hangul_Hanja NoSymbol Hangul_Hanja +keycode 132 = +keycode 133 = Super_L NoSymbol Super_L +keycode 134 = Super_R NoSymbol Super_R +keycode 135 = Menu NoSymbol Menu +keycode 136 = Cancel NoSymbol Cancel +keycode 137 = Redo NoSymbol Redo +keycode 138 = SunProps NoSymbol SunProps +keycode 139 = Undo NoSymbol Undo +keycode 140 = SunFront NoSymbol SunFront +keycode 141 = XF86Copy NoSymbol XF86Copy +keycode 142 = XF86Open NoSymbol XF86Open +keycode 143 = XF86Paste NoSymbol XF86Paste +keycode 144 = Find NoSymbol Find +keycode 145 = XF86Cut NoSymbol XF86Cut +keycode 146 = Help NoSymbol Help +keycode 147 = XF86MenuKB NoSymbol XF86MenuKB +keycode 148 = XF86Calculator NoSymbol XF86Calculator +keycode 149 = +keycode 150 = XF86Sleep NoSymbol XF86Sleep +keycode 151 = XF86WakeUp NoSymbol XF86WakeUp +keycode 152 = XF86Explorer NoSymbol XF86Explorer +keycode 153 = XF86Send NoSymbol XF86Send +keycode 154 = +keycode 155 = XF86Xfer NoSymbol XF86Xfer +keycode 156 = XF86Launch1 NoSymbol XF86Launch1 +keycode 157 = XF86Launch2 NoSymbol XF86Launch2 +keycode 158 = XF86WWW NoSymbol XF86WWW +keycode 159 = XF86DOS NoSymbol XF86DOS +keycode 160 = XF86ScreenSaver NoSymbol XF86ScreenSaver +keycode 161 = XF86RotateWindows NoSymbol XF86RotateWindows +keycode 162 = XF86TaskPane NoSymbol XF86TaskPane +keycode 163 = XF86Mail NoSymbol XF86Mail +keycode 164 = XF86Favorites NoSymbol XF86Favorites +keycode 165 = XF86MyComputer NoSymbol XF86MyComputer +keycode 166 = XF86Back NoSymbol XF86Back +keycode 167 = XF86Forward NoSymbol XF86Forward +keycode 168 = +keycode 169 = XF86Eject NoSymbol XF86Eject +keycode 170 = XF86Eject XF86Eject XF86Eject XF86Eject +keycode 171 = XF86AudioNext NoSymbol XF86AudioNext +keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause +keycode 173 = XF86AudioPrev NoSymbol XF86AudioPrev +keycode 174 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject +keycode 175 = XF86AudioRecord NoSymbol XF86AudioRecord +keycode 176 = XF86AudioRewind NoSymbol XF86AudioRewind +keycode 177 = XF86Phone NoSymbol XF86Phone +keycode 178 = +keycode 179 = XF86Tools NoSymbol XF86Tools +keycode 180 = XF86HomePage NoSymbol XF86HomePage +keycode 181 = XF86Reload NoSymbol XF86Reload +keycode 182 = XF86Close NoSymbol XF86Close +keycode 183 = +keycode 184 = +keycode 185 = XF86ScrollUp NoSymbol XF86ScrollUp +keycode 186 = XF86ScrollDown NoSymbol XF86ScrollDown +keycode 187 = parenleft NoSymbol parenleft +keycode 188 = parenright NoSymbol parenright +keycode 189 = XF86New NoSymbol XF86New +keycode 190 = Redo NoSymbol Redo +keycode 191 = XF86Tools NoSymbol XF86Tools +keycode 192 = XF86Launch5 NoSymbol XF86Launch5 +keycode 193 = XF86Launch6 NoSymbol XF86Launch6 +keycode 194 = XF86Launch7 NoSymbol XF86Launch7 +keycode 195 = XF86Launch8 NoSymbol XF86Launch8 +keycode 196 = XF86Launch9 NoSymbol XF86Launch9 +keycode 197 = +keycode 198 = XF86AudioMicMute NoSymbol XF86AudioMicMute +keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle +keycode 200 = XF86TouchpadOn NoSymbol XF86TouchpadOn +keycode 201 = XF86TouchpadOff NoSymbol XF86TouchpadOff +keycode 202 = +keycode 203 = Mode_switch NoSymbol Mode_switch +keycode 204 = NoSymbol Alt_L NoSymbol Alt_L +keycode 205 = NoSymbol Meta_L NoSymbol Meta_L +keycode 206 = NoSymbol Super_L NoSymbol Super_L +keycode 207 = NoSymbol Hyper_L NoSymbol Hyper_L +keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay +keycode 209 = XF86AudioPause NoSymbol XF86AudioPause +keycode 210 = XF86Launch3 NoSymbol XF86Launch3 +keycode 211 = XF86Launch4 NoSymbol XF86Launch4 +keycode 212 = XF86LaunchB NoSymbol XF86LaunchB +keycode 213 = XF86Suspend NoSymbol XF86Suspend +keycode 214 = XF86Close NoSymbol XF86Close +keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay +keycode 216 = XF86AudioForward NoSymbol XF86AudioForward +keycode 217 = +keycode 218 = Print NoSymbol Print +keycode 219 = +keycode 220 = XF86WebCam NoSymbol XF86WebCam +keycode 221 = XF86AudioPreset NoSymbol XF86AudioPreset +keycode 222 = +keycode 223 = XF86Mail NoSymbol XF86Mail +keycode 224 = XF86Messenger NoSymbol XF86Messenger +keycode 225 = XF86Search NoSymbol XF86Search +keycode 226 = XF86Go NoSymbol XF86Go +keycode 227 = XF86Finance NoSymbol XF86Finance +keycode 228 = XF86Game NoSymbol XF86Game +keycode 229 = XF86Shop NoSymbol XF86Shop +keycode 230 = +keycode 231 = Cancel NoSymbol Cancel +keycode 232 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown +keycode 233 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp +keycode 234 = XF86AudioMedia NoSymbol XF86AudioMedia +keycode 235 = XF86Display NoSymbol XF86Display +keycode 236 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff +keycode 237 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown +keycode 238 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp +keycode 239 = XF86Send NoSymbol XF86Send +keycode 240 = XF86Reply NoSymbol XF86Reply +keycode 241 = XF86MailForward NoSymbol XF86MailForward +keycode 242 = XF86Save NoSymbol XF86Save +keycode 243 = XF86Documents NoSymbol XF86Documents +keycode 244 = XF86Battery NoSymbol XF86Battery +keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth +keycode 246 = XF86WLAN NoSymbol XF86WLAN +keycode 247 = +keycode 248 = +keycode 249 = +keycode 250 = +keycode 251 = XF86MonBrightnessCycle NoSymbol XF86MonBrightnessCycle +keycode 252 = +keycode 253 = +keycode 254 = XF86WWAN NoSymbol XF86WWAN +keycode 255 = XF86RFKill NoSymbol XF86RFKill diff --git a/.ackrc b/ackrc similarity index 100% rename from .ackrc rename to ackrc diff --git a/.agignore b/agignore similarity index 100% rename from .agignore rename to agignore diff --git a/.ansible.cfg b/ansible.cfg similarity index 100% rename from .ansible.cfg rename to ansible.cfg diff --git a/.bundle-config b/bundle/config similarity index 72% rename from .bundle-config rename to bundle/config index 4f5545c..a85b8fd 100644 --- a/.bundle-config +++ b/bundle/config @@ -1,9 +1,11 @@ --- BUNDLE_BUILD__NOKOGIRI: "--use-system-libraries" +BUNDLE_BUILD__SASSC: "--disable-lto" BUNDLE_PATH: "vendor/bundle" BUNDLE_GEM__COC: "0" BUNDLE_GEM__MIT: "1" -BUNDLE_GEM__TEST: "rspec" +BUNDLE_GEM__TEST: "minitest" BUNDLE_GIT__ALLOW_INSECURE: "true" BUNDLE_PREFER_GEMS_RB: "true" BUNDLE_INIT_GEMS_RB: "true" +BUNDLE_JOBS: "8" diff --git a/config/alacritty/alacritty.yml b/config/alacritty/alacritty.yml new file mode 100644 index 0000000..5b1e33a --- /dev/null +++ b/config/alacritty/alacritty.yml @@ -0,0 +1,665 @@ +# Configuration for Alacritty, the GPU enhanced terminal emulator. + +# Any items in the `env` entry below will be added as +# environment variables. Some entries may override variables +# set by alacritty itself. +#env: + # TERM variable + # + # This value is used to set the `$TERM` environment variable for + # each instance of Alacritty. If it is not present, alacritty will + # check the local terminfo database and use `alacritty` if it is + # available, otherwise `xterm-256color` is used. + #TERM: alacritty +env: + TERM: xterm-256color + +#window: + # Window dimensions (changes require restart) + # + # Specified in number of columns/lines, not pixels. + # If both are `0`, this setting is ignored. + #dimensions: + # columns: 0 + # lines: 0 + + # Window position (changes require restart) + # + # Specified in number of pixels. + # If the position is not set, the window manager will handle the placement. + #position: + # x: 0 + # y: 0 + + # Window padding (changes require restart) + # + # Blank space added around the window in pixels. This padding is scaled + # by DPI and the specified value is always added at both opposing sides. + #padding: + # x: 0 + # y: 0 + + # Spread additional padding evenly around the terminal content. + #dynamic_padding: false + + # Window decorations + # + # Values for `decorations`: + # - full: Borders and title bar + # - none: Neither borders nor title bar + # + # Values for `decorations` (macOS only): + # - transparent: Title bar, transparent background and title bar buttons + # - buttonless: Title bar, transparent background, but no title bar buttons + #decorations: full + + # Startup Mode (changes require restart) + # + # Values for `startup_mode`: + # - Windowed + # - Maximized + # - Fullscreen + # + # Values for `startup_mode` (macOS only): + # - SimpleFullscreen + #startup_mode: Windowed + + # Window title + #title: Alacritty + + # Window class (Linux/BSD only): + #class: + # Application instance name + #instance: Alacritty + # General application class + #general: Alacritty + + # GTK theme variant (Linux/BSD only) + # + # Override the variant of the GTK theme. Commonly supported values are `dark` and `light`. + # Set this to `None` to use the default theme variant. + #gtk_theme_variant: None + +#scrolling: + # Maximum number of lines in the scrollback buffer. + # Specifying '0' will disable scrolling. + #history: 10000 + + # Number of lines the viewport will move for every line scrolled when + # scrollback is enabled (history > 0). + #multiplier: 3 + +# Font configuration +#font: + # Normal (roman) font face + #normal: + # Font family + # + # Default: + # - (macOS) Menlo + # - (Linux/BSD) monospace + # - (Windows) Consolas + #family: monospace + + # The `style` can be specified to pick a specific face. + #style: Regular + + # Bold font face + #bold: + # Font family + # + # If the bold family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace + + # The `style` can be specified to pick a specific face. + #style: Bold + + # Italic font face + #italic: + # Font family + # + # If the italic family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace + + # The `style` can be specified to pick a specific face. + #style: Italic + + # Bold italic font face + #bold_italic: + # Font family + # + # If the bold italic family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace + + # The `style` can be specified to pick a specific face. + #style: Bold Italic + + # Point size + #size: 11.0 + + # Offset is the extra space around each character. `offset.y` can be thought of + # as modifying the line spacing, and `offset.x` as modifying the letter spacing. + #offset: + # x: 0 + # y: 0 + + # Glyph offset determines the locations of the glyphs within their cells with + # the default being at the bottom. Increasing `x` moves the glyph to the right, + # increasing `y` moves the glyph upwards. + #glyph_offset: + # x: 0 + # y: 0 + + # Thin stroke font rendering (macOS only) + # + # Thin strokes are suitable for retina displays, but for non-retina screens + # it is recommended to set `use_thin_strokes` to `false` + # + # macOS >= 10.14.x: + # + # If the font quality on non-retina display looks bad then set + # `use_thin_strokes` to `true` and enable font smoothing by running the + # following command: + # `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO` + # + # This is a global setting and will require a log out or restart to take + # effect. + #use_thin_strokes: true + +font: + size: 9 + normal: + family: Iosevka Term + style: Medium + bold: + family: Iosevka Term + style: Heavy + italic: + family: Iosevka Term + style: Medium Oblique + bold_italic: + family: Iosevka Term + style: Heavy Oblique + +# If `true`, bold text is drawn using the bright color variants. +draw_bold_text_with_bright_colors: false + +# Colors (Tomorrow Night Bright) +#colors: + # Default colors + #primary: + # background: '#000000' + # foreground: '#eaeaea' + + # Bright and dim foreground colors + # + # The dimmed foreground color is calculated automatically if it is not present. + # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` + # is `false`, the normal foreground color will be used. + #dim_foreground: '#9a9a9a' + #bright_foreground: '#ffffff' + + # Cursor colors + # + # Colors which should be used to draw the terminal cursor. If these are unset, + # the cursor color will be the inverse of the cell color. + #cursor: + # text: '#000000' + # cursor: '#ffffff' + + # Selection colors + # + # Colors which should be used to draw the selection area. If selection + # background is unset, selection color will be the inverse of the cell colors. + # If only text is unset the cell text color will remain the same. + #selection: + # text: '#eaeaea' + # background: '#404040' + + # Normal colors + #normal: + # black: '#000000' + # red: '#d54e53' + # green: '#b9ca4a' + # yellow: '#e6c547' + # blue: '#7aa6da' + # magenta: '#c397d8' + # cyan: '#70c0ba' + # white: '#eaeaea' + + # Bright colors + #bright: + # black: '#666666' + # red: '#ff3334' + # green: '#9ec400' + # yellow: '#e7c547' + # blue: '#7aa6da' + # magenta: '#b77ee0' + # cyan: '#54ced6' + # white: '#ffffff' + + # Dim colors + # + # If the dim colors are not set, they will be calculated automatically based + # on the `normal` colors. + #dim: + # black: '#000000' + # red: '#8c3336' + # green: '#7a8530' + # yellow: '#97822e' + # blue: '#506d8f' + # magenta: '#80638e' + # cyan: '#497e7a' + # white: '#9a9a9a' + + # Indexed Colors + # + # The indexed colors include all colors from 16 to 256. + # When these are not set, they're filled with sensible defaults. + # + # Example: + # `- { index: 16, color: '#ff00ff' }` + # + #indexed_colors: [] + +# Colors (Gruvbox dark) +# colors: +# # Default colors +# primary: +# background: '#1d2021' +# foreground: '#d5c4a1' +# +# # Normal colors +# normal: +# black: '#1d2021' +# red: '#fb4934' +# green: '#b8bb26' +# yellow: '#fabd2f' +# blue: '#83a598' +# magenta: '#d3869b' +# cyan: '#8ec07c' +# white: '#d5c4a1' +# +# # Bright colors +# bright: +# black: '#665c54' +# red: '#fb4934' +# green: '#b8bb26' +# yellow: '#fabd2f' +# blue: '#83a598' +# magenta: '#d3869b' +# cyan: '#8ec07c' +# white: '#d5c4a1' + +colors: + # Default colors + primary: + # background: '#282828' + # hard contrast: + background: '#1d2021' + # soft contrast: background = '#32302f' + foreground: '#d5c4a1' + + # Normal colors + # normal: + # black: '#282828' + # red: '#cc241d' + # green: '#98971a' + # yellow: '#d79921' + # blue: '#458588' + # magenta: '#b16286' + # cyan: '#689d6a' + # white: '#a89984' + + normal: + black: '#1d2021' + red: '#fb4934' + green: '#b8bb26' + yellow: '#fabd2f' + blue: '#83a598' + magenta: '#d3869b' + cyan: '#8ec07c' + white: '#ebdbb2' + + # Bright colors + bright: + black: '#665c54' + red: '#fb4934' + green: '#b8bb26' + yellow: '#fabd2f' + blue: '#83a598' + magenta: '#d3869b' + cyan: '#8ec07c' + white: '#fbf1c7' + +# Visual Bell +# +# Any time the BEL code is received, Alacritty "rings" the visual bell. Once +# rung, the terminal background will be set to white and transition back to the +# default background color. You can control the rate of this transition by +# setting the `duration` property (represented in milliseconds). You can also +# configure the transition function by setting the `animation` property. +# +# Values for `animation`: +# - Ease +# - EaseOut +# - EaseOutSine +# - EaseOutQuad +# - EaseOutCubic +# - EaseOutQuart +# - EaseOutQuint +# - EaseOutExpo +# - EaseOutCirc +# - Linear +# +# Specifying a `duration` of `0` will disable the visual bell. +#visual_bell: +# animation: EaseOutExpo +# duration: 0 +# color: '#ffffff' + +visual_bell: + animation: EaseOutExpo + duration: 100 + color: '#292d2e' + +# Background opacity +# +# Window opacity as a floating point number from `0.0` to `1.0`. +# The value `0.0` is completely transparent and `1.0` is opaque. +#background_opacity: 1.0 + +#selection: + #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" + + # When set to `true`, selected text will be copied to the primary clipboard. + #save_to_clipboard: false + +# Allow terminal applications to change Alacritty's window title. +#dynamic_title: true + +#cursor: + # Cursor style + # + # Values for `style`: + # - ▇ Block + # - _ Underline + # - | Beam + #style: Block + + # If this is `true`, the cursor will be rendered as a hollow box when the + # window is not focused. + #unfocused_hollow: true + +# Live config reload (changes require restart) +live_config_reload: false + +# Shell +# +# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`. +# Entries in `shell.args` are passed unmodified as arguments to the shell. +# +# Default: +# - (macOS) /bin/bash --login +# - (Linux/BSD) user login shell +# - (Windows) powershell +#shell: +# program: /bin/bash +# args: +# - --login +shell: + program: shell + +# Startup directory +# +# Directory the shell is started in. If this is unset, or `None`, the working +# directory of the parent process will be used. +#working_directory: None + +# WinPTY backend (Windows only) +# +# Alacritty defaults to using the newer ConPTY backend if it is available, +# since it resolves a lot of bugs and is quite a bit faster. If it is not +# available, the the WinPTY backend will be used instead. +# +# Setting this option to `true` makes Alacritty use the legacy WinPTY backend, +# even if the ConPTY backend is available. +#winpty_backend: false + +# Send ESC (\x1b) before characters when alt is pressed. +#alt_send_esc: true + +#mouse: + # Click settings + # + # The `double_click` and `triple_click` settings control the time + # alacritty should wait for accepting multiple clicks as one double + # or triple click. + #double_click: { threshold: 300 } + #triple_click: { threshold: 300 } + + # If this is `true`, the cursor is temporarily hidden when typing. + #hide_when_typing: false + + #url: + # URL launcher + # + # This program is executed when clicking on a text which is recognized as a URL. + # The URL is always added to the command as the last parameter. + # + # When set to `None`, URL launching will be disabled completely. + # + # Default: + # - (macOS) open + # - (Linux/BSD) xdg-open + # - (Windows) explorer + #launcher: + # program: xdg-open + # args: [] + + # URL modifiers + # + # These are the modifiers that need to be held down for opening URLs when clicking + # on them. The available modifiers are documented in the key binding section. + #modifiers: None + +# Mouse bindings +# +# Mouse bindings are specified as a list of objects, much like the key +# bindings further below. +# +# To trigger mouse bindings when an application running within Alacritty captures the mouse, the +# `Shift` modifier is automatically added as a requirement. +# +# Each mouse binding will specify a: +# +# - `mouse`: +# +# - Middle +# - Left +# - Right +# - Numeric identifier such as `5` +# +# - `action` (see key bindings) +# +# And optionally: +# +# - `mods` (see key bindings) + +mouse_bindings: + - { mouse: Middle, action: PasteSelection } + +# Key bindings +# +# Key bindings are specified as a list of objects. For example, this is the +# default paste binding: +# +# `- { key: V, mods: Control|Shift, action: Paste }` +# +# Each key binding will specify a: +# +# - `key`: Identifier of the key pressed +# +# - A-Z +# - F1-F24 +# - Key0-Key9 +# +# A full list with available key codes can be found here: +# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants +# +# Instead of using the name of the keys, the `key` field also supports using +# the scancode of the desired key. Scancodes have to be specified as a +# decimal number. This command will allow you to display the hex scancodes +# for certain keys: +# +# `showkey --scancodes`. +# +# Then exactly one of: +# +# - `chars`: Send a byte sequence to the running application +# +# The `chars` field writes the specified string to the terminal. This makes +# it possible to pass escape sequences. To find escape codes for bindings +# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside +# of tmux. Note that applications use terminfo to map escape sequences back +# to keys. It is therefore required to update the terminfo when changing an +# escape sequence. +# +# - `action`: Execute a predefined action +# +# - Copy +# - Paste +# - PasteSelection +# - IncreaseFontSize +# - DecreaseFontSize +# - ResetFontSize +# - ScrollPageUp +# - ScrollPageDown +# - ScrollLineUp +# - ScrollLineDown +# - ScrollToTop +# - ScrollToBottom +# - ClearHistory +# - Hide +# - Minimize +# - Quit +# - ToggleFullscreen +# - SpawnNewInstance +# - ClearLogNotice +# - ReceiveChar +# - None +# +# (macOS only): +# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space +# +# - `command`: Fork and execute a specified command plus arguments +# +# The `command` field must be a map containing a `program` string and an +# `args` array of command line parameter strings. For example: +# `{ program: "alacritty", args: ["-e", "vttest"] }` +# +# And optionally: +# +# - `mods`: Key modifiers to filter binding actions +# +# - Command +# - Control +# - Option +# - Super +# - Shift +# - Alt +# +# Multiple `mods` can be combined using `|` like this: +# `mods: Control|Shift`. +# Whitespace and capitalization are relevant and must match the example. +# +# - `mode`: Indicate a binding for only specific terminal reported modes +# +# This is mainly used to send applications the correct escape sequences +# when in different modes. +# +# - AppCursor +# - AppKeypad +# - Alt +# +# A `~` operator can be used before a mode to apply the binding whenever +# the mode is *not* active, e.g. `~Alt`. +# +# Bindings are always filled by default, but will be replaced when a new +# binding with the same triggers is defined. To unset a default binding, it can +# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for +# a no-op if you do not wish to receive input characters for that binding. +# +# If the same trigger is assigned to multiple actions, all of them are executed +# at once. +#key_bindings: + # (Windows, Linux, and BSD only) + #- { key: V, mods: Control|Shift, action: Paste } + #- { key: C, mods: Control|Shift, action: Copy } + #- { key: Insert, mods: Shift, action: PasteSelection } + #- { key: Key0, mods: Control, action: ResetFontSize } + #- { key: Equals, mods: Control, action: IncreaseFontSize } + #- { key: Add, mods: Control, action: IncreaseFontSize } + #- { key: Subtract, mods: Control, action: DecreaseFontSize } + #- { key: Minus, mods: Control, action: DecreaseFontSize } + + # (Windows only) + #- { key: Return, mods: Alt, action: ToggleFullscreen } + + # (macOS only) + #- { key: Key0, mods: Command, action: ResetFontSize } + #- { key: Equals, mods: Command, action: IncreaseFontSize } + #- { key: Add, mods: Command, action: IncreaseFontSize } + #- { key: Minus, mods: Command, action: DecreaseFontSize } + #- { key: K, mods: Command, action: ClearHistory } + #- { key: K, mods: Command, chars: "\x0c" } + #- { key: V, mods: Command, action: Paste } + #- { key: C, mods: Command, action: Copy } + #- { key: H, mods: Command, action: Hide } + #- { key: M, mods: Command, action: Minimize } + #- { key: Q, mods: Command, action: Quit } + #- { key: W, mods: Command, action: Quit } + #- { key: F, mods: Command|Control, action: ToggleFullscreen } + + #- { key: Paste, action: Paste } + #- { key: Copy, action: Copy } + #- { key: L, mods: Control, action: ClearLogNotice } + #- { key: L, mods: Control, chars: "\x0c" } + #- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt } + #- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt } + #- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt } + #- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt } + +key_bindings: + - { key: V, mods: Control|Shift, action: Paste } + - { key: C, mods: Control|Shift, action: Copy } + - { key: Insert, mods: Shift, action: PasteSelection } + - { key: Key0, mods: Control, action: ResetFontSize } + - { key: Equals, mods: Control, action: IncreaseFontSize } + - { key: Add, mods: Control, action: IncreaseFontSize } + - { key: Subtract, mods: Control, action: DecreaseFontSize } + - { key: Minus, mods: Control, action: DecreaseFontSize } + +#debug: + # Display the time it takes to redraw each frame. + #render_timer: false + + # Keep the log file after quitting Alacritty. + #persistent_logging: false + + # Log level + # + # Values for `log_level`: + # - None + # - Error + # - Warn + # - Info + # - Debug + # - Trace + #log_level: Warn + + # Print all received window events. + #print_events: false diff --git a/config/direnv/direnvrc b/config/direnv/direnvrc new file mode 100644 index 0000000..8dcbe8c --- /dev/null +++ b/config/direnv/direnvrc @@ -0,0 +1,9 @@ +use_ruby() { + local ruby_root=$HOME/.ruby/$1 + load_prefix "$ruby_root" + layout_ruby +} + +check_env() { + local ret=0; for var in "$@"; do [[ -v $var ]] || { echo "$var is missing"; ret=1; }; done; return $ret; +} diff --git a/config/fish/completions/fisher.fish b/config/fish/completions/fisher.fish new file mode 100644 index 0000000..271e314 --- /dev/null +++ b/config/fish/completions/fisher.fish @@ -0,0 +1 @@ +fisher complete diff --git a/config/fish/completions/kitty.fish b/config/fish/completions/kitty.fish new file mode 100644 index 0000000..8f26b21 --- /dev/null +++ b/config/fish/completions/kitty.fish @@ -0,0 +1,6 @@ +function __kitty_completions + # Send all words up to the one before the cursor + commandline -cop | kitty +complete fish +end + +complete -f -c kitty -a "(__kitty_completions)" diff --git a/config/fish/completions/task.fish b/config/fish/completions/task.fish new file mode 100644 index 0000000..2056963 --- /dev/null +++ b/config/fish/completions/task.fish @@ -0,0 +1,320 @@ +# Taskwarrior completions for the Fish shell +# +# taskwarrior - a command line task list manager. +# +# Completions should work out of box. If it isn't, fill the bug report on your +# operation system bug tracker. +# +# As a workaround you can copy this script to +# ~/.config/fish/completions/task.fish, and open a new shell. +# +# Objects completed: +# * Commands +# * Projects +# * Priorities +# * Tags +# * Attribute names and modifiers +# +# +# You can override some default options in your config.fish: +# +# # Tab-completion of task descriptions. +# # Warning: This often creates a list of suggestions which spans several pages, +# # and it usually pushes some of the commands and attributes to the end of the +# # list. +# set -g task_complete_task yes +# +# # Tab-completion of task IDs outside of the "depends" attribute. +# # Warning: This often creates a list of suggestions which spans several pages, +# # and it pushes all commands and attributes to the end of the list. +# set -g task_complete_id yes +# +# # Attribute modifiers (DEPRECATED since 2.4.0) +# set -g task_complete_attribute_modifiers yes +# +# +# Copyright 2014 - 2019, Roman Inflianskas +# +# 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. +# +# https://www.opensource.org/licenses/mit-license.php + +# NOTE: remember that sed on OS X is different in some aspects. E.g. it does +# not understand \t for tabs. + +# convinience functions + +function __fish.task.log + for line in $argv + echo $line >&2 + end +end + +function __fish.task.partial + set wrapped $argv[1] + set what $argv[2] + set -q argv[3]; and set f_argv $argv[3..-1] + set f __fish.task.$wrapped.$what + functions -q $f; and eval $f $f_argv +end + +function __fish.task.zsh + set -q argv[2]; and set task_argv $argv[2..-1] + task _zsh$argv[1] $task_argv | sed 's/:/ /' +end + + +# command line state detection + +function __fish.task.bare + test (count (commandline -c -o)) -eq 1 +end + +function __fish.task.current.command + # find command in commandline by list intersection + begin; commandline -pco; and __fish.task.list._command all | cut -d ' ' -f 1; end | sort | uniq -d | xargs +end + +function __fish.task.before_command + test -z (__fish.task.current.command) +end + + +# checking need to complete + +function __fish.task.need_to_complete.attr_name + __fish.task.need_to_complete.filter; or contains (__fish.task.current.command) (__fish.task.list.command_mods) +end + +function __fish.task.need_to_complete.attr_value + __fish.task.need_to_complete.attr_name +end + +function __fish.task.need_to_complete.command + switch $argv + case all + __fish.task.bare + case filter + __fish.task.before_command + end +end + +function __fish.task.need_to_complete.config + contains (__fish.task.current.command) 'config' 'show' +end + +function __fish.task.need_to_complete.filter + __fish.task.before_command +end + +function __fish.task.need_to_complete.id + __fish.task.need_to_complete.filter +end + +function __fish.task.need_to_complete.task + __fish.task.need_to_complete.filter +end + +function __fish.task.need_to_complete + __fish.task.partial need_to_complete $argv +end + + +# list printers + +function __fish.task.token_clean + sed 's/[^a-z_.]//g; s/^\.$//g' +end + +function __fish.task.list.attr_name + task _columns | sed 's/$/: attribute/g' + # BUG: doesn't support file completion + echo rc +end + +function __fish.task.list.attr_value + set token (commandline -ct | cut -d ':' -f 1 | cut -d '.' -f 1 | __fish.task.token_clean) + if test -n $token + set attr_names (__fish.task.list.attr_name | sed 's/: / /g' | grep '^'$token | cut -d ' ' -f 1) + for attr_name in $attr_names + if test -n $attr_name + __fish.task.list.attr_value_by_name $attr_name + end + end + end + __fish.task.list.tag +end + +function __fish.task.list.attr_value_by_name + set attr $argv[1] + switch $attr + case 'rc' + __fish.task.list.rc + case 'depends' 'limit' 'priority' 'status' + __fish.task.combos_simple $attr (__fish.task.list $attr) + # case 'description' 'due' 'entry' 'end' 'start' 'project' 'recur' 'until' 'wait' + case '*' + if [ "$task_complete_attribute_modifiers" = 'yes' ]; and echo (commandline -ct) | grep -q '\.' + __fish.task.combos_with_mods $attr (__fish.task.list $attr) + else + __fish.task.combos_simple $attr (__fish.task.list $attr) + end + end +end + +function __fish.task.list._command + # Removed args until TW-1404 is fixed. + #__fish.task.zsh commands $argv + __fish.task.zsh commands +end + +function __fish.task.list.command + # ignore special commands + __fish.task.list._command $argv | command grep -Ev '^_' +end + +function __fish.task.list.command_mods + for command in 'add' 'annotate' 'append' 'delete' 'done' 'duplicate' 'log' 'modify' 'prepend' 'start' 'stop' + echo $command + end +end + +function __fish.task.list.config + task _config +end + +function __fish.task.list.depends + __fish.task.list.id with_description +end + +function __fish.task.list.description + __fish.task.zsh ids $argv | cut -d ' ' -f 2- +end + +function __fish.task.list.id + set show_type $argv[1] + if test -z $show_type + task _ids + else if [ $show_type = 'with_description' ] + __fish.task.zsh ids + end +end + +# Attribure modifiers (DEPRECATED since 2.4.0) +function __fish.task.list.mod + for mod in 'before' 'after' 'over' 'under' 'none' 'is' 'isnt' 'has' 'hasnt' 'startswith' 'endswith' 'word' 'noword' + echo $mod + end +end + +function __fish.task.list.priority + for priority in 'H' 'M' 'L' + echo $priority + end +end + +function __fish.task.list.project + task _projects +end + +function __fish.task.list.rc + for value in (task _config) + echo rc.$value: + end +end + +function __fish.task.list.status + echo pending + echo completed + echo deleted + echo waiting +end + +function __fish.task.list.tag + for tag in (task _tags) + echo +$tag + echo -$tag + end +end + +function __fish.task.list.task + __fish.task.zsh ids | sed -E 's/^(.*) (.*)$/\2 task [id = \1]/g' +end + +function __fish.task.list + __fish.task.partial list $argv +end + +function __fish.task.results_var_name + echo $argv | sed 's/^/__fish.task.list /g; s/$/ results/g; s/[ .]/_/g;' +end + +function __fish.task.list_results + set var_name (__fish.task.results_var_name $name) + for line in $$var_name + echo $line + end +end + + +# working with attributes + +function __fish.task.combos_simple + set attr_name $argv[1] + set -q argv[2]; and set attr_values $argv[2..-1] + if [ (count $attr_values) -gt 0 ] + for attr_value in $attr_values + echo "$attr_name:$attr_value" + end + else + echo "$attr_name:" + end +end + +# Attribure modifiers (DEPRECATED since 2.4.0) +function __fish.task.combos_with_mods + __fish.task.combos_simple $argv + for mod in (__fish.task.list.mod) + __fish.task.combos_simple $argv[1].$mod $argv[2..-1] + end +end + + +# actual completion + +function __fish.task.complete + set what $argv + set list_command "__fish.task.list $what" + set check_function "__fish.task.need_to_complete $what" + complete -c task -u -f -n $check_function -a "(eval $list_command)" +end + +__fish.task.complete command all +__fish.task.complete command filter +__fish.task.complete attr_value +__fish.task.complete attr_name +__fish.task.complete config + +if [ "$task_complete_task" = 'yes' ] + __fish.task.complete task +end + +if [ "$task_complete_id" = 'yes' ] + __fish.task.complete id with_description +end diff --git a/config/fish/conf.d/aliases.fish b/config/fish/conf.d/aliases.fish new file mode 100644 index 0000000..ce5e1e9 --- /dev/null +++ b/config/fish/conf.d/aliases.fish @@ -0,0 +1,38 @@ +# aliases +alias sdr="screen -aAdr" +alias ls='exa' +alias la="exa -a" +alias ll="exa -laF" +alias mkpasswd="head -c16 /dev/urandom | xxd -ps" +alias mc="mc -b" +alias cdp='cd (~/bin/cdp); clear' + +if command -sq grc + alias ping="grc --colour=auto ping" + alias traceroute="grc --colour=auto traceroute" + alias make="grc --colour=auto make" + alias diff="grc --colour=auto diff" + alias cvs="grc --colour=auto cvs" + alias netstat="grc --colour=auto netstat" + alias mount="grc --colour=auto mount" + alias ifconfig="grc --colour=auto ifconfig" + alias dig="grc --colour=auto dig" + alias ps="grc --colour=auto ps" +end + +alias rgrep="grep --exclude-dir=Godeps --exclude-dir=node_modules --exclude-dir=log --exclude-dir=vendor --exclude-dir=tmp --exclude-dir=public --exclude-dir=.git --exclude=.swp -rn" +alias grep="grep --exclude-dir=.git --color=auto" + +alias ag="ag --path-to-ignore $HOME/.agignore --nogroup" +alias vim="nvim" + +# Typos +alias igt="git" +alias gti="git" +alias gitst="git st" + +# Ledger +# alias ledger="noglob ledger" +# alias "bin/ledger"="noglob bin/ledger" +# +# alias icat="kitty +kitten icat" diff --git a/config/fish/conf.d/fzf.fish b/config/fish/conf.d/fzf.fish new file mode 100644 index 0000000..e88f48e --- /dev/null +++ b/config/fish/conf.d/fzf.fish @@ -0,0 +1,14 @@ +set -q FZF_TMUX_HEIGHT; or set -U FZF_TMUX_HEIGHT "40%" +set -q FZF_DEFAULT_OPTS; or set -U FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT" +set -q FZF_LEGACY_KEYBINDINGS; or set -U FZF_LEGACY_KEYBINDINGS 1 +set -q FZF_PREVIEW_FILE_CMD; or set -U FZF_PREVIEW_FILE_CMD "head -n 10" +set -q FZF_PREVIEW_DIR_CMD; or set -U FZF_PREVIEW_DIR_CMD "ls" + +function fzf_uninstall -e fzf_uninstall + # disabled until we figure out a sensible way to ensure user overrides + # are not erased + # set -l _vars (set | command grep -E "^FZF.*\$" | command awk '{print $1;}') + # for var in $_vars + # eval (set -e $var) + # end +end diff --git a/config/fish/conf.d/fzf_key_bindings.fish b/config/fish/conf.d/fzf_key_bindings.fish new file mode 100644 index 0000000..e3e193a --- /dev/null +++ b/config/fish/conf.d/fzf_key_bindings.fish @@ -0,0 +1,49 @@ +if test "$FZF_LEGACY_KEYBINDINGS" -eq 1 + bind \ct '__fzf_find_file' + bind \cr '__fzf_reverse_isearch' + bind \ec '__fzf_cd' + bind \eC '__fzf_cd --hidden' + bind \cg '__fzf_open' + bind \co '__fzf_open --editor' + + if bind -M insert >/dev/null 2>/dev/null + bind -M insert \ct '__fzf_find_file' + bind -M insert \cr '__fzf_reverse_isearch' + bind -M insert \ec '__fzf_cd' + bind -M insert \eC '__fzf_cd --hidden' + bind -M insert \cg '__fzf_open' + bind -M insert \co '__fzf_open --editor' + end +else + bind \cf '__fzf_find_file' + bind \cr '__fzf_reverse_isearch' + bind \eo '__fzf_cd' + bind \eO '__fzf_cd --hidden' + bind \cg '__fzf_open' + bind \co '__fzf_open --editor' + + if bind -M insert >/dev/null 2>/dev/null + bind -M insert \cf '__fzf_find_file' + bind -M insert \cr '__fzf_reverse_isearch' + bind -M insert \eo '__fzf_cd' + bind -M insert \eO '__fzf_cd --hidden' + bind -M insert \cg '__fzf_open' + bind -M insert \co '__fzf_open --editor' + end +end + +if set -q FZF_COMPLETE + bind \t '__fzf_complete' + if bind -M insert >/dev/null 2>/dev/null + bind -M insert \t '__fzf_complete' + end +end + +function fzf_key_bindings_uninstall -e fzf_key_bindings_uninstall + # disabled until we figure out a sensible way to ensure user overrides + # are not erased + # set -l _bindings (bind -a | sed -En "s/(')?__fzf.*\$//p" | sed 's/bind/bind -e/') + # for binding in $_bindings + # eval $binding + # end +end diff --git a/config/fish/config.fish b/config/fish/config.fish new file mode 100644 index 0000000..a5cbd0f --- /dev/null +++ b/config/fish/config.fish @@ -0,0 +1,5 @@ +#!/bin/fish + +# direnv +set -x DIRENV_LOG_FORMAT "" +direnv hook fish | source diff --git a/config/fish/fish_variables b/config/fish/fish_variables new file mode 100644 index 0000000..6598419 --- /dev/null +++ b/config/fish/fish_variables @@ -0,0 +1,39 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR FZF_DEFAULT_OPTS:\x2d\x2dheight\x2040\x25 +SETUVAR FZF_LEGACY_KEYBINDINGS:1 +SETUVAR FZF_PREVIEW_DIR_CMD:ls +SETUVAR FZF_PREVIEW_FILE_CMD:head\x20\x2dn\x2010 +SETUVAR FZF_TMUX_HEIGHT:40\x25 +SETUVAR __fish_init_2_39_8:\x1d +SETUVAR __fish_init_2_3_0:\x1d +SETUVAR __fish_init_3_x:\x1d +SETUVAR fish_color_autosuggestion:969896 +SETUVAR fish_color_cancel:\x2dr +SETUVAR fish_color_command:7aa6da +SETUVAR fish_color_comment:2a2a2a +SETUVAR fish_color_cwd:green +SETUVAR fish_color_cwd_root:red +SETUVAR fish_color_end:e7c547 +SETUVAR fish_color_error:d54e53 +SETUVAR fish_color_escape:00a6b2 +SETUVAR fish_color_history_current:\x2d\x2dbold +SETUVAR fish_color_host:normal +SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue +SETUVAR fish_color_normal:normal +SETUVAR fish_color_operator:00a6b2 +SETUVAR fish_color_param:b9ca4a +SETUVAR fish_color_quote:e78c45 +SETUVAR fish_color_redirection:c397d8 +SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_status:red +SETUVAR fish_color_user:brgreen +SETUVAR fish_color_valid_path:\x2d\x2dunderline +SETUVAR fish_greeting:\x1d +SETUVAR fish_key_bindings:fish_default_key_bindings +SETUVAR fish_pager_color_completion:normal +SETUVAR fish_pager_color_description:B3A06D\x1eyellow +SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan +SETUVAR pure_version:2\x2e1\x2e8 diff --git a/config/fish/fishfile b/config/fish/fishfile new file mode 100644 index 0000000..7e81aa8 --- /dev/null +++ b/config/fish/fishfile @@ -0,0 +1,3 @@ +rbenv/fish-rbenv +jethrokuan/fzf +jorgebucaran/fish-spark diff --git a/config/fish/functions/__fzf_cd.fish b/config/fish/functions/__fzf_cd.fish new file mode 100644 index 0000000..c79a725 --- /dev/null +++ b/config/fish/functions/__fzf_cd.fish @@ -0,0 +1,49 @@ +function __fzf_cd -d "Change directory" + set -l commandline (__fzf_parse_commandline) + set -l dir $commandline[1] + set -l fzf_query $commandline[2] + + if not type -q argparse + # Fallback for fish shell version < 2.7 + function argparse + functions -e argparse # deletes itself + end + if contains -- --hidden $argv; or contains -- -h $argv + set _flag_hidden "yes" + end + end + + # Fish shell version >= v2.7, use argparse + set -l options "h/hidden" + argparse $options -- $argv + + set -l COMMAND + + set -q FZF_CD_COMMAND + or set -l FZF_CD_COMMAND " + command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \ + -o -type d -print 2> /dev/null | sed 's@^\./@@'" + + set -q FZF_CD_WITH_HIDDEN_COMMAND + or set -l FZF_CD_WITH_HIDDEN_COMMAND " + command find -L \$dir \ + \\( -path '*/\\.git*' -o -fstype 'dev' -o -fstype 'proc' \\) -prune \ + -o -type d -print 2> /dev/null | sed 1d | cut -b3-" + + if set -q _flag_hidden + set COMMAND $FZF_CD_WITH_HIDDEN_COMMAND + else + set COMMAND $FZF_CD_COMMAND + end + + eval "$COMMAND | "(__fzfcmd)" +m $FZF_DEFAULT_OPTS $FZF_CD_OPTS --query \"$fzf_query\"" | read -l select + + if not test -z "$select" + builtin cd "$select" + + # Remove last token from commandline. + commandline -t "" + end + + commandline -f repaint +end diff --git a/config/fish/functions/__fzf_complete.fish b/config/fish/functions/__fzf_complete.fish new file mode 100644 index 0000000..d4894de --- /dev/null +++ b/config/fish/functions/__fzf_complete.fish @@ -0,0 +1,169 @@ +## +# Use fzf as fish completion widget. +# +# +# When FZF_COMPLETE variable is set, fzf is used as completion +# widget for the fish shell by binding the TAB key. +# +# FZF_COMPLETE can have some special numeric values: +# +# `set FZF_COMPLETE 0` basic widget accepts with TAB key +# `set FZF_COMPLETE 1` extends 0 with candidate preview window +# `set FZF_COMPLETE 2` same as 1 but TAB walks on candidates +# `set FZF_COMPLETE 3` multi TAB selection, RETURN accepts selected ones. +# +# Any other value of FZF_COMPLETE is given directly as options to fzf. +# +# If you prefer to set more advanced options, take a look at the +# `__fzf_complete_opts` function and override that in your environment. + + +# modified from https://github.com/junegunn/fzf/wiki/Examples-(fish)#completion +function __fzf_complete -d 'fzf completion and print selection back to commandline' + # As of 2.6, fish's "complete" function does not understand + # subcommands. Instead, we use the same hack as __fish_complete_subcommand and + # extract the subcommand manually. + set -l cmd (commandline -co) (commandline -ct) + + switch $cmd[1] + case env sudo + for i in (seq 2 (count $cmd)) + switch $cmd[$i] + case '-*' + case '*=*' + case '*' + set cmd $cmd[$i..-1] + break + end + end + end + + set -l cmd_lastw $cmd[-1] + set cmd (string join -- ' ' $cmd) + + set -l initial_query '' + test -n "$cmd_lastw"; and set initial_query --query="$cmd_lastw" + + set -l complist (complete -C$cmd) + set -l result + + # do nothing if there is nothing to select from + test -z "$complist"; and return + + set -l compwc (echo $complist | wc -w) + if test $compwc -eq 1 + # if there is only one option dont open fzf + set result "$complist" + else + + set -l query + string join -- \n $complist \ + | sort \ + | eval (__fzfcmd) (string escape --no-quoted -- $initial_query) --print-query (__fzf_complete_opts) \ + | cut -f1 \ + | while read -l r + # first line is the user entered query + if test -z "$query" + set query $r + # rest of lines are selected candidates + else + set result $result $r + end + end + + # exit if user canceled + if test -z "$query" ;and test -z "$result" + commandline -f repaint + return + end + + # if user accepted but no candidate matches, use the input as result + if test -z "$result" + set result $query + end + end + + set prefix (string sub -s 1 -l 1 -- (commandline -t)) + for i in (seq (count $result)) + set -l r $result[$i] + switch $prefix + case "'" + commandline -t -- (string escape -- $r) + case '"' + if string match '*"*' -- $r >/dev/null + commandline -t -- (string escape -- $r) + else + commandline -t -- '"'$r'"' + end + case '~' + commandline -t -- (string sub -s 2 (string escape -n -- $r)) + case '*' + commandline -t -- $r + end + [ $i -lt (count $result) ]; and commandline -i ' ' + end + + commandline -f repaint +end + +function __fzf_complete_opts_common + if set -q FZF_DEFAULT_OPTS + echo $FZF_DEFAULT_OPTS + end + echo --cycle --reverse --inline-info +end + +function __fzf_complete_opts_tab_accepts + echo --bind tab:accept,btab:cancel +end + +function __fzf_complete_opts_tab_walks + echo --bind tab:down,btab:up +end + +function __fzf_complete_opts_preview + set -l file (status -f) + echo --with-nth=1 --preview-window=right:wrap --preview="fish\ '$file'\ __fzf_complete_preview\ '{1}'\ '{2..}'" +end + +test "$argv[1]" = "__fzf_complete_preview"; and __fzf_complete_preview $argv[2..3] + +function __fzf_complete_opts_0 -d 'basic single selection with tab accept' + __fzf_complete_opts_common + echo --no-multi + __fzf_complete_opts_tab_accepts +end + +function __fzf_complete_opts_1 -d 'single selection with preview and tab accept' + __fzf_complete_opts_0 + __fzf_complete_opts_preview +end + +function __fzf_complete_opts_2 -d 'single selection with preview and tab walks' + __fzf_complete_opts_1 + __fzf_complete_opts_tab_walks +end + +function __fzf_complete_opts_3 -d 'multi selection with preview' + __fzf_complete_opts_common + echo --multi + __fzf_complete_opts_preview +end + +function __fzf_complete_opts -d 'fzf options for fish tab completion' + switch $FZF_COMPLETE + case 0 + __fzf_complete_opts_0 + case 1 + __fzf_complete_opts_1 + case 2 + __fzf_complete_opts_2 + case 3 + __fzf_complete_opts_3 + case '*' + echo $FZF_COMPLETE + end + if set -q FZF_COMPLETE_OPTS + echo $FZF_COMPLETE_OPTS + end +end diff --git a/config/fish/functions/__fzf_complete_preview.fish b/config/fish/functions/__fzf_complete_preview.fish new file mode 100644 index 0000000..585ab92 --- /dev/null +++ b/config/fish/functions/__fzf_complete_preview.fish @@ -0,0 +1,31 @@ +function __fzf_complete_preview -d 'generate preview for completion widget. + argv[1] is the currently selected candidate in fzf + argv[2] is a string containing the rest of the output produced by `complete -Ccmd` + ' + + if test "$argv[2]" = "Redefine variable" + # show environment variables current value + set -l evar (echo $argv[1] | cut -d= -f1) + echo $argv[1]$$evar + else + echo $argv[1] + end + + set -l path (string replace "~" $HOME -- $argv[1]) + + # list directories on preview + if test -d "$path" + eval $FZF_PREVIEW_DIR_CMD (string escape $path) + end + + # show ten lines of non-binary files preview + if test -f "$path"; and grep -qI . "$path" + eval $FZF_PREVIEW_FILE_CMD (string escape $path) + end + + # if fish knows about it, let it show info + type -q "$path" 2>/dev/null; and type -a "$path" + + # show aditional data + echo $argv[2] +end diff --git a/config/fish/functions/__fzf_find_file.fish b/config/fish/functions/__fzf_find_file.fish new file mode 100644 index 0000000..1900006 --- /dev/null +++ b/config/fish/functions/__fzf_find_file.fish @@ -0,0 +1,29 @@ +function __fzf_find_file -d "List files and folders" + set -l commandline (__fzf_parse_commandline) + set -l dir $commandline[1] + set -l fzf_query $commandline[2] + + set -q FZF_FIND_FILE_COMMAND + or set -l FZF_FIND_FILE_COMMAND " + command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \ + -o -type f -print \ + -o -type d -print \ + -o -type l -print 2> /dev/null | sed 's@^\./@@'" + + begin + eval "$FZF_FIND_FILE_COMMAND | "(__fzfcmd) "-m $FZF_DEFAULT_OPTS $FZF_FIND_FILE_OPTS --query \"$fzf_query\"" | while read -l s; set results $results $s; end + end + + if test -z "$results" + commandline -f repaint + return + else + commandline -t "" + end + + for result in $results + commandline -it -- (string escape $result) + commandline -it -- " " + end + commandline -f repaint +end diff --git a/config/fish/functions/__fzf_get_dir.fish b/config/fish/functions/__fzf_get_dir.fish new file mode 100644 index 0000000..a32ac83 --- /dev/null +++ b/config/fish/functions/__fzf_get_dir.fish @@ -0,0 +1,17 @@ +function __fzf_get_dir -d 'Find the longest existing filepath from input string' + set dir $argv + + # Strip all trailing slashes. Ignore if $dir is root dir (/) + if [ (string length $dir) -gt 1 ] + set dir (string replace -r '/*$' '' $dir) + end + + # Iteratively check if dir exists and strip tail end of path + while [ ! -d "$dir" ] + # If path is absolute, this can keep going until ends up at / + # If path is relative, this can keep going until entire input is consumed, dirname returns "." + set dir (dirname "$dir") + end + + echo $dir +end diff --git a/config/fish/functions/__fzf_open.fish b/config/fish/functions/__fzf_open.fish new file mode 100644 index 0000000..c91c093 --- /dev/null +++ b/config/fish/functions/__fzf_open.fish @@ -0,0 +1,63 @@ +function __fzf_open -d "Open files and directories." + function __fzf_open_get_open_cmd -d "Find appropriate open command." + if type -q xdg-open + echo "xdg-open" + else if type -q open + echo "open" + end + end + + set -l commandline (__fzf_parse_commandline) + set -l dir $commandline[1] + set -l fzf_query $commandline[2] + + if not type -q argparse + set created_argparse + function argparse + functions -e argparse # deletes itself + end + if contains -- --editor $argv; or contains -- -e $argv + set _flag_editor "yes" + end + if contains -- --preview $argv; or contains -- -p $argv + set _flag_preview "yes" + end + end + + set -l options "e/editor" "p/preview=?" + argparse $options -- $argv + + set -l preview_cmd + if set -q FZF_ENABLE_OPEN_PREVIEW + set preview_cmd "--preview-window=right:wrap --preview='fish -c \"__fzf_complete_preview {}\"'" + end + + set -q FZF_OPEN_COMMAND + or set -l FZF_OPEN_COMMAND " + command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \ + -o -type f -print \ + -o -type d -print \ + -o -type l -print 2> /dev/null | sed 's@^\./@@'" + + eval "$FZF_OPEN_COMMAND | "(__fzfcmd) $preview_cmd "-m $FZF_DEFAULT_OPTS $FZF_OPEN_OPTS --query \"$fzf_query\"" | read -l select + + # set how to open + set -l open_cmd + if set -q _flag_editor + set open_cmd "$EDITOR" + else + set open_cmd (__fzf_open_get_open_cmd) + if test -z "$open_cmd" + echo "Couldn't find appropriate open command to use. Do you have 'xdg-open' or 'open' installed?"; and return 1 + end + end + + set -l open_status 0 + if not test -z "$select" + commandline "$open_cmd \"$select\"" ;and commandline -f execute + set open_status $status + end + + commandline -f repaint + return $open_status +end diff --git a/config/fish/functions/__fzf_parse_commandline.fish b/config/fish/functions/__fzf_parse_commandline.fish new file mode 100644 index 0000000..80bf3eb --- /dev/null +++ b/config/fish/functions/__fzf_parse_commandline.fish @@ -0,0 +1,23 @@ +function __fzf_parse_commandline -d 'Parse the current command line token and return split of existing filepath and rest of token' + # eval is used to do shell expansion on paths + set -l commandline (eval "printf '%s' "(commandline -t)) + + if [ -z $commandline ] + # Default to current directory with no --query + set dir '.' + set fzf_query '' + else + set dir (__fzf_get_dir $commandline) + + if [ "$dir" = "." -a (string sub -l 1 $commandline) != '.' ] + # if $dir is "." but commandline is not a relative path, this means no file path found + set fzf_query $commandline + else + # Also remove trailing slash after dir, to "split" input properly + set fzf_query (string replace -r "^$dir/?" '' "$commandline") + end + end + + echo $dir + echo $fzf_query +end diff --git a/config/fish/functions/__fzf_reverse_isearch.fish b/config/fish/functions/__fzf_reverse_isearch.fish new file mode 100644 index 0000000..7b31d33 --- /dev/null +++ b/config/fish/functions/__fzf_reverse_isearch.fish @@ -0,0 +1,6 @@ +function __fzf_reverse_isearch + history merge + history -z | eval (__fzfcmd) --read0 --tiebreak=index --toggle-sort=ctrl-r $FZF_DEFAULT_OPTS $FZF_REVERSE_ISEARCH_OPTS -q '(commandline)' | perl -pe 'chomp if eof' | read -lz result + and commandline -- $result + commandline -f repaint +end diff --git a/config/fish/functions/__fzfcmd.fish b/config/fish/functions/__fzfcmd.fish new file mode 100644 index 0000000..3acdbad --- /dev/null +++ b/config/fish/functions/__fzfcmd.fish @@ -0,0 +1,9 @@ +function __fzfcmd + set -q FZF_TMUX; or set FZF_TMUX 0 + set -q FZF_TMUX_HEIGHT; or set FZF_TMUX_HEIGHT 40% + if [ $FZF_TMUX -eq 1 ] + echo "fzf-tmux -d$FZF_TMUX_HEIGHT" + else + echo "fzf" + end +end diff --git a/config/fish/functions/fish_prompt.fish b/config/fish/functions/fish_prompt.fish new file mode 100644 index 0000000..49c5a4d --- /dev/null +++ b/config/fish/functions/fish_prompt.fish @@ -0,0 +1,97 @@ +function fish_prompt --description 'Write out the prompt' + set -l last_status $status + + if not set -q __fish_git_prompt_show_informative_status + set -g __fish_git_prompt_show_informative_status 1 + end + if not set -q __fish_git_prompt_hide_untrackedfiles + set -g __fish_git_prompt_hide_untrackedfiles 1 + end + + if not set -q __fish_git_prompt_color_branch + set -g __fish_git_prompt_color_branch magenta --bold + end + if not set -q __fish_git_prompt_showupstream + set -g __fish_git_prompt_showupstream "informative" + end + if not set -q __fish_git_prompt_char_upstream_ahead + set -g __fish_git_prompt_char_upstream_ahead "↑" + end + if not set -q __fish_git_prompt_char_upstream_behind + set -g __fish_git_prompt_char_upstream_behind "↓" + end + if not set -q __fish_git_prompt_char_upstream_prefix + set -g __fish_git_prompt_char_upstream_prefix "" + end + + if not set -q __fish_git_prompt_char_stagedstate + set -g __fish_git_prompt_char_stagedstate "●" + end + if not set -q __fish_git_prompt_char_dirtystate + set -g __fish_git_prompt_char_dirtystate "✚" + end + if not set -q __fish_git_prompt_char_untrackedfiles + set -g __fish_git_prompt_char_untrackedfiles "…" + end + if not set -q __fish_git_prompt_char_invalidstate + set -g __fish_git_prompt_char_invalidstate "✖" + end + if not set -q __fish_git_prompt_char_cleanstate + set -g __fish_git_prompt_char_cleanstate "✔" + end + + if not set -q __fish_git_prompt_color_dirtystate + set -g __fish_git_prompt_color_dirtystate blue + end + if not set -q __fish_git_prompt_color_stagedstate + set -g __fish_git_prompt_color_stagedstate yellow + end + if not set -q __fish_git_prompt_color_invalidstate + set -g __fish_git_prompt_color_invalidstate red + end + if not set -q __fish_git_prompt_color_untrackedfiles + set -g __fish_git_prompt_color_untrackedfiles $fish_color_normal + end + if not set -q __fish_git_prompt_color_cleanstate + set -g __fish_git_prompt_color_cleanstate green --bold + end + + if not set -q __fish_prompt_normal + set -g __fish_prompt_normal (set_color normal) + end + + set -l color_cwd + set -l prefix + set -l suffix + switch "$USER" + case root toor + if set -q fish_color_cwd_root + set color_cwd $fish_color_cwd_root + else + set color_cwd $fish_color_cwd + end + set suffix '#' + case '*' + set color_cwd $fish_color_cwd + set suffix '$' + end + + # PWD + set_color $color_cwd + echo -n (prompt_pwd) + set_color normal + + printf '%s ' (__fish_vcs_prompt) + + if not test $last_status -eq 0 + set_color $fish_color_error + echo -n "[$last_status] " + set_color normal + end + + if set -q SSH_TTY + set -g fish_color_host brred + end + + echo -n "$suffix " +end diff --git a/config/fish/functions/fish_right_prompt.fish b/config/fish/functions/fish_right_prompt.fish new file mode 100644 index 0000000..e4fd8f3 --- /dev/null +++ b/config/fish/functions/fish_right_prompt.fish @@ -0,0 +1,17 @@ +function _rb_prompt + # rbenv local > /dev/null 2>&1 && echo " ["(rbenv local | awk '{print $1}')"]" + echo '' +end + +function fish_right_prompt + set -l normal (set_color normal) + set -l cyan (set_color cyan) + set -l grey (set_color 3C3836) + set -l date (date "+%H:%M") + set -l date "$grey$date$normal" + + set -l ruby_version $cyan(_rb_prompt) + set -l ruby_version "$ruby_version$normal" + + echo -s $date$ruby_version +end diff --git a/config/fish/functions/fisher.fish b/config/fish/functions/fisher.fish new file mode 100644 index 0000000..4759857 --- /dev/null +++ b/config/fish/functions/fisher.fish @@ -0,0 +1,430 @@ +set -g fisher_version 3.2.9 + +function fisher -a cmd -d "fish package manager" + set -q XDG_CACHE_HOME; or set XDG_CACHE_HOME ~/.cache + set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config + + set -g fish_config $XDG_CONFIG_HOME/fish + set -g fisher_cache $XDG_CACHE_HOME/fisher + set -g fisher_config $XDG_CONFIG_HOME/fisher + + set -q fisher_path; or set -g fisher_path $fish_config + + for path in {$fish_config,$fisher_path}/{functions,completions,conf.d} $fisher_cache + if test ! -d $path + command mkdir -p $path + end + end + + if test ! -e $fisher_path/completions/fisher.fish + echo "fisher complete" >$fisher_path/completions/fisher.fish + _fisher_complete + end + + if test -e $fisher_path/conf.d/fisher.fish + switch "$version" + case \*-\* + command rm -f $fisher_path/conf.d/fisher.fish + case 2\* + case \* + command rm -f $fisher_path/conf.d/fisher.fish + end + else + switch "$version" + case \*-\* + case 2\* + echo "fisher copy-user-key-bindings" >$fisher_path/conf.d/fisher.fish + end + end + + switch "$cmd" + case {,self-}complete + _fisher_complete + case copy-user-key-bindings + _fisher_copy_user_key_bindings + case ls + set -e argv[1] + if test -s "$fisher_path/fishfile" + set -l file (_fisher_fmt <$fisher_path/fishfile | _fisher_parse -R | command sed "s|@.*||") + _fisher_ls | _fisher_fmt | command awk -v FILE="$file" " + BEGIN { for (n = split(FILE, f); ++i <= n;) file[f[i]] } \$0 in file && /$argv[1]/ + " | command sed "s|^$HOME|~|" + end + case self-update + _fisher_self_update (status -f) + case self-uninstall + _fisher_self_uninstall + case {,-}-v{ersion,} + echo "fisher version $fisher_version" (status -f | command sed "s|^$HOME|~|") + case {,-}-h{elp,} + _fisher_help + case "" + _fisher_commit -- + case add rm + if not isatty + while read -l arg + set argv $argv $arg + end + end + + if test (count $argv) = 1 + echo "fisher: invalid number of arguments" >&2 + _fisher_help >&2 + return 1 + end + + _fisher_commit $argv + case \* + echo "fisher: unknown flag or command \"$cmd\"" >&2 + _fisher_help >&2 + return 1 + end +end + +function _fisher_complete + complete -ec fisher + complete -xc fisher -n __fish_use_subcommand -a add -d "Add packages" + complete -xc fisher -n __fish_use_subcommand -a rm -d "Remove packages" + complete -xc fisher -n __fish_use_subcommand -a ls -d "List installed packages matching REGEX" + complete -xc fisher -n __fish_use_subcommand -a --help -d "Show usage help" + complete -xc fisher -n __fish_use_subcommand -a --version -d "$fisher_version" + complete -xc fisher -n __fish_use_subcommand -a self-update -d "Update to the latest version" + for pkg in (fisher ls) + complete -xc fisher -n "__fish_seen_subcommand_from rm" -a $pkg + end +end + +function _fisher_copy_user_key_bindings + if functions -q fish_user_key_bindings + functions -c fish_user_key_bindings fish_user_key_bindings_copy + end + function fish_user_key_bindings + for file in $fisher_path/conf.d/*_key_bindings.fish + source $file >/dev/null 2>/dev/null + end + if functions -q fish_user_key_bindings_copy + fish_user_key_bindings_copy + end + end +end + +function _fisher_ls + for pkg in $fisher_config/*/*/* + command readlink $pkg; or echo $pkg + end +end + +function _fisher_fmt + command sed "s|^[[:space:]]*||;s|^$fisher_config/||;s|^~|$HOME|;s|^\.\/*|$PWD/|;s|^https*:/*||;s|^github\.com/||;s|/*\$||" +end + +function _fisher_help + echo "usage: fisher add Add packages" + echo " fisher rm Remove packages" + echo " fisher Update all packages" + echo " fisher ls [] List installed packages matching " + echo " fisher --help Show this help" + echo " fisher --version Show the current version" + echo " fisher self-update Update to the latest version" + echo " fisher self-uninstall Uninstall from your system" + echo "examples:" + echo " fisher add jethrokuan/z rafaelrinaldi/pure" + echo " fisher add gitlab.com/foo/bar@v2" + echo " fisher add ~/path/to/local/pkg" + echo " fisher add &2 + command curl -s "$url?nocache" >$file. + + set -l next_version (command awk '{ print $4 } { exit }' <$file.) + switch "$next_version" + case "" $fisher_version + command rm -f $file. + if test -z "$next_version" + echo "fisher: cannot update fisher -- are you offline?" >&2 + return 1 + end + echo "fisher is already up-to-date" >&2 + case \* + echo "linking $file" | command sed "s|$HOME|~|" >&2 + command mv -f $file. $file + source $file + echo "updated to fisher $fisher_version -- hooray!" >&2 + _fisher_complete + end +end + +function _fisher_self_uninstall + for pkg in (_fisher_ls) + _fisher_rm $pkg + end + + for file in $fisher_cache $fisher_config $fisher_path/{functions,completions,conf.d}/fisher.fish $fisher_path/fishfile + echo "removing $file" + command rm -Rf $file 2>/dev/null + end | command sed "s|$HOME|~|" >&2 + + for name in (set -n | command awk '/^fisher_/') + set -e "$name" + end + + functions -e (functions -a | command awk '/^_fisher/') fisher + complete -c fisher --erase +end + +function _fisher_commit -a cmd + set -e argv[1] + set -l elapsed (_fisher_now) + set -l fishfile $fisher_path/fishfile + + if test ! -e "$fishfile" + command touch $fishfile + echo "created new fishfile in $fishfile" | command sed "s|$HOME|~|" >&2 + end + + set -l old_pkgs (_fisher_ls | _fisher_fmt) + for pkg in (_fisher_ls) + _fisher_rm $pkg + end + command rm -Rf $fisher_config + command mkdir -p $fisher_config + + set -l next_pkgs (_fisher_fmt <$fishfile | _fisher_parse -R $cmd (printf "%s\n" $argv | _fisher_fmt)) + set -l actual_pkgs (_fisher_fetch $next_pkgs) + set -l updated_pkgs + for pkg in $old_pkgs + if contains -- $pkg $actual_pkgs + set updated_pkgs $updated_pkgs $pkg + end + end + + if test -z "$actual_pkgs$updated_pkgs$old_pkgs$next_pkgs" + echo "fisher: nothing to commit -- try adding some packages" >&2 + return 1 + end + + set -l out_pkgs + if test "$cmd" = "rm" + set out_pkgs $next_pkgs + else + for pkg in $next_pkgs + if contains -- (echo $pkg | command sed "s|@.*||") $actual_pkgs + set out_pkgs $out_pkgs $pkg + end + end + end + + printf "%s\n" (_fisher_fmt <$fishfile | _fisher_parse -W $cmd $out_pkgs | command sed "s|^$HOME|~|") >$fishfile + + _fisher_complete + + command awk -v A=(count $actual_pkgs) -v U=(count $updated_pkgs) -v O=(count $old_pkgs) -v E=(_fisher_now $elapsed) ' + BEGIN { + res = fmt("removed", O - U, fmt("updated", U, fmt("added", A - U))) + printf((res ? res : "done") " in %.2fs\n", E / 1000) + } + function fmt(action, n, s) { + return n ? (s ? s ", " : s) action " " n " package" (n > 1 ? "s" : "") : s + } + ' >&2 +end + +function _fisher_parse -a mode cmd + set -e argv[1..2] + command awk -v FS="[[:space:]]*#+" -v MODE="$mode" -v CMD="$cmd" -v ARGSTR="$argv" ' + BEGIN { + for (n = split(ARGSTR, a, " "); i++ < n;) pkgs[getkey(a[i])] = a[i] + } + !NF { next } { k = getkey($1) } + MODE == "-R" && !(k in pkgs) && $0 = $1 + MODE == "-W" && (/^#/ || k in pkgs || CMD != "rm") { print pkgs[k] (sub($1, "") ? $0 : "") } + MODE == "-W" || CMD == "rm" { delete pkgs[k] } + END { + for (k in pkgs) { + if (CMD != "rm" || MODE == "-W") print pkgs[k] + else print "fisher: cannot remove \""k"\" -- package is not in fishfile" > "/dev/stderr" + } + } + function getkey(s, a) { + return (split(s, a, /@+|:/) > 2) ? a[2]"/"a[1]"/"a[3] : a[1] + } + ' +end + +function _fisher_fetch + set -l pkg_jobs + set -l out_pkgs + set -l next_pkgs + set -l local_pkgs + set -q fisher_user_api_token; and set -l curl_opts -u $fisher_user_api_token + + for pkg in $argv + switch $pkg + case \~\* /\* + set -l path (echo "$pkg" | command sed "s|^~|$HOME|") + if test -e "$path" + set local_pkgs $local_pkgs $path + else + echo "fisher: cannot add \"$pkg\" -- is this a valid file?" >&2 + end + continue + end + + command awk -v PKG="$pkg" -v FS=/ ' + BEGIN { + if (split(PKG, tmp, /@+|:/) > 2) { + if (tmp[4]) sub("@"tmp[4], "", PKG) + print PKG "\t" tmp[2]"/"tmp[1]"/"tmp[3] "\t" (tmp[4] ? tmp[4] : "master") + } else { + pkg = split(PKG, _, "/") <= 2 ? "github.com/"tmp[1] : tmp[1] + tag = tmp[2] ? tmp[2] : "master" + print (\ + pkg ~ /^github/ ? "https://codeload."pkg"/tar.gz/"tag : \ + pkg ~ /^gitlab/ ? "https://"pkg"/-/archive/"tag"/"tmp[split(pkg, tmp, "/")]"-"tag".tar.gz" : \ + pkg ~ /^bitbucket/ ? "https://"pkg"/get/"tag".tar.gz" : pkg \ + ) "\t" pkg + } + } + ' | read -l url pkg branch + + if test ! -d "$fisher_config/$pkg" + fish -c " + echo fetching $url >&2 + command mkdir -p $fisher_config/$pkg $fisher_cache/(command dirname $pkg) + if test ! -z \"$branch\" + command git clone $url $fisher_config/$pkg --branch $branch --depth 1 2>/dev/null + or echo fisher: cannot clone \"$url\" -- is this a valid url\? >&2 + else if command curl $curl_opts -Ss -w \"\" $url 2>&1 | command tar -xzf- -C $fisher_config/$pkg 2>/dev/null + command rm -Rf $fisher_cache/$pkg + command mv -f $fisher_config/$pkg/* $fisher_cache/$pkg + command rm -Rf $fisher_config/$pkg + command cp -Rf {$fisher_cache,$fisher_config}/$pkg + else if test -d \"$fisher_cache/$pkg\" + echo fisher: cannot connect to server -- looking in \"$fisher_cache/$pkg\" | command sed 's|$HOME|~|' >&2 + command cp -Rf $fisher_cache/$pkg $fisher_config/$pkg/.. + else + command rm -Rf $fisher_config/$pkg + echo fisher: cannot add \"$pkg\" -- is this a valid package\? >&2 + end + " >/dev/null & + set pkg_jobs $pkg_jobs (_fisher_jobs --last) + set next_pkgs $next_pkgs "$fisher_config/$pkg" + end + end + + if set -q pkg_jobs[1] + while for job in $pkg_jobs + contains -- $job (_fisher_jobs); and break + end + end + for pkg in $next_pkgs + if test -d "$pkg" + set out_pkgs $out_pkgs $pkg + _fisher_add $pkg + end + end + end + + set -l local_prefix $fisher_config/local/$USER + if test ! -d "$local_prefix" + command mkdir -p $local_prefix + end + for pkg in $local_pkgs + set -l target $local_prefix/(command basename $pkg) + if test ! -L "$target" + command ln -sf $pkg $target + set out_pkgs $out_pkgs $pkg + _fisher_add $pkg --link + end + end + + if set -q out_pkgs[1] + _fisher_fetch ( + for pkg in $out_pkgs + if test -s "$pkg/fishfile" + _fisher_fmt <$pkg/fishfile | _fisher_parse -R + end + end) + printf "%s\n" $out_pkgs | _fisher_fmt + end +end + +function _fisher_add -a pkg opts + for src in $pkg/{functions,completions,conf.d}/**.* $pkg/*.fish + set -l target (command basename $src) + switch $src + case $pkg/conf.d\* + set target $fisher_path/conf.d/$target + case $pkg/completions\* + set target $fisher_path/completions/$target + case $pkg/{functions,}\* + switch $target + case uninstall.fish + continue + case {init,key_bindings}.fish + set target $fisher_path/conf.d/(command basename $pkg)\_$target + case \* + set target $fisher_path/functions/$target + end + end + echo "linking $target" | command sed "s|$HOME|~|" >&2 + if set -q opts[1] + command ln -sf $src $target + else + command cp -f $src $target + end + switch $target + case \*.fish + source $target >/dev/null 2>/dev/null + end + end +end + +function _fisher_rm -a pkg + for src in $pkg/{conf.d,completions,functions}/**.* $pkg/*.fish + set -l target (command basename $src) + set -l filename (command basename $target .fish) + switch $src + case $pkg/conf.d\* + test "$filename.fish" = "$target"; and emit "$filename"_uninstall + set target conf.d/$target + case $pkg/completions\* + test "$filename.fish" = "$target"; and complete -ec $filename + set target completions/$target + case $pkg/{,functions}\* + test "$filename.fish" = "$target"; and functions -e $filename + switch $target + case uninstall.fish + source $src + continue + case {init,key_bindings}.fish + set target conf.d/(command basename $pkg)\_$target + case \* + set target functions/$target + end + end + command rm -f $fisher_path/$target + end + if not functions -q fish_prompt + source "$__fish_datadir$__fish_data_dir/functions/fish_prompt.fish" + end +end + +function _fisher_jobs + jobs $argv | command awk '/^[0-9]+\t/ { print $1 }' +end + +function _fisher_now -a elapsed + switch (command uname) + case Darwin \*BSD + command perl -MTime::HiRes -e 'printf("%.0f\n", (Time::HiRes::time() * 1000) - $ARGV[0])' $elapsed + case \* + math (command date "+%s%3N") - "0$elapsed" + end +end diff --git a/config/fish/functions/fuck.fish b/config/fish/functions/fuck.fish new file mode 100644 index 0000000..f0a640f --- /dev/null +++ b/config/fish/functions/fuck.fish @@ -0,0 +1,9 @@ +function fuck -d "Correct your previous console command" + set -l fucked_up_command $history[1] + env TF_SHELL=fish TF_ALIAS=fuck PYTHONIOENCODING=utf-8 thefuck $fucked_up_command | read -l unfucked_command + if [ "$unfucked_command" != "" ] + eval $unfucked_command + builtin history delete --exact --case-sensitive -- $fucked_up_command + builtin history merge ^ /dev/null + end +end diff --git a/config/fish/functions/gh.fish b/config/fish/functions/gh.fish new file mode 100644 index 0000000..d9bf24b --- /dev/null +++ b/config/fish/functions/gh.fish @@ -0,0 +1,57 @@ +# https://github.com/oguzbilgic/dotfiles/blob/master/config/fish/functions/gh.fish +# Save this as ./config/fish/functions/gh.fish + +# Prints the remote url +# Example: git@github.com:oguzbilgic/dotfiles.git +function origin + echo (git remote get-url origin) +end + +# Prints the origin and remote +# Example: oguzbilgic/dotfiles +function org_repo + echo (origin | python -c "import sys; url = sys.stdin.readlines()[0].strip(); print url.split(':')[1][:-4]") +end + +# Prints the current branch name +# Example: master +function branch + echo (git rev-parse --abbrev-ref HEAD) +end + +# Prints the current branch name +# Example: 2cc1aad3e961ca57f6d96498d5fe70a31d9f17f0 +function commit + echo (git rev-parse HEAD) +end + +# Easily open Github from your command line +# +# Commands: +# gh opens the current branch +# gh [file] opens the file for the current branch (ie. gh README.md) +# gh issues opens the issues page +# gh pulls opens the pull requests page +# gh actions opens the actions page +# gh compare opens the compare for the current branch +# gh commit opens the last commit of the current branch +# gh commits opens the commits page for the current branch +function gh + if test (count $argv) -lt 1 + open "https://github.com/"(org_repo)"/tree/"(branch) + else if test -f $argv[1] + open "https://github.com/"(org_repo)"/blob/"(commit)"/"(echo $argv[1]) + else if test $argv[1] = "issues" + open "https://github.com/"(org_repo)"/issues" + else if test $argv[1] = "pulls" + open "https://github.com/"(org_repo)"/issues" + else if test $argv[1] = "actions" + open "https://github.com/"(org_repo)"/issues" + else if test $argv[1] = "compare" + open "https://github.com/"(org_repo)"/compare/"(branch) + else if test $argv[1] = "commits" + open "https://github.com/"(org_repo)"/commits/"(branch) + else if test $argv[1] = "commit" + open "https://github.com/"(org_repo)"/commit/"(commit) + end +end diff --git a/config/fish/functions/hors.fish b/config/fish/functions/hors.fish new file mode 100644 index 0000000..c6bedaa --- /dev/null +++ b/config/fish/functions/hors.fish @@ -0,0 +1,3 @@ +function hors + command hors -c "$argv" +end diff --git a/config/fish/functions/spark.fish b/config/fish/functions/spark.fish new file mode 100644 index 0000000..b05971d --- /dev/null +++ b/config/fish/functions/spark.fish @@ -0,0 +1,51 @@ +set -g spark_version 1.0.0 + +complete -xc spark -n __fish_use_subcommand -a --help -d "Show usage help" +complete -xc spark -n __fish_use_subcommand -a --version -d "$spark_version" +complete -xc spark -n __fish_use_subcommand -a --min -d "Minimum range value" +complete -xc spark -n __fish_use_subcommand -a --max -d "Maximum range value" + +function spark -d "sparkline generator" + if isatty + switch "$argv" + case {,-}-v{ersion,} + echo "spark version $spark_version" + case {,-}-h{elp,} + echo "usage: spark [--min= --max=] Draw sparklines" + echo "examples:" + echo " spark 1 2 3 4" + echo " seq 100 | sort -R | spark" + echo " awk \\\$0=length spark.fish | spark" + case \* + echo $argv | spark $argv + end + return + end + + command awk -v FS="[[:space:],]*" -v argv="$argv" ' + BEGIN { + min = match(argv, /--min=[0-9]+/) ? substr(argv, RSTART + 6, RLENGTH - 6) + 0 : "" + max = match(argv, /--max=[0-9]+/) ? substr(argv, RSTART + 6, RLENGTH - 6) + 0 : "" + } + { + for (i = j = 1; i <= NF; i++) { + if ($i ~ /^--/) continue + if ($i !~ /^-?[0-9]/) data[count + j++] = "" + else { + v = data[count + j++] = int($i) + if (max == "" && min == "") max = min = v + if (max < v) max = v + if (min > v ) min = v + } + } + count += j - 1 + } + END { + n = split(min == max && max ? "▅ ▅" : "▁ ▂ ▃ ▄ ▅ ▆ ▇ █", blocks, " ") + scale = (scale = int(256 * (max - min) / (n - 1))) ? scale : 1 + for (i = 1; i <= count; i++) + out = out (data[i] == "" ? " " : blocks[idx = int(256 * (data[i] - min) / scale) + 1]) + print out + } + ' +end diff --git a/config/fish/functions/su.fish b/config/fish/functions/su.fish new file mode 100644 index 0000000..0a5395c --- /dev/null +++ b/config/fish/functions/su.fish @@ -0,0 +1,3 @@ +function su + command su --shell=/bin/fish $argv +end diff --git a/config/fish/functions/sudosu.fish b/config/fish/functions/sudosu.fish new file mode 100644 index 0000000..d586d6a --- /dev/null +++ b/config/fish/functions/sudosu.fish @@ -0,0 +1,3 @@ +function sudosu + command sudo su --shell=/bin/fish - +end diff --git a/config/fish/functions/time.fish b/config/fish/functions/time.fish new file mode 100644 index 0000000..627b784 --- /dev/null +++ b/config/fish/functions/time.fish @@ -0,0 +1,3 @@ +function time + command time --portability $argv +end diff --git a/config/fontconfig/fonts.conf b/config/fontconfig/fonts.conf new file mode 100644 index 0000000..1806dbc --- /dev/null +++ b/config/fontconfig/fonts.conf @@ -0,0 +1,10 @@ + + + + + Iosevka Term + + Iosevka Custom + + + diff --git a/htop/htoprc b/config/htop/htoprc similarity index 95% rename from htop/htoprc rename to config/htop/htoprc index 5f01c21..f0516c9 100644 --- a/htop/htoprc +++ b/config/htop/htoprc @@ -1,14 +1,14 @@ # Beware! This file is rewritten by htop when settings are changed in the interface. # The parser is also very primitive, and not human-friendly. fields=0 48 17 18 38 39 40 2 46 47 49 1 -sort_key=46 +sort_key=47 sort_direction=1 hide_threads=0 hide_kernel_threads=0 hide_userland_threads=0 shadow_other_users=1 show_thread_names=0 -show_program_path=0 +show_program_path=1 highlight_base_name=1 highlight_megabytes=1 highlight_threads=1 diff --git a/config/i3/bg.jpg b/config/i3/bg.jpg new file mode 100644 index 0000000..32aa47d Binary files /dev/null and b/config/i3/bg.jpg differ diff --git a/i3/config b/config/i3/config similarity index 89% rename from i3/config rename to config/i3/config index 3dbab9e..f669cd7 100644 --- a/i3/config +++ b/config/i3/config @@ -36,16 +36,17 @@ hide_edge_borders smart focus_follows_mouse no workspace_auto_back_and_forth no -workspace_layout tabbed +workspace_layout default for_window [class="(?i)firefox"] move container to workspace $ws1 for_window [class="(?i)thunderbird"] move container to workspace $ws1 - -# sticky enable +for_window [class="(?i)telegram"] move container to workspace $ws2 +for_window [class="(?i)discord"] move container to workspace $ws2 +for_window [class="mpv"] floating enable # class border backgr. text indicator child_border -client.focused #333333 #5f676a #ffffff #2e9ef4 #5f676a -client.focused_inactive #665c54 #665c54 #fbf1c7 #484e50 #665c54 +client.focused #B8BB26 #B8BB26 #1D2021 #2e9ef4 #B8BB26 +client.focused_inactive #83A598 #83A598 #1D2021 #484e50 #83A598 client.unfocused #333333 #222222 #bdae93 #292d2e #222222 client.urgent #2f343a #900000 #fbf1c7 #900000 #900000 client.placeholder #000000 #0c0c0c #fbf1c7 #000000 #0c0c0c @@ -64,7 +65,7 @@ bindsym $mod+F2 exec "dmenu_run" # installed. # bindsym $mod+d exec --no-startup-id i3-dmenu-desktop -bindsym $mod+F4 exec "kitty edit_project" +bindsym $mod+F4 exec "x edit_project" bindsym $mod+v exec "passmenu" # change focus @@ -87,12 +88,6 @@ bindsym $mod+Shift+j move down bindsym $mod+Shift+k move up bindsym $mod+Shift+l move right -# colemak -# bindsym $mod+Shift+k move left -# bindsym $mod+Shift+n move down -# bindsym $mod+Shift+e move up -# bindsym $mod+Shift+i move right - mode "split" { # split in horizontal orientation bindsym h split h mode "default" @@ -120,7 +115,7 @@ bindsym $mod+Shift+space floating toggle bindsym $mod+Shift+0 sticky toggle # change focus between tiling / floating windows -# bindsym $mod+space focus mode_toggle +bindsym $mod+Tab focus mode_toggle # focus the parent container bindsym $mod+a focus parent @@ -169,23 +164,22 @@ bindsym $mod+Shift+r restart # exit i3 (logs you out of your X session) bindsym $mod+Shift+x exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" -bindsym $mod+Shift+z exec "stop_and_lock" +bindsym $mod+z exec "stop_and_lock" +bindsym $mod+Shift+z exec "suspend-and-lock" # resize window (you can also use the mouse for that) mode "resize" { # These bindings trigger as soon as you enter the resize mode - # QWERTY bindsym Left resize shrink width 3 px or 3 ppt bindsym Down resize grow height 3 px or 3 ppt bindsym Up resize shrink height 3 px or 3 ppt bindsym Right resize grow width 3 px or 3 ppt - # colemak - # bindsym k resize shrink width 3 px or 3 ppt - # bindsym n resize grow height 3 px or 3 ppt - # bindsym e resize shrink height 3 px or 3 ppt - # bindsym i resize grow width 3 px or 3 ppt + bindsym h resize shrink width 3 px or 3 ppt + bindsym j resize grow height 3 px or 3 ppt + bindsym k resize shrink height 3 px or 3 ppt + bindsym l resize grow width 3 px or 3 ppt # back to normal: Enter or Escape or $mod+r bindsym Return mode "default" @@ -205,14 +199,14 @@ bindsym $mod+space scratchpad show # finds out, if available) bar { # strip_workspace_numbers yes - status_command i3status-rs ~/.config/i3status-rs/config.toml + status_command i3status-rs-with-env ~/.config/i3status-rs/config.toml font pango:Iosevka Term, FontAwesome Bold 12px colors { background #000000 statusline #d5c4a1 separator #666666 - focused_workspace #83a598 #83a598 #3c3836 + focused_workspace #B8BB26 #B8BB26 #3c3836 active_workspace #5f676a #5f676a #fbf1c7 inactive_workspace #5f676a #5f676a #fbf1c7 urgent_workspace #fb4934 #fb4934 #fbf1c7 diff --git a/i3status/config b/config/i3status/config similarity index 100% rename from i3status/config rename to config/i3status/config diff --git a/kitty/colors/base16/base16-3024-256.conf b/config/kitty/colors/base16/base16-3024-256.conf similarity index 100% rename from kitty/colors/base16/base16-3024-256.conf rename to config/kitty/colors/base16/base16-3024-256.conf diff --git a/kitty/colors/base16/base16-3024.conf b/config/kitty/colors/base16/base16-3024.conf similarity index 100% rename from kitty/colors/base16/base16-3024.conf rename to config/kitty/colors/base16/base16-3024.conf diff --git a/kitty/colors/base16/base16-apathy-256.conf b/config/kitty/colors/base16/base16-apathy-256.conf similarity index 100% rename from kitty/colors/base16/base16-apathy-256.conf rename to config/kitty/colors/base16/base16-apathy-256.conf diff --git a/kitty/colors/base16/base16-apathy.conf b/config/kitty/colors/base16/base16-apathy.conf similarity index 100% rename from kitty/colors/base16/base16-apathy.conf rename to config/kitty/colors/base16/base16-apathy.conf diff --git a/kitty/colors/base16/base16-ashes-256.conf b/config/kitty/colors/base16/base16-ashes-256.conf similarity index 100% rename from kitty/colors/base16/base16-ashes-256.conf rename to config/kitty/colors/base16/base16-ashes-256.conf diff --git a/kitty/colors/base16/base16-ashes.conf b/config/kitty/colors/base16/base16-ashes.conf similarity index 100% rename from kitty/colors/base16/base16-ashes.conf rename to config/kitty/colors/base16/base16-ashes.conf diff --git a/kitty/colors/base16/base16-atelier-cave-256.conf b/config/kitty/colors/base16/base16-atelier-cave-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-cave-256.conf rename to config/kitty/colors/base16/base16-atelier-cave-256.conf diff --git a/kitty/colors/base16/base16-atelier-cave-light-256.conf b/config/kitty/colors/base16/base16-atelier-cave-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-cave-light-256.conf rename to config/kitty/colors/base16/base16-atelier-cave-light-256.conf diff --git a/kitty/colors/base16/base16-atelier-cave-light.conf b/config/kitty/colors/base16/base16-atelier-cave-light.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-cave-light.conf rename to config/kitty/colors/base16/base16-atelier-cave-light.conf diff --git a/kitty/colors/base16/base16-atelier-cave.conf b/config/kitty/colors/base16/base16-atelier-cave.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-cave.conf rename to config/kitty/colors/base16/base16-atelier-cave.conf diff --git a/kitty/colors/base16/base16-atelier-dune-256.conf b/config/kitty/colors/base16/base16-atelier-dune-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-dune-256.conf rename to config/kitty/colors/base16/base16-atelier-dune-256.conf diff --git a/kitty/colors/base16/base16-atelier-dune-light-256.conf b/config/kitty/colors/base16/base16-atelier-dune-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-dune-light-256.conf rename to config/kitty/colors/base16/base16-atelier-dune-light-256.conf diff --git a/kitty/colors/base16/base16-atelier-dune-light.conf b/config/kitty/colors/base16/base16-atelier-dune-light.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-dune-light.conf rename to config/kitty/colors/base16/base16-atelier-dune-light.conf diff --git a/kitty/colors/base16/base16-atelier-dune.conf b/config/kitty/colors/base16/base16-atelier-dune.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-dune.conf rename to config/kitty/colors/base16/base16-atelier-dune.conf diff --git a/kitty/colors/base16/base16-atelier-estuary-256.conf b/config/kitty/colors/base16/base16-atelier-estuary-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-estuary-256.conf rename to config/kitty/colors/base16/base16-atelier-estuary-256.conf diff --git a/kitty/colors/base16/base16-atelier-estuary-light-256.conf b/config/kitty/colors/base16/base16-atelier-estuary-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-estuary-light-256.conf rename to config/kitty/colors/base16/base16-atelier-estuary-light-256.conf diff --git a/kitty/colors/base16/base16-atelier-estuary-light.conf b/config/kitty/colors/base16/base16-atelier-estuary-light.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-estuary-light.conf rename to config/kitty/colors/base16/base16-atelier-estuary-light.conf diff --git a/kitty/colors/base16/base16-atelier-estuary.conf b/config/kitty/colors/base16/base16-atelier-estuary.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-estuary.conf rename to config/kitty/colors/base16/base16-atelier-estuary.conf diff --git a/kitty/colors/base16/base16-atelier-forest-256.conf b/config/kitty/colors/base16/base16-atelier-forest-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-forest-256.conf rename to config/kitty/colors/base16/base16-atelier-forest-256.conf diff --git a/kitty/colors/base16/base16-atelier-forest-light-256.conf b/config/kitty/colors/base16/base16-atelier-forest-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-forest-light-256.conf rename to config/kitty/colors/base16/base16-atelier-forest-light-256.conf diff --git a/kitty/colors/base16/base16-atelier-forest-light.conf b/config/kitty/colors/base16/base16-atelier-forest-light.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-forest-light.conf rename to config/kitty/colors/base16/base16-atelier-forest-light.conf diff --git a/kitty/colors/base16/base16-atelier-forest.conf b/config/kitty/colors/base16/base16-atelier-forest.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-forest.conf rename to config/kitty/colors/base16/base16-atelier-forest.conf diff --git a/kitty/colors/base16/base16-atelier-heath-256.conf b/config/kitty/colors/base16/base16-atelier-heath-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-heath-256.conf rename to config/kitty/colors/base16/base16-atelier-heath-256.conf diff --git a/kitty/colors/base16/base16-atelier-heath-light-256.conf b/config/kitty/colors/base16/base16-atelier-heath-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-heath-light-256.conf rename to config/kitty/colors/base16/base16-atelier-heath-light-256.conf diff --git a/kitty/colors/base16/base16-atelier-heath-light.conf b/config/kitty/colors/base16/base16-atelier-heath-light.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-heath-light.conf rename to config/kitty/colors/base16/base16-atelier-heath-light.conf diff --git a/kitty/colors/base16/base16-atelier-heath.conf b/config/kitty/colors/base16/base16-atelier-heath.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-heath.conf rename to config/kitty/colors/base16/base16-atelier-heath.conf diff --git a/kitty/colors/base16/base16-atelier-lakeside-256.conf b/config/kitty/colors/base16/base16-atelier-lakeside-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-lakeside-256.conf rename to config/kitty/colors/base16/base16-atelier-lakeside-256.conf diff --git a/kitty/colors/base16/base16-atelier-lakeside-light-256.conf b/config/kitty/colors/base16/base16-atelier-lakeside-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-lakeside-light-256.conf rename to config/kitty/colors/base16/base16-atelier-lakeside-light-256.conf diff --git a/kitty/colors/base16/base16-atelier-lakeside-light.conf b/config/kitty/colors/base16/base16-atelier-lakeside-light.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-lakeside-light.conf rename to config/kitty/colors/base16/base16-atelier-lakeside-light.conf diff --git a/kitty/colors/base16/base16-atelier-lakeside.conf b/config/kitty/colors/base16/base16-atelier-lakeside.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-lakeside.conf rename to config/kitty/colors/base16/base16-atelier-lakeside.conf diff --git a/kitty/colors/base16/base16-atelier-plateau-256.conf b/config/kitty/colors/base16/base16-atelier-plateau-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-plateau-256.conf rename to config/kitty/colors/base16/base16-atelier-plateau-256.conf diff --git a/kitty/colors/base16/base16-atelier-plateau-light-256.conf b/config/kitty/colors/base16/base16-atelier-plateau-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-plateau-light-256.conf rename to config/kitty/colors/base16/base16-atelier-plateau-light-256.conf diff --git a/kitty/colors/base16/base16-atelier-plateau-light.conf b/config/kitty/colors/base16/base16-atelier-plateau-light.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-plateau-light.conf rename to config/kitty/colors/base16/base16-atelier-plateau-light.conf diff --git a/kitty/colors/base16/base16-atelier-plateau.conf b/config/kitty/colors/base16/base16-atelier-plateau.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-plateau.conf rename to config/kitty/colors/base16/base16-atelier-plateau.conf diff --git a/kitty/colors/base16/base16-atelier-savanna-256.conf b/config/kitty/colors/base16/base16-atelier-savanna-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-savanna-256.conf rename to config/kitty/colors/base16/base16-atelier-savanna-256.conf diff --git a/kitty/colors/base16/base16-atelier-savanna-light-256.conf b/config/kitty/colors/base16/base16-atelier-savanna-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-savanna-light-256.conf rename to config/kitty/colors/base16/base16-atelier-savanna-light-256.conf diff --git a/kitty/colors/base16/base16-atelier-savanna-light.conf b/config/kitty/colors/base16/base16-atelier-savanna-light.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-savanna-light.conf rename to config/kitty/colors/base16/base16-atelier-savanna-light.conf diff --git a/kitty/colors/base16/base16-atelier-savanna.conf b/config/kitty/colors/base16/base16-atelier-savanna.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-savanna.conf rename to config/kitty/colors/base16/base16-atelier-savanna.conf diff --git a/kitty/colors/base16/base16-atelier-seaside-256.conf b/config/kitty/colors/base16/base16-atelier-seaside-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-seaside-256.conf rename to config/kitty/colors/base16/base16-atelier-seaside-256.conf diff --git a/kitty/colors/base16/base16-atelier-seaside-light-256.conf b/config/kitty/colors/base16/base16-atelier-seaside-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-seaside-light-256.conf rename to config/kitty/colors/base16/base16-atelier-seaside-light-256.conf diff --git a/kitty/colors/base16/base16-atelier-seaside-light.conf b/config/kitty/colors/base16/base16-atelier-seaside-light.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-seaside-light.conf rename to config/kitty/colors/base16/base16-atelier-seaside-light.conf diff --git a/kitty/colors/base16/base16-atelier-seaside.conf b/config/kitty/colors/base16/base16-atelier-seaside.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-seaside.conf rename to config/kitty/colors/base16/base16-atelier-seaside.conf diff --git a/kitty/colors/base16/base16-atelier-sulphurpool-256.conf b/config/kitty/colors/base16/base16-atelier-sulphurpool-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-sulphurpool-256.conf rename to config/kitty/colors/base16/base16-atelier-sulphurpool-256.conf diff --git a/kitty/colors/base16/base16-atelier-sulphurpool-light-256.conf b/config/kitty/colors/base16/base16-atelier-sulphurpool-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-sulphurpool-light-256.conf rename to config/kitty/colors/base16/base16-atelier-sulphurpool-light-256.conf diff --git a/kitty/colors/base16/base16-atelier-sulphurpool-light.conf b/config/kitty/colors/base16/base16-atelier-sulphurpool-light.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-sulphurpool-light.conf rename to config/kitty/colors/base16/base16-atelier-sulphurpool-light.conf diff --git a/kitty/colors/base16/base16-atelier-sulphurpool.conf b/config/kitty/colors/base16/base16-atelier-sulphurpool.conf similarity index 100% rename from kitty/colors/base16/base16-atelier-sulphurpool.conf rename to config/kitty/colors/base16/base16-atelier-sulphurpool.conf diff --git a/kitty/colors/base16/base16-bespin-256.conf b/config/kitty/colors/base16/base16-bespin-256.conf similarity index 100% rename from kitty/colors/base16/base16-bespin-256.conf rename to config/kitty/colors/base16/base16-bespin-256.conf diff --git a/kitty/colors/base16/base16-bespin.conf b/config/kitty/colors/base16/base16-bespin.conf similarity index 100% rename from kitty/colors/base16/base16-bespin.conf rename to config/kitty/colors/base16/base16-bespin.conf diff --git a/kitty/colors/base16/base16-black-metal-256.conf b/config/kitty/colors/base16/base16-black-metal-256.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-256.conf rename to config/kitty/colors/base16/base16-black-metal-256.conf diff --git a/kitty/colors/base16/base16-black-metal-bathory-256.conf b/config/kitty/colors/base16/base16-black-metal-bathory-256.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-bathory-256.conf rename to config/kitty/colors/base16/base16-black-metal-bathory-256.conf diff --git a/kitty/colors/base16/base16-black-metal-bathory.conf b/config/kitty/colors/base16/base16-black-metal-bathory.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-bathory.conf rename to config/kitty/colors/base16/base16-black-metal-bathory.conf diff --git a/kitty/colors/base16/base16-black-metal-burzum-256.conf b/config/kitty/colors/base16/base16-black-metal-burzum-256.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-burzum-256.conf rename to config/kitty/colors/base16/base16-black-metal-burzum-256.conf diff --git a/kitty/colors/base16/base16-black-metal-burzum.conf b/config/kitty/colors/base16/base16-black-metal-burzum.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-burzum.conf rename to config/kitty/colors/base16/base16-black-metal-burzum.conf diff --git a/kitty/colors/base16/base16-black-metal-dark-funeral-256.conf b/config/kitty/colors/base16/base16-black-metal-dark-funeral-256.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-dark-funeral-256.conf rename to config/kitty/colors/base16/base16-black-metal-dark-funeral-256.conf diff --git a/kitty/colors/base16/base16-black-metal-dark-funeral.conf b/config/kitty/colors/base16/base16-black-metal-dark-funeral.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-dark-funeral.conf rename to config/kitty/colors/base16/base16-black-metal-dark-funeral.conf diff --git a/kitty/colors/base16/base16-black-metal-gorgoroth-256.conf b/config/kitty/colors/base16/base16-black-metal-gorgoroth-256.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-gorgoroth-256.conf rename to config/kitty/colors/base16/base16-black-metal-gorgoroth-256.conf diff --git a/kitty/colors/base16/base16-black-metal-gorgoroth.conf b/config/kitty/colors/base16/base16-black-metal-gorgoroth.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-gorgoroth.conf rename to config/kitty/colors/base16/base16-black-metal-gorgoroth.conf diff --git a/kitty/colors/base16/base16-black-metal-immortal-256.conf b/config/kitty/colors/base16/base16-black-metal-immortal-256.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-immortal-256.conf rename to config/kitty/colors/base16/base16-black-metal-immortal-256.conf diff --git a/kitty/colors/base16/base16-black-metal-immortal.conf b/config/kitty/colors/base16/base16-black-metal-immortal.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-immortal.conf rename to config/kitty/colors/base16/base16-black-metal-immortal.conf diff --git a/kitty/colors/base16/base16-black-metal-khold-256.conf b/config/kitty/colors/base16/base16-black-metal-khold-256.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-khold-256.conf rename to config/kitty/colors/base16/base16-black-metal-khold-256.conf diff --git a/kitty/colors/base16/base16-black-metal-khold.conf b/config/kitty/colors/base16/base16-black-metal-khold.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-khold.conf rename to config/kitty/colors/base16/base16-black-metal-khold.conf diff --git a/kitty/colors/base16/base16-black-metal-marduk-256.conf b/config/kitty/colors/base16/base16-black-metal-marduk-256.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-marduk-256.conf rename to config/kitty/colors/base16/base16-black-metal-marduk-256.conf diff --git a/kitty/colors/base16/base16-black-metal-marduk.conf b/config/kitty/colors/base16/base16-black-metal-marduk.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-marduk.conf rename to config/kitty/colors/base16/base16-black-metal-marduk.conf diff --git a/kitty/colors/base16/base16-black-metal-mayhem-256.conf b/config/kitty/colors/base16/base16-black-metal-mayhem-256.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-mayhem-256.conf rename to config/kitty/colors/base16/base16-black-metal-mayhem-256.conf diff --git a/kitty/colors/base16/base16-black-metal-mayhem.conf b/config/kitty/colors/base16/base16-black-metal-mayhem.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-mayhem.conf rename to config/kitty/colors/base16/base16-black-metal-mayhem.conf diff --git a/kitty/colors/base16/base16-black-metal-nile-256.conf b/config/kitty/colors/base16/base16-black-metal-nile-256.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-nile-256.conf rename to config/kitty/colors/base16/base16-black-metal-nile-256.conf diff --git a/kitty/colors/base16/base16-black-metal-nile.conf b/config/kitty/colors/base16/base16-black-metal-nile.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-nile.conf rename to config/kitty/colors/base16/base16-black-metal-nile.conf diff --git a/kitty/colors/base16/base16-black-metal-venom-256.conf b/config/kitty/colors/base16/base16-black-metal-venom-256.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-venom-256.conf rename to config/kitty/colors/base16/base16-black-metal-venom-256.conf diff --git a/kitty/colors/base16/base16-black-metal-venom.conf b/config/kitty/colors/base16/base16-black-metal-venom.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal-venom.conf rename to config/kitty/colors/base16/base16-black-metal-venom.conf diff --git a/kitty/colors/base16/base16-black-metal.conf b/config/kitty/colors/base16/base16-black-metal.conf similarity index 100% rename from kitty/colors/base16/base16-black-metal.conf rename to config/kitty/colors/base16/base16-black-metal.conf diff --git a/kitty/colors/base16/base16-brewer-256.conf b/config/kitty/colors/base16/base16-brewer-256.conf similarity index 100% rename from kitty/colors/base16/base16-brewer-256.conf rename to config/kitty/colors/base16/base16-brewer-256.conf diff --git a/kitty/colors/base16/base16-brewer.conf b/config/kitty/colors/base16/base16-brewer.conf similarity index 100% rename from kitty/colors/base16/base16-brewer.conf rename to config/kitty/colors/base16/base16-brewer.conf diff --git a/kitty/colors/base16/base16-bright-256.conf b/config/kitty/colors/base16/base16-bright-256.conf similarity index 100% rename from kitty/colors/base16/base16-bright-256.conf rename to config/kitty/colors/base16/base16-bright-256.conf diff --git a/kitty/colors/base16/base16-bright.conf b/config/kitty/colors/base16/base16-bright.conf similarity index 100% rename from kitty/colors/base16/base16-bright.conf rename to config/kitty/colors/base16/base16-bright.conf diff --git a/kitty/colors/base16/base16-brogrammer-256.conf b/config/kitty/colors/base16/base16-brogrammer-256.conf similarity index 100% rename from kitty/colors/base16/base16-brogrammer-256.conf rename to config/kitty/colors/base16/base16-brogrammer-256.conf diff --git a/kitty/colors/base16/base16-brogrammer.conf b/config/kitty/colors/base16/base16-brogrammer.conf similarity index 100% rename from kitty/colors/base16/base16-brogrammer.conf rename to config/kitty/colors/base16/base16-brogrammer.conf diff --git a/kitty/colors/base16/base16-brushtrees-256.conf b/config/kitty/colors/base16/base16-brushtrees-256.conf similarity index 100% rename from kitty/colors/base16/base16-brushtrees-256.conf rename to config/kitty/colors/base16/base16-brushtrees-256.conf diff --git a/kitty/colors/base16/base16-brushtrees-dark-256.conf b/config/kitty/colors/base16/base16-brushtrees-dark-256.conf similarity index 100% rename from kitty/colors/base16/base16-brushtrees-dark-256.conf rename to config/kitty/colors/base16/base16-brushtrees-dark-256.conf diff --git a/kitty/colors/base16/base16-brushtrees-dark.conf b/config/kitty/colors/base16/base16-brushtrees-dark.conf similarity index 100% rename from kitty/colors/base16/base16-brushtrees-dark.conf rename to config/kitty/colors/base16/base16-brushtrees-dark.conf diff --git a/kitty/colors/base16/base16-brushtrees.conf b/config/kitty/colors/base16/base16-brushtrees.conf similarity index 100% rename from kitty/colors/base16/base16-brushtrees.conf rename to config/kitty/colors/base16/base16-brushtrees.conf diff --git a/kitty/colors/base16/base16-chalk-256.conf b/config/kitty/colors/base16/base16-chalk-256.conf similarity index 100% rename from kitty/colors/base16/base16-chalk-256.conf rename to config/kitty/colors/base16/base16-chalk-256.conf diff --git a/kitty/colors/base16/base16-chalk.conf b/config/kitty/colors/base16/base16-chalk.conf similarity index 100% rename from kitty/colors/base16/base16-chalk.conf rename to config/kitty/colors/base16/base16-chalk.conf diff --git a/kitty/colors/base16/base16-circus-256.conf b/config/kitty/colors/base16/base16-circus-256.conf similarity index 100% rename from kitty/colors/base16/base16-circus-256.conf rename to config/kitty/colors/base16/base16-circus-256.conf diff --git a/kitty/colors/base16/base16-circus.conf b/config/kitty/colors/base16/base16-circus.conf similarity index 100% rename from kitty/colors/base16/base16-circus.conf rename to config/kitty/colors/base16/base16-circus.conf diff --git a/kitty/colors/base16/base16-classic-dark-256.conf b/config/kitty/colors/base16/base16-classic-dark-256.conf similarity index 100% rename from kitty/colors/base16/base16-classic-dark-256.conf rename to config/kitty/colors/base16/base16-classic-dark-256.conf diff --git a/kitty/colors/base16/base16-classic-dark.conf b/config/kitty/colors/base16/base16-classic-dark.conf similarity index 100% rename from kitty/colors/base16/base16-classic-dark.conf rename to config/kitty/colors/base16/base16-classic-dark.conf diff --git a/kitty/colors/base16/base16-classic-light-256.conf b/config/kitty/colors/base16/base16-classic-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-classic-light-256.conf rename to config/kitty/colors/base16/base16-classic-light-256.conf diff --git a/kitty/colors/base16/base16-classic-light.conf b/config/kitty/colors/base16/base16-classic-light.conf similarity index 100% rename from kitty/colors/base16/base16-classic-light.conf rename to config/kitty/colors/base16/base16-classic-light.conf diff --git a/kitty/colors/base16/base16-codeschool-256.conf b/config/kitty/colors/base16/base16-codeschool-256.conf similarity index 100% rename from kitty/colors/base16/base16-codeschool-256.conf rename to config/kitty/colors/base16/base16-codeschool-256.conf diff --git a/kitty/colors/base16/base16-codeschool.conf b/config/kitty/colors/base16/base16-codeschool.conf similarity index 100% rename from kitty/colors/base16/base16-codeschool.conf rename to config/kitty/colors/base16/base16-codeschool.conf diff --git a/kitty/colors/base16/base16-cupcake-256.conf b/config/kitty/colors/base16/base16-cupcake-256.conf similarity index 100% rename from kitty/colors/base16/base16-cupcake-256.conf rename to config/kitty/colors/base16/base16-cupcake-256.conf diff --git a/kitty/colors/base16/base16-cupcake.conf b/config/kitty/colors/base16/base16-cupcake.conf similarity index 100% rename from kitty/colors/base16/base16-cupcake.conf rename to config/kitty/colors/base16/base16-cupcake.conf diff --git a/kitty/colors/base16/base16-cupertino-256.conf b/config/kitty/colors/base16/base16-cupertino-256.conf similarity index 100% rename from kitty/colors/base16/base16-cupertino-256.conf rename to config/kitty/colors/base16/base16-cupertino-256.conf diff --git a/kitty/colors/base16/base16-cupertino.conf b/config/kitty/colors/base16/base16-cupertino.conf similarity index 100% rename from kitty/colors/base16/base16-cupertino.conf rename to config/kitty/colors/base16/base16-cupertino.conf diff --git a/kitty/colors/base16/base16-darktooth-256.conf b/config/kitty/colors/base16/base16-darktooth-256.conf similarity index 100% rename from kitty/colors/base16/base16-darktooth-256.conf rename to config/kitty/colors/base16/base16-darktooth-256.conf diff --git a/kitty/colors/base16/base16-darktooth.conf b/config/kitty/colors/base16/base16-darktooth.conf similarity index 100% rename from kitty/colors/base16/base16-darktooth.conf rename to config/kitty/colors/base16/base16-darktooth.conf diff --git a/kitty/colors/base16/base16-default-dark-256.conf b/config/kitty/colors/base16/base16-default-dark-256.conf similarity index 100% rename from kitty/colors/base16/base16-default-dark-256.conf rename to config/kitty/colors/base16/base16-default-dark-256.conf diff --git a/kitty/colors/base16/base16-default-dark.conf b/config/kitty/colors/base16/base16-default-dark.conf similarity index 100% rename from kitty/colors/base16/base16-default-dark.conf rename to config/kitty/colors/base16/base16-default-dark.conf diff --git a/kitty/colors/base16/base16-default-light-256.conf b/config/kitty/colors/base16/base16-default-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-default-light-256.conf rename to config/kitty/colors/base16/base16-default-light-256.conf diff --git a/kitty/colors/base16/base16-default-light.conf b/config/kitty/colors/base16/base16-default-light.conf similarity index 100% rename from kitty/colors/base16/base16-default-light.conf rename to config/kitty/colors/base16/base16-default-light.conf diff --git a/kitty/colors/base16/base16-dracula-256.conf b/config/kitty/colors/base16/base16-dracula-256.conf similarity index 100% rename from kitty/colors/base16/base16-dracula-256.conf rename to config/kitty/colors/base16/base16-dracula-256.conf diff --git a/kitty/colors/base16/base16-dracula.conf b/config/kitty/colors/base16/base16-dracula.conf similarity index 100% rename from kitty/colors/base16/base16-dracula.conf rename to config/kitty/colors/base16/base16-dracula.conf diff --git a/kitty/colors/base16/base16-eighties-256.conf b/config/kitty/colors/base16/base16-eighties-256.conf similarity index 100% rename from kitty/colors/base16/base16-eighties-256.conf rename to config/kitty/colors/base16/base16-eighties-256.conf diff --git a/kitty/colors/base16/base16-eighties.conf b/config/kitty/colors/base16/base16-eighties.conf similarity index 100% rename from kitty/colors/base16/base16-eighties.conf rename to config/kitty/colors/base16/base16-eighties.conf diff --git a/kitty/colors/base16/base16-embers-256.conf b/config/kitty/colors/base16/base16-embers-256.conf similarity index 100% rename from kitty/colors/base16/base16-embers-256.conf rename to config/kitty/colors/base16/base16-embers-256.conf diff --git a/kitty/colors/base16/base16-embers.conf b/config/kitty/colors/base16/base16-embers.conf similarity index 100% rename from kitty/colors/base16/base16-embers.conf rename to config/kitty/colors/base16/base16-embers.conf diff --git a/kitty/colors/base16/base16-flat-256.conf b/config/kitty/colors/base16/base16-flat-256.conf similarity index 100% rename from kitty/colors/base16/base16-flat-256.conf rename to config/kitty/colors/base16/base16-flat-256.conf diff --git a/kitty/colors/base16/base16-flat.conf b/config/kitty/colors/base16/base16-flat.conf similarity index 100% rename from kitty/colors/base16/base16-flat.conf rename to config/kitty/colors/base16/base16-flat.conf diff --git a/kitty/colors/base16/base16-github-256.conf b/config/kitty/colors/base16/base16-github-256.conf similarity index 100% rename from kitty/colors/base16/base16-github-256.conf rename to config/kitty/colors/base16/base16-github-256.conf diff --git a/kitty/colors/base16/base16-github.conf b/config/kitty/colors/base16/base16-github.conf similarity index 100% rename from kitty/colors/base16/base16-github.conf rename to config/kitty/colors/base16/base16-github.conf diff --git a/kitty/colors/base16/base16-google-dark-256.conf b/config/kitty/colors/base16/base16-google-dark-256.conf similarity index 100% rename from kitty/colors/base16/base16-google-dark-256.conf rename to config/kitty/colors/base16/base16-google-dark-256.conf diff --git a/kitty/colors/base16/base16-google-dark.conf b/config/kitty/colors/base16/base16-google-dark.conf similarity index 100% rename from kitty/colors/base16/base16-google-dark.conf rename to config/kitty/colors/base16/base16-google-dark.conf diff --git a/kitty/colors/base16/base16-google-light-256.conf b/config/kitty/colors/base16/base16-google-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-google-light-256.conf rename to config/kitty/colors/base16/base16-google-light-256.conf diff --git a/kitty/colors/base16/base16-google-light.conf b/config/kitty/colors/base16/base16-google-light.conf similarity index 100% rename from kitty/colors/base16/base16-google-light.conf rename to config/kitty/colors/base16/base16-google-light.conf diff --git a/kitty/colors/base16/base16-grayscale-dark-256.conf b/config/kitty/colors/base16/base16-grayscale-dark-256.conf similarity index 100% rename from kitty/colors/base16/base16-grayscale-dark-256.conf rename to config/kitty/colors/base16/base16-grayscale-dark-256.conf diff --git a/kitty/colors/base16/base16-grayscale-dark.conf b/config/kitty/colors/base16/base16-grayscale-dark.conf similarity index 100% rename from kitty/colors/base16/base16-grayscale-dark.conf rename to config/kitty/colors/base16/base16-grayscale-dark.conf diff --git a/kitty/colors/base16/base16-grayscale-light-256.conf b/config/kitty/colors/base16/base16-grayscale-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-grayscale-light-256.conf rename to config/kitty/colors/base16/base16-grayscale-light-256.conf diff --git a/kitty/colors/base16/base16-grayscale-light.conf b/config/kitty/colors/base16/base16-grayscale-light.conf similarity index 100% rename from kitty/colors/base16/base16-grayscale-light.conf rename to config/kitty/colors/base16/base16-grayscale-light.conf diff --git a/kitty/colors/base16/base16-greenscreen-256.conf b/config/kitty/colors/base16/base16-greenscreen-256.conf similarity index 100% rename from kitty/colors/base16/base16-greenscreen-256.conf rename to config/kitty/colors/base16/base16-greenscreen-256.conf diff --git a/kitty/colors/base16/base16-greenscreen.conf b/config/kitty/colors/base16/base16-greenscreen.conf similarity index 100% rename from kitty/colors/base16/base16-greenscreen.conf rename to config/kitty/colors/base16/base16-greenscreen.conf diff --git a/kitty/colors/base16/base16-gruvbox-dark-hard-256.conf b/config/kitty/colors/base16/base16-gruvbox-dark-hard-256.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-dark-hard-256.conf rename to config/kitty/colors/base16/base16-gruvbox-dark-hard-256.conf diff --git a/kitty/colors/base16/base16-gruvbox-dark-hard.conf b/config/kitty/colors/base16/base16-gruvbox-dark-hard.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-dark-hard.conf rename to config/kitty/colors/base16/base16-gruvbox-dark-hard.conf diff --git a/kitty/colors/base16/base16-gruvbox-dark-medium-256.conf b/config/kitty/colors/base16/base16-gruvbox-dark-medium-256.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-dark-medium-256.conf rename to config/kitty/colors/base16/base16-gruvbox-dark-medium-256.conf diff --git a/kitty/colors/base16/base16-gruvbox-dark-medium.conf b/config/kitty/colors/base16/base16-gruvbox-dark-medium.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-dark-medium.conf rename to config/kitty/colors/base16/base16-gruvbox-dark-medium.conf diff --git a/kitty/colors/base16/base16-gruvbox-dark-pale-256.conf b/config/kitty/colors/base16/base16-gruvbox-dark-pale-256.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-dark-pale-256.conf rename to config/kitty/colors/base16/base16-gruvbox-dark-pale-256.conf diff --git a/kitty/colors/base16/base16-gruvbox-dark-pale.conf b/config/kitty/colors/base16/base16-gruvbox-dark-pale.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-dark-pale.conf rename to config/kitty/colors/base16/base16-gruvbox-dark-pale.conf diff --git a/kitty/colors/base16/base16-gruvbox-dark-soft-256.conf b/config/kitty/colors/base16/base16-gruvbox-dark-soft-256.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-dark-soft-256.conf rename to config/kitty/colors/base16/base16-gruvbox-dark-soft-256.conf diff --git a/kitty/colors/base16/base16-gruvbox-dark-soft.conf b/config/kitty/colors/base16/base16-gruvbox-dark-soft.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-dark-soft.conf rename to config/kitty/colors/base16/base16-gruvbox-dark-soft.conf diff --git a/kitty/colors/base16/base16-gruvbox-light-hard-256.conf b/config/kitty/colors/base16/base16-gruvbox-light-hard-256.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-light-hard-256.conf rename to config/kitty/colors/base16/base16-gruvbox-light-hard-256.conf diff --git a/kitty/colors/base16/base16-gruvbox-light-hard.conf b/config/kitty/colors/base16/base16-gruvbox-light-hard.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-light-hard.conf rename to config/kitty/colors/base16/base16-gruvbox-light-hard.conf diff --git a/kitty/colors/base16/base16-gruvbox-light-medium-256.conf b/config/kitty/colors/base16/base16-gruvbox-light-medium-256.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-light-medium-256.conf rename to config/kitty/colors/base16/base16-gruvbox-light-medium-256.conf diff --git a/kitty/colors/base16/base16-gruvbox-light-medium.conf b/config/kitty/colors/base16/base16-gruvbox-light-medium.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-light-medium.conf rename to config/kitty/colors/base16/base16-gruvbox-light-medium.conf diff --git a/kitty/colors/base16/base16-gruvbox-light-soft-256.conf b/config/kitty/colors/base16/base16-gruvbox-light-soft-256.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-light-soft-256.conf rename to config/kitty/colors/base16/base16-gruvbox-light-soft-256.conf diff --git a/kitty/colors/base16/base16-gruvbox-light-soft.conf b/config/kitty/colors/base16/base16-gruvbox-light-soft.conf similarity index 100% rename from kitty/colors/base16/base16-gruvbox-light-soft.conf rename to config/kitty/colors/base16/base16-gruvbox-light-soft.conf diff --git a/kitty/colors/base16/base16-harmonic-dark-256.conf b/config/kitty/colors/base16/base16-harmonic-dark-256.conf similarity index 100% rename from kitty/colors/base16/base16-harmonic-dark-256.conf rename to config/kitty/colors/base16/base16-harmonic-dark-256.conf diff --git a/kitty/colors/base16/base16-harmonic-dark.conf b/config/kitty/colors/base16/base16-harmonic-dark.conf similarity index 100% rename from kitty/colors/base16/base16-harmonic-dark.conf rename to config/kitty/colors/base16/base16-harmonic-dark.conf diff --git a/kitty/colors/base16/base16-harmonic-light-256.conf b/config/kitty/colors/base16/base16-harmonic-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-harmonic-light-256.conf rename to config/kitty/colors/base16/base16-harmonic-light-256.conf diff --git a/kitty/colors/base16/base16-harmonic-light.conf b/config/kitty/colors/base16/base16-harmonic-light.conf similarity index 100% rename from kitty/colors/base16/base16-harmonic-light.conf rename to config/kitty/colors/base16/base16-harmonic-light.conf diff --git a/kitty/colors/base16/base16-hopscotch-256.conf b/config/kitty/colors/base16/base16-hopscotch-256.conf similarity index 100% rename from kitty/colors/base16/base16-hopscotch-256.conf rename to config/kitty/colors/base16/base16-hopscotch-256.conf diff --git a/kitty/colors/base16/base16-hopscotch.conf b/config/kitty/colors/base16/base16-hopscotch.conf similarity index 100% rename from kitty/colors/base16/base16-hopscotch.conf rename to config/kitty/colors/base16/base16-hopscotch.conf diff --git a/kitty/colors/base16/base16-icy-256.conf b/config/kitty/colors/base16/base16-icy-256.conf similarity index 100% rename from kitty/colors/base16/base16-icy-256.conf rename to config/kitty/colors/base16/base16-icy-256.conf diff --git a/kitty/colors/base16/base16-icy.conf b/config/kitty/colors/base16/base16-icy.conf similarity index 100% rename from kitty/colors/base16/base16-icy.conf rename to config/kitty/colors/base16/base16-icy.conf diff --git a/kitty/colors/base16/base16-irblack-256.conf b/config/kitty/colors/base16/base16-irblack-256.conf similarity index 100% rename from kitty/colors/base16/base16-irblack-256.conf rename to config/kitty/colors/base16/base16-irblack-256.conf diff --git a/kitty/colors/base16/base16-irblack.conf b/config/kitty/colors/base16/base16-irblack.conf similarity index 100% rename from kitty/colors/base16/base16-irblack.conf rename to config/kitty/colors/base16/base16-irblack.conf diff --git a/kitty/colors/base16/base16-isotope-256.conf b/config/kitty/colors/base16/base16-isotope-256.conf similarity index 100% rename from kitty/colors/base16/base16-isotope-256.conf rename to config/kitty/colors/base16/base16-isotope-256.conf diff --git a/kitty/colors/base16/base16-isotope.conf b/config/kitty/colors/base16/base16-isotope.conf similarity index 100% rename from kitty/colors/base16/base16-isotope.conf rename to config/kitty/colors/base16/base16-isotope.conf diff --git a/kitty/colors/base16/base16-macintosh-256.conf b/config/kitty/colors/base16/base16-macintosh-256.conf similarity index 100% rename from kitty/colors/base16/base16-macintosh-256.conf rename to config/kitty/colors/base16/base16-macintosh-256.conf diff --git a/kitty/colors/base16/base16-macintosh.conf b/config/kitty/colors/base16/base16-macintosh.conf similarity index 100% rename from kitty/colors/base16/base16-macintosh.conf rename to config/kitty/colors/base16/base16-macintosh.conf diff --git a/kitty/colors/base16/base16-marrakesh-256.conf b/config/kitty/colors/base16/base16-marrakesh-256.conf similarity index 100% rename from kitty/colors/base16/base16-marrakesh-256.conf rename to config/kitty/colors/base16/base16-marrakesh-256.conf diff --git a/kitty/colors/base16/base16-marrakesh.conf b/config/kitty/colors/base16/base16-marrakesh.conf similarity index 100% rename from kitty/colors/base16/base16-marrakesh.conf rename to config/kitty/colors/base16/base16-marrakesh.conf diff --git a/kitty/colors/base16/base16-materia-256.conf b/config/kitty/colors/base16/base16-materia-256.conf similarity index 100% rename from kitty/colors/base16/base16-materia-256.conf rename to config/kitty/colors/base16/base16-materia-256.conf diff --git a/kitty/colors/base16/base16-materia.conf b/config/kitty/colors/base16/base16-materia.conf similarity index 100% rename from kitty/colors/base16/base16-materia.conf rename to config/kitty/colors/base16/base16-materia.conf diff --git a/kitty/colors/base16/base16-material-256.conf b/config/kitty/colors/base16/base16-material-256.conf similarity index 100% rename from kitty/colors/base16/base16-material-256.conf rename to config/kitty/colors/base16/base16-material-256.conf diff --git a/kitty/colors/base16/base16-material-darker-256.conf b/config/kitty/colors/base16/base16-material-darker-256.conf similarity index 100% rename from kitty/colors/base16/base16-material-darker-256.conf rename to config/kitty/colors/base16/base16-material-darker-256.conf diff --git a/kitty/colors/base16/base16-material-darker.conf b/config/kitty/colors/base16/base16-material-darker.conf similarity index 100% rename from kitty/colors/base16/base16-material-darker.conf rename to config/kitty/colors/base16/base16-material-darker.conf diff --git a/kitty/colors/base16/base16-material-lighter-256.conf b/config/kitty/colors/base16/base16-material-lighter-256.conf similarity index 100% rename from kitty/colors/base16/base16-material-lighter-256.conf rename to config/kitty/colors/base16/base16-material-lighter-256.conf diff --git a/kitty/colors/base16/base16-material-lighter.conf b/config/kitty/colors/base16/base16-material-lighter.conf similarity index 100% rename from kitty/colors/base16/base16-material-lighter.conf rename to config/kitty/colors/base16/base16-material-lighter.conf diff --git a/kitty/colors/base16/base16-material-palenight-256.conf b/config/kitty/colors/base16/base16-material-palenight-256.conf similarity index 100% rename from kitty/colors/base16/base16-material-palenight-256.conf rename to config/kitty/colors/base16/base16-material-palenight-256.conf diff --git a/kitty/colors/base16/base16-material-palenight.conf b/config/kitty/colors/base16/base16-material-palenight.conf similarity index 100% rename from kitty/colors/base16/base16-material-palenight.conf rename to config/kitty/colors/base16/base16-material-palenight.conf diff --git a/kitty/colors/base16/base16-material-vivid-256.conf b/config/kitty/colors/base16/base16-material-vivid-256.conf similarity index 100% rename from kitty/colors/base16/base16-material-vivid-256.conf rename to config/kitty/colors/base16/base16-material-vivid-256.conf diff --git a/kitty/colors/base16/base16-material-vivid.conf b/config/kitty/colors/base16/base16-material-vivid.conf similarity index 100% rename from kitty/colors/base16/base16-material-vivid.conf rename to config/kitty/colors/base16/base16-material-vivid.conf diff --git a/kitty/colors/base16/base16-material.conf b/config/kitty/colors/base16/base16-material.conf similarity index 100% rename from kitty/colors/base16/base16-material.conf rename to config/kitty/colors/base16/base16-material.conf diff --git a/kitty/colors/base16/base16-mellow-purple-256.conf b/config/kitty/colors/base16/base16-mellow-purple-256.conf similarity index 100% rename from kitty/colors/base16/base16-mellow-purple-256.conf rename to config/kitty/colors/base16/base16-mellow-purple-256.conf diff --git a/kitty/colors/base16/base16-mellow-purple.conf b/config/kitty/colors/base16/base16-mellow-purple.conf similarity index 100% rename from kitty/colors/base16/base16-mellow-purple.conf rename to config/kitty/colors/base16/base16-mellow-purple.conf diff --git a/kitty/colors/base16/base16-mexico-light-256.conf b/config/kitty/colors/base16/base16-mexico-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-mexico-light-256.conf rename to config/kitty/colors/base16/base16-mexico-light-256.conf diff --git a/kitty/colors/base16/base16-mexico-light.conf b/config/kitty/colors/base16/base16-mexico-light.conf similarity index 100% rename from kitty/colors/base16/base16-mexico-light.conf rename to config/kitty/colors/base16/base16-mexico-light.conf diff --git a/kitty/colors/base16/base16-mocha-256.conf b/config/kitty/colors/base16/base16-mocha-256.conf similarity index 100% rename from kitty/colors/base16/base16-mocha-256.conf rename to config/kitty/colors/base16/base16-mocha-256.conf diff --git a/kitty/colors/base16/base16-mocha.conf b/config/kitty/colors/base16/base16-mocha.conf similarity index 100% rename from kitty/colors/base16/base16-mocha.conf rename to config/kitty/colors/base16/base16-mocha.conf diff --git a/kitty/colors/base16/base16-monokai-256.conf b/config/kitty/colors/base16/base16-monokai-256.conf similarity index 100% rename from kitty/colors/base16/base16-monokai-256.conf rename to config/kitty/colors/base16/base16-monokai-256.conf diff --git a/kitty/colors/base16/base16-monokai.conf b/config/kitty/colors/base16/base16-monokai.conf similarity index 100% rename from kitty/colors/base16/base16-monokai.conf rename to config/kitty/colors/base16/base16-monokai.conf diff --git a/kitty/colors/base16/base16-nord-256.conf b/config/kitty/colors/base16/base16-nord-256.conf similarity index 100% rename from kitty/colors/base16/base16-nord-256.conf rename to config/kitty/colors/base16/base16-nord-256.conf diff --git a/kitty/colors/base16/base16-nord.conf b/config/kitty/colors/base16/base16-nord.conf similarity index 100% rename from kitty/colors/base16/base16-nord.conf rename to config/kitty/colors/base16/base16-nord.conf diff --git a/kitty/colors/base16/base16-ocean-256.conf b/config/kitty/colors/base16/base16-ocean-256.conf similarity index 100% rename from kitty/colors/base16/base16-ocean-256.conf rename to config/kitty/colors/base16/base16-ocean-256.conf diff --git a/kitty/colors/base16/base16-ocean.conf b/config/kitty/colors/base16/base16-ocean.conf similarity index 100% rename from kitty/colors/base16/base16-ocean.conf rename to config/kitty/colors/base16/base16-ocean.conf diff --git a/kitty/colors/base16/base16-oceanicnext-256.conf b/config/kitty/colors/base16/base16-oceanicnext-256.conf similarity index 100% rename from kitty/colors/base16/base16-oceanicnext-256.conf rename to config/kitty/colors/base16/base16-oceanicnext-256.conf diff --git a/kitty/colors/base16/base16-oceanicnext.conf b/config/kitty/colors/base16/base16-oceanicnext.conf similarity index 100% rename from kitty/colors/base16/base16-oceanicnext.conf rename to config/kitty/colors/base16/base16-oceanicnext.conf diff --git a/kitty/colors/base16/base16-one-light-256.conf b/config/kitty/colors/base16/base16-one-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-one-light-256.conf rename to config/kitty/colors/base16/base16-one-light-256.conf diff --git a/kitty/colors/base16/base16-one-light.conf b/config/kitty/colors/base16/base16-one-light.conf similarity index 100% rename from kitty/colors/base16/base16-one-light.conf rename to config/kitty/colors/base16/base16-one-light.conf diff --git a/kitty/colors/base16/base16-onedark-256.conf b/config/kitty/colors/base16/base16-onedark-256.conf similarity index 100% rename from kitty/colors/base16/base16-onedark-256.conf rename to config/kitty/colors/base16/base16-onedark-256.conf diff --git a/kitty/colors/base16/base16-onedark.conf b/config/kitty/colors/base16/base16-onedark.conf similarity index 100% rename from kitty/colors/base16/base16-onedark.conf rename to config/kitty/colors/base16/base16-onedark.conf diff --git a/kitty/colors/base16/base16-outrun-dark-256.conf b/config/kitty/colors/base16/base16-outrun-dark-256.conf similarity index 100% rename from kitty/colors/base16/base16-outrun-dark-256.conf rename to config/kitty/colors/base16/base16-outrun-dark-256.conf diff --git a/kitty/colors/base16/base16-outrun-dark.conf b/config/kitty/colors/base16/base16-outrun-dark.conf similarity index 100% rename from kitty/colors/base16/base16-outrun-dark.conf rename to config/kitty/colors/base16/base16-outrun-dark.conf diff --git a/kitty/colors/base16/base16-paraiso-256.conf b/config/kitty/colors/base16/base16-paraiso-256.conf similarity index 100% rename from kitty/colors/base16/base16-paraiso-256.conf rename to config/kitty/colors/base16/base16-paraiso-256.conf diff --git a/kitty/colors/base16/base16-paraiso.conf b/config/kitty/colors/base16/base16-paraiso.conf similarity index 100% rename from kitty/colors/base16/base16-paraiso.conf rename to config/kitty/colors/base16/base16-paraiso.conf diff --git a/kitty/colors/base16/base16-phd-256.conf b/config/kitty/colors/base16/base16-phd-256.conf similarity index 100% rename from kitty/colors/base16/base16-phd-256.conf rename to config/kitty/colors/base16/base16-phd-256.conf diff --git a/kitty/colors/base16/base16-phd.conf b/config/kitty/colors/base16/base16-phd.conf similarity index 100% rename from kitty/colors/base16/base16-phd.conf rename to config/kitty/colors/base16/base16-phd.conf diff --git a/kitty/colors/base16/base16-pico-256.conf b/config/kitty/colors/base16/base16-pico-256.conf similarity index 100% rename from kitty/colors/base16/base16-pico-256.conf rename to config/kitty/colors/base16/base16-pico-256.conf diff --git a/kitty/colors/base16/base16-pico.conf b/config/kitty/colors/base16/base16-pico.conf similarity index 100% rename from kitty/colors/base16/base16-pico.conf rename to config/kitty/colors/base16/base16-pico.conf diff --git a/kitty/colors/base16/base16-pop-256.conf b/config/kitty/colors/base16/base16-pop-256.conf similarity index 100% rename from kitty/colors/base16/base16-pop-256.conf rename to config/kitty/colors/base16/base16-pop-256.conf diff --git a/kitty/colors/base16/base16-pop.conf b/config/kitty/colors/base16/base16-pop.conf similarity index 100% rename from kitty/colors/base16/base16-pop.conf rename to config/kitty/colors/base16/base16-pop.conf diff --git a/kitty/colors/base16/base16-porple-256.conf b/config/kitty/colors/base16/base16-porple-256.conf similarity index 100% rename from kitty/colors/base16/base16-porple-256.conf rename to config/kitty/colors/base16/base16-porple-256.conf diff --git a/kitty/colors/base16/base16-porple.conf b/config/kitty/colors/base16/base16-porple.conf similarity index 100% rename from kitty/colors/base16/base16-porple.conf rename to config/kitty/colors/base16/base16-porple.conf diff --git a/kitty/colors/base16/base16-railscasts-256.conf b/config/kitty/colors/base16/base16-railscasts-256.conf similarity index 100% rename from kitty/colors/base16/base16-railscasts-256.conf rename to config/kitty/colors/base16/base16-railscasts-256.conf diff --git a/kitty/colors/base16/base16-railscasts.conf b/config/kitty/colors/base16/base16-railscasts.conf similarity index 100% rename from kitty/colors/base16/base16-railscasts.conf rename to config/kitty/colors/base16/base16-railscasts.conf diff --git a/kitty/colors/base16/base16-rebecca-256.conf b/config/kitty/colors/base16/base16-rebecca-256.conf similarity index 100% rename from kitty/colors/base16/base16-rebecca-256.conf rename to config/kitty/colors/base16/base16-rebecca-256.conf diff --git a/kitty/colors/base16/base16-rebecca.conf b/config/kitty/colors/base16/base16-rebecca.conf similarity index 100% rename from kitty/colors/base16/base16-rebecca.conf rename to config/kitty/colors/base16/base16-rebecca.conf diff --git a/kitty/colors/base16/base16-seti-256.conf b/config/kitty/colors/base16/base16-seti-256.conf similarity index 100% rename from kitty/colors/base16/base16-seti-256.conf rename to config/kitty/colors/base16/base16-seti-256.conf diff --git a/kitty/colors/base16/base16-seti.conf b/config/kitty/colors/base16/base16-seti.conf similarity index 100% rename from kitty/colors/base16/base16-seti.conf rename to config/kitty/colors/base16/base16-seti.conf diff --git a/kitty/colors/base16/base16-shapeshifter-256.conf b/config/kitty/colors/base16/base16-shapeshifter-256.conf similarity index 100% rename from kitty/colors/base16/base16-shapeshifter-256.conf rename to config/kitty/colors/base16/base16-shapeshifter-256.conf diff --git a/kitty/colors/base16/base16-shapeshifter.conf b/config/kitty/colors/base16/base16-shapeshifter.conf similarity index 100% rename from kitty/colors/base16/base16-shapeshifter.conf rename to config/kitty/colors/base16/base16-shapeshifter.conf diff --git a/kitty/colors/base16/base16-snazzy-256.conf b/config/kitty/colors/base16/base16-snazzy-256.conf similarity index 100% rename from kitty/colors/base16/base16-snazzy-256.conf rename to config/kitty/colors/base16/base16-snazzy-256.conf diff --git a/kitty/colors/base16/base16-snazzy.conf b/config/kitty/colors/base16/base16-snazzy.conf similarity index 100% rename from kitty/colors/base16/base16-snazzy.conf rename to config/kitty/colors/base16/base16-snazzy.conf diff --git a/kitty/colors/base16/base16-solarflare-256.conf b/config/kitty/colors/base16/base16-solarflare-256.conf similarity index 100% rename from kitty/colors/base16/base16-solarflare-256.conf rename to config/kitty/colors/base16/base16-solarflare-256.conf diff --git a/kitty/colors/base16/base16-solarflare.conf b/config/kitty/colors/base16/base16-solarflare.conf similarity index 100% rename from kitty/colors/base16/base16-solarflare.conf rename to config/kitty/colors/base16/base16-solarflare.conf diff --git a/kitty/colors/base16/base16-solarized-dark-256.conf b/config/kitty/colors/base16/base16-solarized-dark-256.conf similarity index 100% rename from kitty/colors/base16/base16-solarized-dark-256.conf rename to config/kitty/colors/base16/base16-solarized-dark-256.conf diff --git a/kitty/colors/base16/base16-solarized-dark.conf b/config/kitty/colors/base16/base16-solarized-dark.conf similarity index 100% rename from kitty/colors/base16/base16-solarized-dark.conf rename to config/kitty/colors/base16/base16-solarized-dark.conf diff --git a/kitty/colors/base16/base16-solarized-light-256.conf b/config/kitty/colors/base16/base16-solarized-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-solarized-light-256.conf rename to config/kitty/colors/base16/base16-solarized-light-256.conf diff --git a/kitty/colors/base16/base16-solarized-light.conf b/config/kitty/colors/base16/base16-solarized-light.conf similarity index 100% rename from kitty/colors/base16/base16-solarized-light.conf rename to config/kitty/colors/base16/base16-solarized-light.conf diff --git a/kitty/colors/base16/base16-spacemacs-256.conf b/config/kitty/colors/base16/base16-spacemacs-256.conf similarity index 100% rename from kitty/colors/base16/base16-spacemacs-256.conf rename to config/kitty/colors/base16/base16-spacemacs-256.conf diff --git a/kitty/colors/base16/base16-spacemacs.conf b/config/kitty/colors/base16/base16-spacemacs.conf similarity index 100% rename from kitty/colors/base16/base16-spacemacs.conf rename to config/kitty/colors/base16/base16-spacemacs.conf diff --git a/kitty/colors/base16/base16-summerfruit-dark-256.conf b/config/kitty/colors/base16/base16-summerfruit-dark-256.conf similarity index 100% rename from kitty/colors/base16/base16-summerfruit-dark-256.conf rename to config/kitty/colors/base16/base16-summerfruit-dark-256.conf diff --git a/kitty/colors/base16/base16-summerfruit-dark.conf b/config/kitty/colors/base16/base16-summerfruit-dark.conf similarity index 100% rename from kitty/colors/base16/base16-summerfruit-dark.conf rename to config/kitty/colors/base16/base16-summerfruit-dark.conf diff --git a/kitty/colors/base16/base16-summerfruit-light-256.conf b/config/kitty/colors/base16/base16-summerfruit-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-summerfruit-light-256.conf rename to config/kitty/colors/base16/base16-summerfruit-light-256.conf diff --git a/kitty/colors/base16/base16-summerfruit-light.conf b/config/kitty/colors/base16/base16-summerfruit-light.conf similarity index 100% rename from kitty/colors/base16/base16-summerfruit-light.conf rename to config/kitty/colors/base16/base16-summerfruit-light.conf diff --git a/kitty/colors/base16/base16-tomorrow-256.conf b/config/kitty/colors/base16/base16-tomorrow-256.conf similarity index 100% rename from kitty/colors/base16/base16-tomorrow-256.conf rename to config/kitty/colors/base16/base16-tomorrow-256.conf diff --git a/kitty/colors/base16/base16-tomorrow-night-256.conf b/config/kitty/colors/base16/base16-tomorrow-night-256.conf similarity index 100% rename from kitty/colors/base16/base16-tomorrow-night-256.conf rename to config/kitty/colors/base16/base16-tomorrow-night-256.conf diff --git a/kitty/colors/base16/base16-tomorrow-night.conf b/config/kitty/colors/base16/base16-tomorrow-night.conf similarity index 100% rename from kitty/colors/base16/base16-tomorrow-night.conf rename to config/kitty/colors/base16/base16-tomorrow-night.conf diff --git a/kitty/colors/base16/base16-tomorrow.conf b/config/kitty/colors/base16/base16-tomorrow.conf similarity index 100% rename from kitty/colors/base16/base16-tomorrow.conf rename to config/kitty/colors/base16/base16-tomorrow.conf diff --git a/kitty/colors/base16/base16-tube-256.conf b/config/kitty/colors/base16/base16-tube-256.conf similarity index 100% rename from kitty/colors/base16/base16-tube-256.conf rename to config/kitty/colors/base16/base16-tube-256.conf diff --git a/kitty/colors/base16/base16-tube.conf b/config/kitty/colors/base16/base16-tube.conf similarity index 100% rename from kitty/colors/base16/base16-tube.conf rename to config/kitty/colors/base16/base16-tube.conf diff --git a/kitty/colors/base16/base16-twilight-256.conf b/config/kitty/colors/base16/base16-twilight-256.conf similarity index 100% rename from kitty/colors/base16/base16-twilight-256.conf rename to config/kitty/colors/base16/base16-twilight-256.conf diff --git a/kitty/colors/base16/base16-twilight.conf b/config/kitty/colors/base16/base16-twilight.conf similarity index 100% rename from kitty/colors/base16/base16-twilight.conf rename to config/kitty/colors/base16/base16-twilight.conf diff --git a/kitty/colors/base16/base16-unikitty-dark-256.conf b/config/kitty/colors/base16/base16-unikitty-dark-256.conf similarity index 100% rename from kitty/colors/base16/base16-unikitty-dark-256.conf rename to config/kitty/colors/base16/base16-unikitty-dark-256.conf diff --git a/kitty/colors/base16/base16-unikitty-dark.conf b/config/kitty/colors/base16/base16-unikitty-dark.conf similarity index 100% rename from kitty/colors/base16/base16-unikitty-dark.conf rename to config/kitty/colors/base16/base16-unikitty-dark.conf diff --git a/kitty/colors/base16/base16-unikitty-light-256.conf b/config/kitty/colors/base16/base16-unikitty-light-256.conf similarity index 100% rename from kitty/colors/base16/base16-unikitty-light-256.conf rename to config/kitty/colors/base16/base16-unikitty-light-256.conf diff --git a/kitty/colors/base16/base16-unikitty-light.conf b/config/kitty/colors/base16/base16-unikitty-light.conf similarity index 100% rename from kitty/colors/base16/base16-unikitty-light.conf rename to config/kitty/colors/base16/base16-unikitty-light.conf diff --git a/kitty/colors/base16/base16-woodland-256.conf b/config/kitty/colors/base16/base16-woodland-256.conf similarity index 100% rename from kitty/colors/base16/base16-woodland-256.conf rename to config/kitty/colors/base16/base16-woodland-256.conf diff --git a/kitty/colors/base16/base16-woodland.conf b/config/kitty/colors/base16/base16-woodland.conf similarity index 100% rename from kitty/colors/base16/base16-woodland.conf rename to config/kitty/colors/base16/base16-woodland.conf diff --git a/kitty/colors/base16/base16-xcode-dusk-256.conf b/config/kitty/colors/base16/base16-xcode-dusk-256.conf similarity index 100% rename from kitty/colors/base16/base16-xcode-dusk-256.conf rename to config/kitty/colors/base16/base16-xcode-dusk-256.conf diff --git a/kitty/colors/base16/base16-xcode-dusk.conf b/config/kitty/colors/base16/base16-xcode-dusk.conf similarity index 100% rename from kitty/colors/base16/base16-xcode-dusk.conf rename to config/kitty/colors/base16/base16-xcode-dusk.conf diff --git a/kitty/colors/base16/base16-zenburn-256.conf b/config/kitty/colors/base16/base16-zenburn-256.conf similarity index 100% rename from kitty/colors/base16/base16-zenburn-256.conf rename to config/kitty/colors/base16/base16-zenburn-256.conf diff --git a/kitty/colors/base16/base16-zenburn.conf b/config/kitty/colors/base16/base16-zenburn.conf similarity index 100% rename from kitty/colors/base16/base16-zenburn.conf rename to config/kitty/colors/base16/base16-zenburn.conf diff --git a/kitty/kitty.conf b/config/kitty/kitty.conf similarity index 88% rename from kitty/kitty.conf rename to config/kitty/kitty.conf index 9d6d88b..eee3ad4 100644 --- a/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -2,11 +2,11 @@ include colors/base16/base16-gruvbox-dark-hard-256.conf shell shell -font_family Iosevka Term Medium +font_family Iosevka\ Term Medium font_size 11 -bold_font Iosevka Term Medium -italic_font Iosevka Term Medium Oblique -bold_italic_font Iosevka Term Medium Oblique +bold_font Iosevka\ Term Medium +italic_font Iosevka\ Term Medium Oblique +bold_italic_font Iosevka\ Term Medium Oblique adjust_line_height 95% padding_width 0 diff --git a/config/mutt/colors b/config/mutt/colors new file mode 100644 index 0000000..bf8782b --- /dev/null +++ b/config/mutt/colors @@ -0,0 +1,67 @@ +source ~/.config/mutt/colors-gruvbox-shuber.muttrc +# For neomutt uncomment this line: +source ~/.config/mutt/colors-gruvbox-shuber-extended.muttrc + +# Sidebar +# +# Color of the highlighted, but not open, mailbox. +color sidebar_highlight black color8 +# Color of the divider separating the Sidebar from NeoMutt panels +color sidebar_divider color8 color234 +# Color to give mailboxes containing flagged mail +color sidebar_flagged default color234 +# Color to give mailboxes containing new mail +color sidebar_new color108 color234 +# color sidebar_spoolfile green default +color sidebar_spoolfile yellow color234 +# Color to give mailboxes containing no new/flagged mail, etc. +color sidebar_ordinary default color234 + +# Color if the attachment is autoviewed +color attach_headers brightgreen default "Autoview" +# Color only the brackets around the headers +color attach_headers brightyellow default "^\\[--" +color attach_headers brightyellow default "--]$" +# Color the mime type and the size +color attach_headers green default "Type: [a-z]+/[a-z0-9\-]+" +color attach_headers green default "Size: [0-9\.]+[KM]" +# Color GPGME signature checks +color attach_headers brightgreen default "Good signature from.*" +color attach_headers brightred default "Bad signature from.*" +color attach_headers brightred default "BAD signature from.*" +color attach_headers brightred default "Note: This key has expired!" +color attach_headers brightmagenta default "Problem signature from.*" +color attach_headers brightmagenta default "WARNING: This key is not certified with a trusted signature!" +color attach_headers brightmagenta default " There is no indication that the signature belongs to the owner." +color attach_headers brightmagenta default "can't handle these multiple signatures" +color attach_headers brightmagenta default "signature verification suppressed" +color attach_headers brightmagenta default "invalid node with packet of type" + +# Author name, %A %a %F %L %n +# Give the author column a dark grey background +color index_author default color234 '.*' +# Highlight a particular from (~f) +# color index_author brightyellow color234 '~fRay Charles' +# Message flags, %S %Z +# Highlight the flags for flagged (~F) emails +color index_flags default red '~F' +# Subject, %s +# Look for a particular subject (~s) +# color index_subject brightcyan default '~s\(closes #[0-9]+\)' +# Number of messages in a collapsed thread, %M +color index_collapsed default brightblue +# Date field +color index_date green default +# Message label, %y %Y +color index_label default brightgreen +# Message number, %C +color index_number red default +# Message size, %c %l +color index_size cyan default + +# The 'progress' feature provides clear visual feedback for +# slow tasks, such as indexing a large folder over the net. + +# Set the color of the progress bar +# White text on a red background +color progress white red diff --git a/mutt/colors-gruvbox-shuber-extended.muttrc b/config/mutt/colors-gruvbox-shuber-extended.muttrc similarity index 100% rename from mutt/colors-gruvbox-shuber-extended.muttrc rename to config/mutt/colors-gruvbox-shuber-extended.muttrc diff --git a/mutt/colors-gruvbox-shuber.muttrc b/config/mutt/colors-gruvbox-shuber.muttrc similarity index 100% rename from mutt/colors-gruvbox-shuber.muttrc rename to config/mutt/colors-gruvbox-shuber.muttrc diff --git a/mutt/mailcap b/config/mutt/mailcap similarity index 100% rename from mutt/mailcap rename to config/mutt/mailcap diff --git a/config/mutt/muttrc b/config/mutt/muttrc new file mode 100644 index 0000000..450c493 --- /dev/null +++ b/config/mutt/muttrc @@ -0,0 +1,179 @@ +## General options +set header_cache = "~/.cache/mutt" + +set mbox_type = Maildir +set folder = ~/Mail +set include +set markers = no +set realname = "Sergey Besedin" +set reverse_name + +set confirmappend = no +set delete +set edit_headers +set fast_reply +set mail_check = 30 +set move = no +set sort_browser = date +set sort = threads +set sort_aux = reverse-last-date-received +set editor = "nvim" +set send_charset = "utf-8" + +set new_mail_command="notify-send 'New e-mail' '%n new messages, %u unread.' &" + +source ~/.config/mutt/colors + +# notmuch configuration +# set nm_default_uri = "notmuch:///home/krsh/Mail" +# set virtual_spoolfile=yes +# +# virtual-mailboxes "inbox" "notmuch://?query=tag:inbox" +# virtual-mailboxes "archive" "notmuch://?query=tag:archive" +# virtual-mailboxes "sent" "notmuch://?query=tag:sent" +# virtual-mailboxes "newsletters" "notmuch://?query=tag:newsletters" +# +# macro index A "+archive -unread -inbox\\n" "Archive message" +# macro index c "?" "Change to vfolder overview" +# macro index \\\\ "" "Search mailbox" + +# set nm_db_limit = 0 +# set nm_exclude_tags = "spam" +# set nm_query_type = "messages" + +# The messages tagged with these tags are excluded and not loaded +# from notmuch DB to NeoMutt unless specified explicitly. + +# # This option specifies timeout for Notmuch database. Default is 5 seconds. +# set nm_open_timeout = 5 +# # This variable specifies notmuch query type, supported types: 'threads' and +# # 'messages'. +# set nm_query_type = messages +# # Add messages stored to the NeoMutt record (see $record in the NeoMutt docs) +# # also to notmuch DB. If you reply to an email then the new email inherits +# # tags from the original email. +# set nm_record = no +# # Tags that should be removed or added to the to the messages stored in the NeoMutt record. +# # example: +# # set record = "~/sent-mails" +# # set nm_record = yes +# # set nm_record_tags = "-inbox,archive,me" +# set nm_record_tags = "" +# # This variable specifies notmuch tag which is used for unread messages. +# set nm_unread_tag = unread +# # This variable allows you to customize the file browser display for virtual +# # folders to your personal taste. +# # %C current folder number +# # %f folder name (description) +# # %m number of messages in the mailbox * +# # %n number of unread messages in the mailbox * +# # %N N if mailbox has new mail, blank otherwise +# # %>X right justify the rest of the string and pad with character ``X'' +# # %|X pad to the end of the line with character ``X'' +# # %*X soft-fill with character ``X'' as pad +# set vfolder_format = "%6n(%6N) %f" +# # When set, NeoMutt will use the first virtual mailbox (see virtual-mailboxes) +# # as a spoolfile. +# set virtual_spoolfile = no +# setup time window preferences +# first setup the duration, and then the time unit of that duration +# when set to 0 (the default) the search window feature is disabled +# set nm_query_window_duration=1 +# set nm_query_window_timebase="month" # or "hour", "day", "week", "month", "year" +# -------------------------------------------------------------------------- +# FUNCTIONS – shown with an example mapping +# -------------------------------------------------------------------------- +# open a different virtual folder +# bind index,pager X change-vfolder +# # read entire thread of the current message +# bind index,pager + entire-thread +# # generate virtual folder from query +# bind index,pager \eX vfolder-from-query +# # generate virtual folder from query with time window +# bind index < vfolder-window-backward +# bind index > vfolder-window-forward + +set sidebar_width = 30 +set sidebar_visible = no +# set sidebar_format = "%B%?F? ?%* %?N?%N/?%S" +set sidebar_format = "%B %* %?N?%N/?%?S?%S?" +set sidebar_new_mail_only = no +set sidebar_delim_chars = "/" # Delete everything up to the last / character +set sidebar_short_path = no +set sidebar_folder_indent # Indent folders whose names we've shortened +set sidebar_indent_string=" " # Indent with two spaces +set mail_check_stats + +set pager_index_lines = 10 + +# The default index_format is: +# '%4C %Z %{%b %d} %-15.15L (%?l?%4l&%4c?) %s' +# +# We replace the date field '%{%b %d}', giving: +set index_format='%4C %Z %<[y?%<[m?%<[d?%[%H:%M ]&%[%a %d]>&%[%b %d]>&%[%m/%y ]> %-15.15L (%?l?%4l&%4c?) %s' +# Test Date Range Format String Example +# -------------------------------------------- +# %[d Today %[%H:%M ] 12:34 +# %[m This month %[%a %d] Thu 12 +# %[y This year %[%b %d] Dec 10 +# — Older %[%m/%y ] 06/15 + + +# Limit view to current thread +bind index L limit-current-thread + +# The 'S' (skip-quoted) command scrolls the pager past the quoted text (usually +# indented with '> '. Setting 'skip_quoted_offset' leaves some lines of quoted +# text on screen for context. + +# Show three quoted lines before the reply +set skip_quoted_offset = 3 + +# Macros +macro index Z "mbsync -a" "Sync all" + +# More vim-like bindings +# bind index i noop +bind attach,index g noop # clear for next binding +bind attach,index gg first-entry +bind attach,index G last-entry +bind index N search-opposite +# bind pager i exit +# bind pager q toggle-quoted +bind pager / search + +# QWERTY +bind pager j next-line +bind pager k previous-line + +bind pager g noop # clear for next binding +bind pager gg top +bind pager G bottom +bind index,pager \# noop +bind index,pager \& noop +bind index,pager R group-reply + +## Keys +bind attach,index,pager \CD next-page +bind attach,index,pager \CU previous-page + +bind index,pager B sidebar-toggle-visible +bind index,pager \CO sidebar-open + +# QWERTY +bind index,pager \Ck sidebar-prev +bind index,pager \Cj sidebar-next + +macro attach 'V' "cat > ~/.cache/mutt/mail.html; ~/bin/preview-html ~/.cache/mutt/mail.html; rm ~/.cache/mutt/mail.html" +macro index 'c' '?^K=' + +set mailcap_path = ~/.config/mutt/mailcap +auto_view text/html +alternative_order text/plain text/html + +folder-hook . 'set read_inc=1000' + +# GnuPG bootstrap +# source ~/.mutt/gpg.rc + +source ~/.config/mutt/mailboxes.muttrc diff --git a/.newsboat/config b/config/newsboat/config similarity index 99% rename from .newsboat/config rename to config/newsboat/config index ce1123f..dbb2468 100644 --- a/.newsboat/config +++ b/config/newsboat/config @@ -6,7 +6,7 @@ # ---------------------------------------------------------------------- auto-reload no -browser surf +browser qutebrowser cleanup-on-quit yes feed-sort-order firsttag max-downloads 4 diff --git a/config/nvim/coc-settings.json b/config/nvim/coc-settings.json new file mode 100644 index 0000000..9358efb --- /dev/null +++ b/config/nvim/coc-settings.json @@ -0,0 +1,38 @@ +{ + "solargraph.diagnostics": true, + "solargraph.useBundler": false, + "solargraph.hover": true, + "solargraph.references": true, + "solargraph.definitions": true, + "diagnostic.errorSign": "E>", + "diagnostic.warningSign": "W>", + "diagnostic.infoSign": "I>", + "diagnostic.hintSign": "?>", + "diagnostic.locationlist": true, + "diagnostic.displayByAle": false, + "diagnostic.messageTarget": "float", + "diagnostic.messageDelay": 250, + "diagnostic.refreshOnInsertMode": true, + "diagnostic.refreshAfterSave": true, + "highlight.disableLanguages": ["slim", "md"], + "coc.source.omni.filetypes": [], + "coc.source.omni.enable": false, + "eslint.enable": true, + "rust-analyzer.cargo-watch.enable": true, + "languageserver": { + "golang": { + "command": "gopls", + "rootPatterns": ["go.mod", ".vim/", ".git/", ".hg/"], + "filetypes": ["go"], + "initializationOptions": { + "usePlaceholders": true + } + }, + "godot": { + "host": "127.0.0.1", + "port": 6008, + "trace.server": "verbose", + "filetypes": ["gd", "tscn", "gdscript3"] + } + } +} diff --git a/nvim/init.vim b/config/nvim/init.vim similarity index 88% rename from nvim/init.vim rename to config/nvim/init.vim index 90209fc..3ac01a7 100644 --- a/nvim/init.vim +++ b/config/nvim/init.vim @@ -1,7 +1,7 @@ set nocompatible filetype off -source $HOME/go/src/github.com/junegunn/fzf/plugin/fzf.vim +source /usr/share/nvim/runtime/plugin/fzf.vim call plug#begin('$HOME/.config/nvim/bundle') @@ -34,7 +34,7 @@ Plug 'tomtom/tcomment_vim' Plug 'majutsushi/tagbar', { 'on': 'TagbarToggle' } -Plug 'scrooloose/nerdtree', { 'on': ['NERDTreeToggle', 'NERDTreeFind'] } +Plug 'scrooloose/nerdtree' Plug 'milkypostman/vim-togglelist' " l and q " Snippets @@ -47,7 +47,7 @@ Plug 'itchyny/lightline.vim' Plug 'maximbaz/lightline-ale' Plug 'shinchu/lightline-gruvbox.vim' -Plug 'ryanoasis/vim-devicons' +" Plug 'ryanoasis/vim-devicons' Plug 'editorconfig/editorconfig-vim' Plug 'tpope/vim-surround' @@ -195,47 +195,47 @@ autocmd FileType ledger setlocal sw=4 ts=4 sts=4 autocmd FileType rust setlocal sw=4 ts=4 sts=4 " FZF with dev icons -function! FZFWithDevIcons() - let l:fzf_files_options = ' -m --bind ctrl-d:preview-page-down,ctrl-u:preview-page-up --preview "bat --color always --style numbers {2..}"' - - function! s:files() - let l:files = split(system($FZF_DEFAULT_COMMAND), '\n') - return s:prepend_icon(l:files) - endfunction - - function! s:prepend_icon(candidates) - let result = [] - for candidate in a:candidates - let filename = fnamemodify(candidate, ':p:t') - let icon = WebDevIconsGetFileTypeSymbol(filename, isdirectory(filename)) - call add(result, printf("%s %s", icon, candidate)) - endfor - - return result - endfunction - - function! s:edit_file(items) - let items = a:items - let i = 1 - let ln = len(items) - while i < ln - let item = items[i] - let parts = split(item, ' ') - let file_path = get(parts, 1, '') - let items[i] = file_path - let i += 1 - endwhile - call s:Sink(items) - endfunction - - let opts = fzf#wrap({}) - let opts.source = files() - let s:Sink = opts['sink*'] - let opts['sink*'] = function('s:edit_file') - let opts.options .= l:fzf_files_options - call fzf#run(opts) - -endfunction +" function! FZFWithDevIcons() +" let l:fzf_files_options = ' -m --bind ctrl-d:preview-page-down,ctrl-u:preview-page-up --preview "bat --color always --style numbers {2..}"' +" +" function! s:files() +" let l:files = split(system($FZF_DEFAULT_COMMAND), '\n') +" return s:prepend_icon(l:files) +" endfunction +" +" function! s:prepend_icon(candidates) +" let result = [] +" for candidate in a:candidates +" let filename = fnamemodify(candidate, ':p:t') +" let icon = WebDevIconsGetFileTypeSymbol(filename, isdirectory(filename)) +" call add(result, printf("%s %s", icon, candidate)) +" endfor +" +" return result +" endfunction +" +" function! s:edit_file(items) +" let items = a:items +" let i = 1 +" let ln = len(items) +" while i < ln +" let item = items[i] +" let parts = split(item, ' ') +" let file_path = get(parts, 1, '') +" let items[i] = file_path +" let i += 1 +" endwhile +" call s:Sink(items) +" endfunction +" +" let opts = fzf#wrap({}) +" let opts.source = files() +" let s:Sink = opts['sink*'] +" let opts['sink*'] = function('s:edit_file') +" let opts.options .= l:fzf_files_options +" call fzf#run(opts) +" +" endfunction " Neocomplete snippets imap (neosnippet_expand_or_jump) @@ -396,8 +396,8 @@ highlight link GitGutterAddLineNr GitGutterAddLine highlight link GitGutterDeleteLineNr GitGutterDeleteLine " fzf -" silent! nmap :FZF -silent! nmap :call FZFWithDevIcons() +silent! nmap :FZF +" silent! nmap :call FZFWithDevIcons() " An action can be a reference to a function that processes selected lines function! s:build_quickfix_list(lines) @@ -498,7 +498,6 @@ set cf " Enable error files & error jumping. set clipboard=unnamed " Yanks go on clipboard instead. set nu " Line numbers on set relativenumber -set cursorline set wrap set linebreak @@ -528,8 +527,8 @@ set colorcolumn=80,120 set nostartofline " Don’t reset cursor to start of line when moving around. set noeol " Don’t add empty newlines at the end of files -autocmd InsertEnter * set cul " Show cursor line in insert mode -autocmd InsertLeave * set nocul " Hide cursor line in insert mode +autocmd InsertEnter * set cursorline " Show cursor line in insert mode +autocmd InsertLeave * set nocursorline " Hide cursor line in insert mode " Visual set showmatch " Show matching brackets. @@ -549,14 +548,14 @@ set nojoinspaces " noremap " noremap " noremap -" noremap -" noremap -" noremap -" noremap -" inoremap -" inoremap -" inoremap -" inoremap +noremap +noremap +noremap +noremap +inoremap +inoremap +inoremap +inoremap " Open new split panes to right and bottom, which feels more natural set splitbelow @@ -569,10 +568,3 @@ nnoremap j nnoremap k nnoremap h nnoremap l - -nnoremap Y y$ -nnoremap S hs - -" Save & quit -noremap Q :q -noremap :qa diff --git a/qutebrowser/config.py b/config/qutebrowser/config.py similarity index 100% rename from qutebrowser/config.py rename to config/qutebrowser/config.py diff --git a/config/ranger/rc.conf b/config/ranger/rc.conf new file mode 100644 index 0000000..b98ca02 --- /dev/null +++ b/config/ranger/rc.conf @@ -0,0 +1,2 @@ +set preview_images true +set show_hidden true diff --git a/envrc b/envrc new file mode 100644 index 0000000..b61b561 --- /dev/null +++ b/envrc @@ -0,0 +1 @@ +export GEM_HOME=/home/krsh/.gem/ruby/2.6.0 diff --git a/gemrc b/gemrc new file mode 100644 index 0000000..6d98aac --- /dev/null +++ b/gemrc @@ -0,0 +1,11 @@ +--- +:backtrace: false +:bulk_threshold: 1000 +:sources: +- https://rubygems.org/ +:update_sources: true +:verbose: true +:concurrent_downloads: 8 +install: '' +uninstall: '' +update: '' diff --git a/.gitconfig b/gitconfig similarity index 97% rename from .gitconfig rename to gitconfig index 61baa82..a0ef271 100644 --- a/.gitconfig +++ b/gitconfig @@ -39,3 +39,6 @@ [credential] helper = cache + +# [commit] +# gpgsign = true diff --git a/.gitignore_global b/gitignore_global similarity index 100% rename from .gitignore_global rename to gitignore_global diff --git a/i3status-rs/config.toml b/i3status-rs/config.toml deleted file mode 100644 index 5a44743..0000000 --- a/i3status-rs/config.toml +++ /dev/null @@ -1,106 +0,0 @@ -[theme] -name = "gruvbox-dark" -[theme.overrides] -idle_bg = "#1d2021" -idle_fg = "#fbf1c7" -info_bg = "#83a598" -info_fg = "#3c3836" -good_bg = "#b8bb26" -good_fg = "#3c3836" -critical_bg = "#fb4934" -critical_fg = "#3c3836" -warning_fg = "#3c3836" - -[icons] -name = "awesome" - -[[block]] -block = "custom" -command = "taskwarrior_active" -interval = 10 - -[[block]] -block = "custom" -command = "timelogger statusbar" -interval = 10 - -[[block]] -block = "custom" -command = "statusd-weather Tbilisi" -interval = 60 - -[[block]] -block = "sound" -driver = "alsa" - -[[block]] -block = "maildir" -interval = 60 -inboxes = ["/home/krsh/Mail/kr3ssh@gmail.com/INBOX", "/home/krsh/Mail/kr3ssh@pm.me/INBOX", "/home/krsh/Mail/sergey@1158.studio/INBOX", "/home/krsh/Mail/sergey@aww.cloud/INBOX"] -threshold_warning = 1 -threshold_critical = 5 - -# [[block]] -# block = "net" -# device = "wlp3s0" -# ssid = true -# ip = true -# speed_down = false -# graph_up = false -# speed_up = false -# speed_down = false -# interval = 5 - -[[block]] -block = "net" -device = "eth0" -ssid = true -ip = true -speed_down = false -graph_up = false -speed_up = false -speed_down = false -interval = 5 - -[[block]] -block = "memory" -display_type = "memory" -format_mem = "{MAg} GB" -clickable = false -warning_mem = 60 -critical_mem = 70 - -[[block]] -block = "cpu" -interval = 1 -frequency = true - -[[block]] -block = "temperature" -collapsed = true -interval = 10 -format = "{min}° min, {max}° max, {average}° avg" -good = 45 -idle = 60 -info = 75 -warning = 84 - -[[block]] -block = "load" -interval = 1 -format = "{15m} {5m} {1m}" - -# [[block]] -# block = "battery" -# interval = 10 -# format = "{percentage}% {time}" - -[[block]] -block = "custom" -command = "statusd-utctime" -interval = 60 - -[[block]] -block = "time" -interval = 60 -format = "%a %-d %b %R" diff --git a/inputrc b/inputrc new file mode 100644 index 0000000..b0d7d5a --- /dev/null +++ b/inputrc @@ -0,0 +1,3 @@ +$include /etc/inputrc + +set enable-keypad on diff --git a/install.sh b/install.sh old mode 100755 new mode 100644 index f13b389..ac241c4 --- a/install.sh +++ b/install.sh @@ -1,36 +1,394 @@ -#!/bin/bash - -ln -s $PWD/.railsrc \ - $PWD/.psqlrc \ - $PWD/.ackrc \ - $PWD/.agignore \ - $PWD/.gitconfig \ - $PWD/.gitignore_global \ - $PWD/.rubocop.yml \ - $PWD/.reek.yml \ - $PWD/.screenrc \ - $PWD/.xinitrc \ - $PWD/.Xresources \ - $PWD/.zshenv \ - $PWD/.zshrc \ - $PWD/.zshrc.d \ - $PWD/.ansible.cfg \ - $PWD/.ruby-lint.yml \ - ~/ - -ln -s $PWD/htop ~/.config/ -ln -s $PWD/qutebrowser/config.py ~/.config/qutebrowser/config.py - -cp -n $PWD/.bundle-config ~/.bundle/config - -ln -s $PWD/i3/config ~/.config/i3/config -ln -s $PWD/i3status/config ~/.config/i3status/config -ln -s $PWD/i3status-rs/config.toml ~/.config/i3status-rs/config.toml - -ln -s $PWD/kitty/kitty.conf ~/.config/kitty/kitty.conf -cp -rn $PWD/kitty/colors ~/.config/kitty/ - -ln -s $PWD/nvim/init.vim ~/.config/nvim/init.vim - -ln -s $PWD/mutt/muttrc ~/.config/mutt/muttrc -ln -s $PWD/mutt/mailcap ~/.config/mutt/mailcap +#!/bin/sh +# +# Usage: +# +# sh install.sh +# +# Environment variables: VERBOSE, CP, LN, MKDIR, RM, DIRNAME. +# +# env VERBOSE=1 sh install.sh +# +# DO NOT EDIT THIS FILE +# +# This file is generated by rcm(7) as: +# +# rcup -B 0 -g +# +# To update it, re-run the above command. +# +: ${VERBOSE:=0} +: ${CP:=/bin/cp} +: ${LN:=/bin/ln} +: ${MKDIR:=/bin/mkdir} +: ${RM:=/bin/rm} +: ${DIRNAME:=/usr/bin/dirname} +verbose() { + if [ "$VERBOSE" -gt 0 ]; then + echo "$@" + fi +} +handle_file_cp() { + if [ -e "$2" ]; then + printf "%s " "overwrite $2? [yN]" + read overwrite + case "$overwrite" in + y) + $RM -rf "$2" + ;; + *) + echo "skipping $2" + return + ;; + esac + fi + verbose "'$1' -> '$2'" + $MKDIR -p "$($DIRNAME "$2")" + $CP -R "$1" "$2" +} +handle_file_ln() { + if [ -e "$2" ]; then + printf "%s " "overwrite $2? [yN]" + read overwrite + case "$overwrite" in + y) + $RM -rf "$2" + ;; + *) + echo "skipping $2" + return + ;; + esac + fi + verbose "'$1' -> '$2'" + $MKDIR -p "$($DIRNAME "$2")" + $LN -sf "$1" "$2" +} +handle_file_ln "/home/krsh/.dotfiles/ackrc" "/home/krsh/.ackrc" +handle_file_ln "/home/krsh/.dotfiles/agignore" "/home/krsh/.agignore" +handle_file_ln "/home/krsh/.dotfiles/ansible.cfg" "/home/krsh/.ansible.cfg" +handle_file_ln "/home/krsh/.dotfiles/bundle/config" "/home/krsh/.bundle/config" +handle_file_ln "/home/krsh/.dotfiles/config/alacritty/alacritty.yml" "/home/krsh/.config/alacritty/alacritty.yml" +handle_file_ln "/home/krsh/.dotfiles/config/direnv/direnvrc" "/home/krsh/.config/direnv/direnvrc" +handle_file_ln "/home/krsh/.dotfiles/config/fish/completions/fisher.fish" "/home/krsh/.config/fish/completions/fisher.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/completions/kitty.fish" "/home/krsh/.config/fish/completions/kitty.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/completions/task.fish" "/home/krsh/.config/fish/completions/task.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/conf.d/aliases.fish" "/home/krsh/.config/fish/conf.d/aliases.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/conf.d/fzf.fish" "/home/krsh/.config/fish/conf.d/fzf.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/conf.d/fzf_key_bindings.fish" "/home/krsh/.config/fish/conf.d/fzf_key_bindings.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/config.fish" "/home/krsh/.config/fish/config.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/fishfile" "/home/krsh/.config/fish/fishfile" +handle_file_ln "/home/krsh/.dotfiles/config/fish/fish_variables" "/home/krsh/.config/fish/fish_variables" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/fisher.fish" "/home/krsh/.config/fish/functions/fisher.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/fish_prompt.fish" "/home/krsh/.config/fish/functions/fish_prompt.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/fish_right_prompt.fish" "/home/krsh/.config/fish/functions/fish_right_prompt.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/fuck.fish" "/home/krsh/.config/fish/functions/fuck.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/__fzf_cd.fish" "/home/krsh/.config/fish/functions/__fzf_cd.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/__fzfcmd.fish" "/home/krsh/.config/fish/functions/__fzfcmd.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/__fzf_complete.fish" "/home/krsh/.config/fish/functions/__fzf_complete.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/__fzf_complete_preview.fish" "/home/krsh/.config/fish/functions/__fzf_complete_preview.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/__fzf_find_file.fish" "/home/krsh/.config/fish/functions/__fzf_find_file.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/__fzf_get_dir.fish" "/home/krsh/.config/fish/functions/__fzf_get_dir.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/__fzf_open.fish" "/home/krsh/.config/fish/functions/__fzf_open.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/__fzf_parse_commandline.fish" "/home/krsh/.config/fish/functions/__fzf_parse_commandline.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/__fzf_reverse_isearch.fish" "/home/krsh/.config/fish/functions/__fzf_reverse_isearch.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/gh.fish" "/home/krsh/.config/fish/functions/gh.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/hors.fish" "/home/krsh/.config/fish/functions/hors.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/spark.fish" "/home/krsh/.config/fish/functions/spark.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/sudosu.fish" "/home/krsh/.config/fish/functions/sudosu.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/su.fish" "/home/krsh/.config/fish/functions/su.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fish/functions/time.fish" "/home/krsh/.config/fish/functions/time.fish" +handle_file_ln "/home/krsh/.dotfiles/config/fontconfig/fonts.conf" "/home/krsh/.config/fontconfig/fonts.conf" +handle_file_ln "/home/krsh/.dotfiles/config/htop/htoprc" "/home/krsh/.config/htop/htoprc" +handle_file_ln "/home/krsh/.dotfiles/config/i3/bg.jpg" "/home/krsh/.config/i3/bg.jpg" +handle_file_ln "/home/krsh/.dotfiles/config/i3/config" "/home/krsh/.config/i3/config" +handle_file_ln "/home/krsh/.dotfiles/config/i3status/config" "/home/krsh/.config/i3status/config" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-3024-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-3024-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-3024.conf" "/home/krsh/.config/kitty/colors/base16/base16-3024.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-apathy-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-apathy-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-apathy.conf" "/home/krsh/.config/kitty/colors/base16/base16-apathy.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-ashes-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-ashes-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-ashes.conf" "/home/krsh/.config/kitty/colors/base16/base16-ashes.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-cave-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-cave-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-cave.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-cave.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-cave-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-cave-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-cave-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-cave-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-dune-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-dune-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-dune.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-dune.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-dune-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-dune-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-dune-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-dune-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-estuary-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-estuary-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-estuary.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-estuary.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-estuary-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-estuary-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-estuary-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-estuary-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-forest-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-forest-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-forest.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-forest.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-forest-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-forest-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-forest-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-forest-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-heath-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-heath-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-heath.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-heath.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-heath-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-heath-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-heath-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-heath-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-lakeside-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-lakeside-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-lakeside.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-lakeside.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-lakeside-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-lakeside-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-lakeside-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-lakeside-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-plateau-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-plateau-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-plateau.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-plateau.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-plateau-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-plateau-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-plateau-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-plateau-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-savanna-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-savanna-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-savanna.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-savanna.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-savanna-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-savanna-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-savanna-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-savanna-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-seaside-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-seaside-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-seaside.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-seaside.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-seaside-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-seaside-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-seaside-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-seaside-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-sulphurpool-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-sulphurpool-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-sulphurpool.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-sulphurpool.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-sulphurpool-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-sulphurpool-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-atelier-sulphurpool-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-atelier-sulphurpool-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-bespin-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-bespin-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-bespin.conf" "/home/krsh/.config/kitty/colors/base16/base16-bespin.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-bathory-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-bathory-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-bathory.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-bathory.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-burzum-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-burzum-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-burzum.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-burzum.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-dark-funeral-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-dark-funeral-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-dark-funeral.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-dark-funeral.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-gorgoroth-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-gorgoroth-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-gorgoroth.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-gorgoroth.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-immortal-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-immortal-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-immortal.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-immortal.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-khold-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-khold-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-khold.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-khold.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-marduk-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-marduk-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-marduk.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-marduk.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-mayhem-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-mayhem-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-mayhem.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-mayhem.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-nile-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-nile-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-nile.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-nile.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-venom-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-venom-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-black-metal-venom.conf" "/home/krsh/.config/kitty/colors/base16/base16-black-metal-venom.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-brewer-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-brewer-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-brewer.conf" "/home/krsh/.config/kitty/colors/base16/base16-brewer.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-bright-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-bright-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-bright.conf" "/home/krsh/.config/kitty/colors/base16/base16-bright.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-brogrammer-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-brogrammer-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-brogrammer.conf" "/home/krsh/.config/kitty/colors/base16/base16-brogrammer.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-brushtrees-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-brushtrees-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-brushtrees.conf" "/home/krsh/.config/kitty/colors/base16/base16-brushtrees.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-brushtrees-dark-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-brushtrees-dark-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-brushtrees-dark.conf" "/home/krsh/.config/kitty/colors/base16/base16-brushtrees-dark.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-chalk-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-chalk-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-chalk.conf" "/home/krsh/.config/kitty/colors/base16/base16-chalk.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-circus-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-circus-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-circus.conf" "/home/krsh/.config/kitty/colors/base16/base16-circus.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-classic-dark-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-classic-dark-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-classic-dark.conf" "/home/krsh/.config/kitty/colors/base16/base16-classic-dark.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-classic-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-classic-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-classic-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-classic-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-codeschool-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-codeschool-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-codeschool.conf" "/home/krsh/.config/kitty/colors/base16/base16-codeschool.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-cupcake-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-cupcake-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-cupcake.conf" "/home/krsh/.config/kitty/colors/base16/base16-cupcake.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-cupertino-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-cupertino-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-cupertino.conf" "/home/krsh/.config/kitty/colors/base16/base16-cupertino.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-darktooth-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-darktooth-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-darktooth.conf" "/home/krsh/.config/kitty/colors/base16/base16-darktooth.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-default-dark-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-default-dark-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-default-dark.conf" "/home/krsh/.config/kitty/colors/base16/base16-default-dark.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-default-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-default-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-default-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-default-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-dracula-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-dracula-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-dracula.conf" "/home/krsh/.config/kitty/colors/base16/base16-dracula.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-eighties-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-eighties-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-eighties.conf" "/home/krsh/.config/kitty/colors/base16/base16-eighties.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-embers-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-embers-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-embers.conf" "/home/krsh/.config/kitty/colors/base16/base16-embers.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-flat-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-flat-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-flat.conf" "/home/krsh/.config/kitty/colors/base16/base16-flat.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-github-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-github-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-github.conf" "/home/krsh/.config/kitty/colors/base16/base16-github.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-google-dark-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-google-dark-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-google-dark.conf" "/home/krsh/.config/kitty/colors/base16/base16-google-dark.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-google-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-google-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-google-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-google-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-grayscale-dark-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-grayscale-dark-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-grayscale-dark.conf" "/home/krsh/.config/kitty/colors/base16/base16-grayscale-dark.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-grayscale-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-grayscale-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-grayscale-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-grayscale-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-greenscreen-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-greenscreen-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-greenscreen.conf" "/home/krsh/.config/kitty/colors/base16/base16-greenscreen.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-dark-hard-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-dark-hard-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-dark-hard.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-dark-hard.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-dark-medium-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-dark-medium-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-dark-medium.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-dark-medium.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-dark-pale-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-dark-pale-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-dark-pale.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-dark-pale.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-dark-soft-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-dark-soft-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-dark-soft.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-dark-soft.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-light-hard-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-light-hard-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-light-hard.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-light-hard.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-light-medium-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-light-medium-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-light-medium.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-light-medium.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-light-soft-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-light-soft-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-gruvbox-light-soft.conf" "/home/krsh/.config/kitty/colors/base16/base16-gruvbox-light-soft.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-harmonic-dark-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-harmonic-dark-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-harmonic-dark.conf" "/home/krsh/.config/kitty/colors/base16/base16-harmonic-dark.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-harmonic-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-harmonic-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-harmonic-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-harmonic-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-hopscotch-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-hopscotch-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-hopscotch.conf" "/home/krsh/.config/kitty/colors/base16/base16-hopscotch.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-icy-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-icy-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-icy.conf" "/home/krsh/.config/kitty/colors/base16/base16-icy.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-irblack-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-irblack-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-irblack.conf" "/home/krsh/.config/kitty/colors/base16/base16-irblack.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-isotope-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-isotope-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-isotope.conf" "/home/krsh/.config/kitty/colors/base16/base16-isotope.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-macintosh-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-macintosh-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-macintosh.conf" "/home/krsh/.config/kitty/colors/base16/base16-macintosh.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-marrakesh-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-marrakesh-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-marrakesh.conf" "/home/krsh/.config/kitty/colors/base16/base16-marrakesh.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-materia-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-materia-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-materia.conf" "/home/krsh/.config/kitty/colors/base16/base16-materia.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-material-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-material-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-material.conf" "/home/krsh/.config/kitty/colors/base16/base16-material.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-material-darker-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-material-darker-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-material-darker.conf" "/home/krsh/.config/kitty/colors/base16/base16-material-darker.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-material-lighter-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-material-lighter-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-material-lighter.conf" "/home/krsh/.config/kitty/colors/base16/base16-material-lighter.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-material-palenight-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-material-palenight-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-material-palenight.conf" "/home/krsh/.config/kitty/colors/base16/base16-material-palenight.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-material-vivid-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-material-vivid-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-material-vivid.conf" "/home/krsh/.config/kitty/colors/base16/base16-material-vivid.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-mellow-purple-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-mellow-purple-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-mellow-purple.conf" "/home/krsh/.config/kitty/colors/base16/base16-mellow-purple.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-mexico-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-mexico-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-mexico-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-mexico-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-mocha-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-mocha-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-mocha.conf" "/home/krsh/.config/kitty/colors/base16/base16-mocha.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-monokai-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-monokai-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-monokai.conf" "/home/krsh/.config/kitty/colors/base16/base16-monokai.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-nord-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-nord-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-nord.conf" "/home/krsh/.config/kitty/colors/base16/base16-nord.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-ocean-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-ocean-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-ocean.conf" "/home/krsh/.config/kitty/colors/base16/base16-ocean.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-oceanicnext-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-oceanicnext-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-oceanicnext.conf" "/home/krsh/.config/kitty/colors/base16/base16-oceanicnext.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-onedark-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-onedark-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-onedark.conf" "/home/krsh/.config/kitty/colors/base16/base16-onedark.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-one-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-one-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-one-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-one-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-outrun-dark-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-outrun-dark-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-outrun-dark.conf" "/home/krsh/.config/kitty/colors/base16/base16-outrun-dark.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-paraiso-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-paraiso-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-paraiso.conf" "/home/krsh/.config/kitty/colors/base16/base16-paraiso.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-phd-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-phd-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-phd.conf" "/home/krsh/.config/kitty/colors/base16/base16-phd.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-pico-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-pico-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-pico.conf" "/home/krsh/.config/kitty/colors/base16/base16-pico.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-pop-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-pop-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-pop.conf" "/home/krsh/.config/kitty/colors/base16/base16-pop.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-porple-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-porple-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-porple.conf" "/home/krsh/.config/kitty/colors/base16/base16-porple.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-railscasts-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-railscasts-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-railscasts.conf" "/home/krsh/.config/kitty/colors/base16/base16-railscasts.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-rebecca-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-rebecca-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-rebecca.conf" "/home/krsh/.config/kitty/colors/base16/base16-rebecca.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-seti-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-seti-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-seti.conf" "/home/krsh/.config/kitty/colors/base16/base16-seti.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-shapeshifter-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-shapeshifter-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-shapeshifter.conf" "/home/krsh/.config/kitty/colors/base16/base16-shapeshifter.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-snazzy-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-snazzy-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-snazzy.conf" "/home/krsh/.config/kitty/colors/base16/base16-snazzy.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-solarflare-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-solarflare-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-solarflare.conf" "/home/krsh/.config/kitty/colors/base16/base16-solarflare.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-solarized-dark-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-solarized-dark-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-solarized-dark.conf" "/home/krsh/.config/kitty/colors/base16/base16-solarized-dark.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-solarized-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-solarized-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-solarized-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-solarized-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-spacemacs-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-spacemacs-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-spacemacs.conf" "/home/krsh/.config/kitty/colors/base16/base16-spacemacs.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-summerfruit-dark-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-summerfruit-dark-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-summerfruit-dark.conf" "/home/krsh/.config/kitty/colors/base16/base16-summerfruit-dark.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-summerfruit-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-summerfruit-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-summerfruit-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-summerfruit-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-tomorrow-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-tomorrow-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-tomorrow.conf" "/home/krsh/.config/kitty/colors/base16/base16-tomorrow.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-tomorrow-night-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-tomorrow-night-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-tomorrow-night.conf" "/home/krsh/.config/kitty/colors/base16/base16-tomorrow-night.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-tube-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-tube-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-tube.conf" "/home/krsh/.config/kitty/colors/base16/base16-tube.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-twilight-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-twilight-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-twilight.conf" "/home/krsh/.config/kitty/colors/base16/base16-twilight.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-unikitty-dark-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-unikitty-dark-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-unikitty-dark.conf" "/home/krsh/.config/kitty/colors/base16/base16-unikitty-dark.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-unikitty-light-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-unikitty-light-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-unikitty-light.conf" "/home/krsh/.config/kitty/colors/base16/base16-unikitty-light.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-woodland-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-woodland-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-woodland.conf" "/home/krsh/.config/kitty/colors/base16/base16-woodland.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-xcode-dusk-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-xcode-dusk-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-xcode-dusk.conf" "/home/krsh/.config/kitty/colors/base16/base16-xcode-dusk.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-zenburn-256.conf" "/home/krsh/.config/kitty/colors/base16/base16-zenburn-256.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/colors/base16/base16-zenburn.conf" "/home/krsh/.config/kitty/colors/base16/base16-zenburn.conf" +handle_file_ln "/home/krsh/.dotfiles/config/kitty/kitty.conf" "/home/krsh/.config/kitty/kitty.conf" +handle_file_ln "/home/krsh/.dotfiles/config/mutt/colors" "/home/krsh/.config/mutt/colors" +handle_file_ln "/home/krsh/.dotfiles/config/mutt/colors-gruvbox-shuber-extended.muttrc" "/home/krsh/.config/mutt/colors-gruvbox-shuber-extended.muttrc" +handle_file_ln "/home/krsh/.dotfiles/config/mutt/colors-gruvbox-shuber.muttrc" "/home/krsh/.config/mutt/colors-gruvbox-shuber.muttrc" +handle_file_ln "/home/krsh/.dotfiles/config/mutt/mailcap" "/home/krsh/.config/mutt/mailcap" +handle_file_ln "/home/krsh/.dotfiles/config/mutt/muttrc" "/home/krsh/.config/mutt/muttrc" +handle_file_ln "/home/krsh/.dotfiles/config/newsboat/config" "/home/krsh/.config/newsboat/config" +handle_file_ln "/home/krsh/.dotfiles/config/nvim/coc-settings.json" "/home/krsh/.config/nvim/coc-settings.json" +handle_file_ln "/home/krsh/.dotfiles/config/nvim/init.vim" "/home/krsh/.config/nvim/init.vim" +handle_file_ln "/home/krsh/.dotfiles/config/qutebrowser/config.py" "/home/krsh/.config/qutebrowser/config.py" +handle_file_ln "/home/krsh/.dotfiles/config/ranger/rc.conf" "/home/krsh/.config/ranger/rc.conf" +handle_file_ln "/home/krsh/.dotfiles/envrc" "/home/krsh/.envrc" +handle_file_ln "/home/krsh/.dotfiles/gemrc" "/home/krsh/.gemrc" +handle_file_ln "/home/krsh/.dotfiles/gitconfig" "/home/krsh/.gitconfig" +handle_file_ln "/home/krsh/.dotfiles/gitignore_global" "/home/krsh/.gitignore_global" +handle_file_ln "/home/krsh/.dotfiles/inputrc" "/home/krsh/.inputrc" +handle_file_ln "/home/krsh/.dotfiles/install.sh" "/home/krsh/.install.sh" +handle_file_ln "/home/krsh/.dotfiles/notion/cfg_kludges.lua" "/home/krsh/.notion/cfg_kludges.lua" +handle_file_ln "/home/krsh/.dotfiles/notion/cfg_notioncore.lua" "/home/krsh/.notion/cfg_notioncore.lua" +handle_file_ln "/home/krsh/.dotfiles/notion/cfg_notion.lua" "/home/krsh/.notion/cfg_notion.lua" +handle_file_ln "/home/krsh/.dotfiles/notion/cfg_statusbar.lua" "/home/krsh/.notion/cfg_statusbar.lua" +handle_file_ln "/home/krsh/.dotfiles/notion/look_base16.lua" "/home/krsh/.notion/look_base16.lua" +handle_file_ln "/home/krsh/.dotfiles/notion/look_simpleblue.lua" "/home/krsh/.notion/look_simpleblue.lua" +handle_file_ln "/home/krsh/.dotfiles/notion/statusd_battery.lua" "/home/krsh/.notion/statusd_battery.lua" +handle_file_ln "/home/krsh/.dotfiles/notion/statusd_cpufreq.lua" "/home/krsh/.notion/statusd_cpufreq.lua" +handle_file_ln "/home/krsh/.dotfiles/notion/statusd_mem.lua" "/home/krsh/.notion/statusd_mem.lua" +handle_file_ln "/home/krsh/.dotfiles/notion/statusd_pomodoro.lua" "/home/krsh/.notion/statusd_pomodoro.lua" +handle_file_ln "/home/krsh/.dotfiles/notion/statusd_taskwarrior.lua" "/home/krsh/.notion/statusd_taskwarrior.lua" +handle_file_ln "/home/krsh/.dotfiles/notion/statusd_timeledger" "/home/krsh/.notion/statusd_timeledger" +handle_file_ln "/home/krsh/.dotfiles/notion/statusd_timelogger.lua" "/home/krsh/.notion/statusd_timelogger.lua" +handle_file_ln "/home/krsh/.dotfiles/profile" "/home/krsh/.profile" +handle_file_ln "/home/krsh/.dotfiles/psqlrc" "/home/krsh/.psqlrc" +handle_file_ln "/home/krsh/.dotfiles/railsrc" "/home/krsh/.railsrc" +handle_file_ln "/home/krsh/.dotfiles/README.md" "/home/krsh/.README.md" +handle_file_ln "/home/krsh/.dotfiles/reek.yml" "/home/krsh/.reek.yml" +handle_file_ln "/home/krsh/.dotfiles/rgignore" "/home/krsh/.rgignore" +handle_file_ln "/home/krsh/.dotfiles/rubocop-old.yml" "/home/krsh/.rubocop-old.yml" +handle_file_ln "/home/krsh/.dotfiles/rubocop.yml" "/home/krsh/.rubocop.yml" +handle_file_ln "/home/krsh/.dotfiles/ruby-lint.yml" "/home/krsh/.ruby-lint.yml" +handle_file_ln "/home/krsh/.dotfiles/screenrc" "/home/krsh/.screenrc" +handle_file_ln "/home/krsh/.dotfiles/taskrc" "/home/krsh/.taskrc" +handle_file_ln "/home/krsh/.dotfiles/vimrc" "/home/krsh/.vimrc" +handle_file_ln "/home/krsh/.dotfiles/xinitrc" "/home/krsh/.xinitrc" +handle_file_ln "/home/krsh/.dotfiles/Xresources" "/home/krsh/.Xresources" +handle_file_ln "/home/krsh/.dotfiles/Xresources.d/ansi-us-colemak-dh-z.xmodmap" "/home/krsh/.Xresources.d/ansi-us-colemak-dh-z.xmodmap" +handle_file_ln "/home/krsh/.dotfiles/Xresources.d/base16-gruvbox-dark-hard-256" "/home/krsh/.Xresources.d/base16-gruvbox-dark-hard-256" +handle_file_ln "/home/krsh/.dotfiles/Xresources.d/st" "/home/krsh/.Xresources.d/st" +handle_file_ln "/home/krsh/.dotfiles/Xresources.d/xmodmap.orig" "/home/krsh/.Xresources.d/xmodmap.orig" +handle_file_ln "/home/krsh/.dotfiles/zprofile" "/home/krsh/.zprofile" +handle_file_ln "/home/krsh/.dotfiles/zshenv" "/home/krsh/.zshenv" +handle_file_ln "/home/krsh/.dotfiles/zshrc" "/home/krsh/.zshrc" +handle_file_ln "/home/krsh/.dotfiles/zshrc.d/aliases.zsh" "/home/krsh/.zshrc.d/aliases.zsh" +handle_file_ln "/home/krsh/.dotfiles/zshrc.d/env.zsh" "/home/krsh/.zshrc.d/env.zsh" +handle_file_ln "/home/krsh/.dotfiles/zshrc.d/locale.zsh" "/home/krsh/.zshrc.d/locale.zsh" +handle_file_ln "/home/krsh/.dotfiles/zshrc.d/paths.zsh" "/home/krsh/.zshrc.d/paths.zsh" +handle_file_ln "/home/krsh/.dotfiles/zshrc.d/rbenv.zsh" "/home/krsh/.zshrc.d/rbenv.zsh" +handle_file_ln "/home/krsh/.dotfiles/zshrc.d/rust.zsh" "/home/krsh/.zshrc.d/rust.zsh" +handle_file_ln "/home/krsh/.dotfiles/zshrc.d/ssh-agent.zsh" "/home/krsh/.zshrc.d/ssh-agent.zsh" diff --git a/mutt/muttrc b/mutt/muttrc deleted file mode 100644 index 657a17a..0000000 --- a/mutt/muttrc +++ /dev/null @@ -1,79 +0,0 @@ -## General options -set header_cache = "~/.cache/mutt" -set message_cachedir = "~/.cache/mutt" -set imap_check_subscribed -set imap_keepalive = 300 -unset imap_passive -set mail_check = 60 -set mbox_type=Maildir - -# The default index_format is: -# '%4C %Z %{%b %d} %-15.15L (%?l?%4l&%4c?) %s' -# -# We replace the date field '%{%b %d}', giving: -set index_format='%4C %Z %<[y?%<[m?%<[d?%[%H:%M ]&%[%a %d]>&%[%b %d]>&%[%m/%y ]> %-15.15L (%?l?%4l&%4c?) %s' -# Test Date Range Format String Example -# -------------------------------------------- -# %[d Today %[%H:%M ] 12:34 -# %[m This month %[%a %d] Thu 12 -# %[y This year %[%b %d] Dec 10 -# — Older %[%m/%y ] 06/15 - - -# Limit view to current thread -bind index L limit-current-thread - -# The 'S' (skip-quoted) command scrolls the pager past the quoted text (usually -# indented with '> '. Setting 'skip_quoted_offset' leaves some lines of quoted -# text on screen for context. - -# Show three quoted lines before the reply -set skip_quoted_offset = 3 - -# Macros -macro index Z "mbsync -a" "Sync all" - -# More vim-like bindings -# bind index i noop -bind attach,index g noop # clear for next binding -bind attach,index gg first-entry -bind attach,index G last-entry -bind index N search-opposite -# bind pager i exit -# bind pager q toggle-quoted -bind pager / search - -# QWERTY -bind pager j next-line -bind pager k previous-line - -bind pager g noop # clear for next binding -bind pager gg top -bind pager G bottom -bind index,pager \# noop -bind index,pager \& noop -bind index,pager R group-reply - -## Keys -bind attach,index,pager \CD next-page -bind attach,index,pager \CU previous-page - -bind index,pager B sidebar-toggle-visible -bind index,pager \CO sidebar-open - -# QWERTY -bind index,pager \Ck sidebar-prev -bind index,pager \Cj sidebar-next - -macro attach 'V' "cat > ~/.cache/mutt/mail.html; ~/bin/preview-html ~/.cache/mutt/mail.html; rm ~/.cache/mutt/mail.html" -macro index 'c' '?^K=' - -set mailcap_path = ~/.config/mutt/mailcap -auto_view text/html -alternative_order text/plain text/html - - -# GnuPG bootstrap -# source ~/.mutt/gpg.rc - -source ~/.config/mutt/mailboxes.muttrc diff --git a/.notion/.welcome_msg_displayed b/notion/.welcome_msg_displayed similarity index 100% rename from .notion/.welcome_msg_displayed rename to notion/.welcome_msg_displayed diff --git a/.notion/cfg_kludges.lua b/notion/cfg_kludges.lua similarity index 100% rename from .notion/cfg_kludges.lua rename to notion/cfg_kludges.lua diff --git a/.notion/cfg_notion.lua b/notion/cfg_notion.lua similarity index 100% rename from .notion/cfg_notion.lua rename to notion/cfg_notion.lua diff --git a/.notion/cfg_notioncore.lua b/notion/cfg_notioncore.lua similarity index 100% rename from .notion/cfg_notioncore.lua rename to notion/cfg_notioncore.lua diff --git a/.notion/cfg_statusbar.lua b/notion/cfg_statusbar.lua similarity index 100% rename from .notion/cfg_statusbar.lua rename to notion/cfg_statusbar.lua diff --git a/.notion/look_base16.lua b/notion/look_base16.lua similarity index 100% rename from .notion/look_base16.lua rename to notion/look_base16.lua diff --git a/.notion/look_simpleblue.lua b/notion/look_simpleblue.lua similarity index 100% rename from .notion/look_simpleblue.lua rename to notion/look_simpleblue.lua diff --git a/.notion/statusd_battery.lua b/notion/statusd_battery.lua similarity index 100% rename from .notion/statusd_battery.lua rename to notion/statusd_battery.lua diff --git a/.notion/statusd_cpufreq.lua b/notion/statusd_cpufreq.lua similarity index 100% rename from .notion/statusd_cpufreq.lua rename to notion/statusd_cpufreq.lua diff --git a/.notion/statusd_mem.lua b/notion/statusd_mem.lua similarity index 100% rename from .notion/statusd_mem.lua rename to notion/statusd_mem.lua diff --git a/.notion/statusd_pomodoro.lua b/notion/statusd_pomodoro.lua similarity index 100% rename from .notion/statusd_pomodoro.lua rename to notion/statusd_pomodoro.lua diff --git a/.notion/statusd_taskwarrior.lua b/notion/statusd_taskwarrior.lua similarity index 100% rename from .notion/statusd_taskwarrior.lua rename to notion/statusd_taskwarrior.lua diff --git a/.notion/statusd_timeledger b/notion/statusd_timeledger similarity index 100% rename from .notion/statusd_timeledger rename to notion/statusd_timeledger diff --git a/.notion/statusd_timelogger.lua b/notion/statusd_timelogger.lua similarity index 100% rename from .notion/statusd_timelogger.lua rename to notion/statusd_timelogger.lua diff --git a/profile b/profile new file mode 100644 index 0000000..e4ef4eb --- /dev/null +++ b/profile @@ -0,0 +1,62 @@ +export LANG="en_US.UTF-8" +export LC_CTYPE="en_US.UTF-8" +export LC_NUMERIC="en_US.UTF-8" +export LC_TIME="en_US.UTF-8" +export LC_COLLATE="en_US.UTF-8" +export LC_MONETARY="en_US.UTF-8" +export LC_MESSAGES="en_US.UTF-8" +export LC_PAPER="en_US.UTF-8" +export LC_NAME="en_US.UTF-8" +export LC_ADDRESS="en_US.UTF-8" +export LC_TELEPHONE="en_US.UTF-8" +export LC_MEASUREMENT="en_US.UTF-8" +export LC_IDENTIFICATION="en_US.UTF-8" +export LC_ALL= +export LANGUAGE=en_US:en_GB:en + +export TIMELOG=$HOME/.work-ledger/ledger/timelogger.ldg +export TERMINAL=xst +export XTERM=xst +export EDITOR=nvim + +# pass +export PASSWORD_STORE_CLIP_TIME=10 + +export GOPATH=$HOME/go + +# ssh agent +ssh-add -l > /dev/null 2>&1 +if [ "$?" == 2 ]; then + test -r $HOME/.ssh-agent && eval "$(<$HOME/.ssh-agent)" > /dev/null 2>&1 + + ssh-add -l > /dev/null 2>&1 + if [ "$?" == 2 ]; then + (umask 066; ssh-agent >| $HOME/.ssh-agent) + eval "$(<$HOME/.ssh-agent)" > /dev/null + ssh-add + fi +fi + +if [ -d $GOPATH/bin ] ; then + export PATH="$GOPATH/bin:$PATH" +fi + +if [ -d $HOME/.cargo/bin ] ; then + export PATH="$HOME/.cargo/bin:$PATH" +fi + +if [ -d $HOME/.rbenv/bin ] ; then + export PATH="$HOME/.rbenv/bin:$PATH" +fi + +if [ -d $HOME/.ruby/bin ] ; then + export PATH="$HOME/.ruby/bin:$PATH" +fi + +if [ -d $HOME/.local/bin ] ; then + export PATH="$HOME/.local/bin:$PATH" +fi + +if [ -d $HOME/bin ] ; then + export PATH="$HOME/bin:$PATH" +fi diff --git a/.psqlrc b/psqlrc similarity index 100% rename from .psqlrc rename to psqlrc diff --git a/.railsrc b/railsrc similarity index 100% rename from .railsrc rename to railsrc diff --git a/rcrc b/rcrc new file mode 100644 index 0000000..ffc7398 --- /dev/null +++ b/rcrc @@ -0,0 +1,2 @@ +DOTFILES_DIRS="/home/krsh/.dotfiles" +EXCLUDES="README.md install.sh" diff --git a/reek.yml b/reek.yml new file mode 100644 index 0000000..c1854a0 --- /dev/null +++ b/reek.yml @@ -0,0 +1,151 @@ +--- +detectors: + Attribute: + enabled: true + exclude: [] + BooleanParameter: + enabled: true + exclude: [] + ClassVariable: + enabled: true + exclude: [] + ControlParameter: + enabled: true + exclude: [] + DataClump: + enabled: true + exclude: [] + max_copies: 2 + min_clump_size: 2 + DuplicateMethodCall: + enabled: true + exclude: [] + max_calls: 1 + allow_calls: [] + FeatureEnvy: + enabled: true + exclude: [] + InstanceVariableAssumption: + enabled: true + exclude: [] + IrresponsibleModule: + enabled: false + exclude: [] + LongParameterList: + enabled: true + exclude: [] + max_params: 3 + overrides: + initialize: + max_params: 5 + LongYieldList: + enabled: true + exclude: [] + max_params: 3 + ManualDispatch: + enabled: true + exclude: [] + MissingSafeMethod: + enabled: true + exclude: [] + ModuleInitialize: + enabled: true + exclude: [] + NestedIterators: + enabled: true + exclude: [] + max_allowed_nesting: 1 + ignore_iterators: + - tap + NilCheck: + enabled: true + exclude: [] + RepeatedConditional: + enabled: true + exclude: [] + max_ifs: 2 + SubclassedFromCoreClass: + enabled: true + exclude: [] + TooManyConstants: + enabled: true + exclude: [] + max_constants: 5 + TooManyInstanceVariables: + enabled: true + exclude: [] + max_instance_variables: 4 + TooManyMethods: + enabled: true + exclude: [] + max_methods: 15 + TooManyStatements: + enabled: true + exclude: + - initialize + max_statements: 5 + UncommunicativeMethodName: + enabled: true + exclude: [] + reject: + - "/^[a-z]$/" + - "/[0-9]$/" + - "/[A-Z]/" + accept: [] + UncommunicativeModuleName: + enabled: true + exclude: [] + reject: + - "/^.$/" + - "/[0-9]$/" + accept: [] + UncommunicativeParameterName: + enabled: true + exclude: [] + reject: + - "/^.$/" + - "/[0-9]$/" + - "/[A-Z]/" + - "/^_/" + accept: [] + UncommunicativeVariableName: + enabled: true + exclude: [] + reject: + - "/^.$/" + - "/[0-9]$/" + - "/[A-Z]/" + accept: + - "/^_$/" + UnusedParameters: + enabled: true + exclude: [] + UnusedPrivateMethod: + enabled: true + exclude: [] + UtilityFunction: + enabled: true + exclude: [] + public_methods_only: true + +### Excluding directories + +# Directories and files below will not be scanned at all +exclude_paths: + - lib/tasks + - vendor/ + - db/ + +directories: + "**/app/concepts/**": + MissingSafeMethod: + enabled: false + UnusedPrivateMethod: + enabled: false + UtilityFunction: + enabled: false + "**/app/operations/**": + MissingSafeMethod: + enabled: false + UtilityFunction: + enabled: false diff --git a/rgignore b/rgignore new file mode 100644 index 0000000..73d1abd --- /dev/null +++ b/rgignore @@ -0,0 +1,5 @@ +vendor/bundle +.git/ +.import/ +target/debug/ + diff --git a/rubocop-old.yml b/rubocop-old.yml new file mode 100644 index 0000000..301703b --- /dev/null +++ b/rubocop-old.yml @@ -0,0 +1,109 @@ +--- +AllCops: + TargetRubyVersion: 2.6 + Include: + - 'vendor/gems/**/*' + Exclude: + - 'db/**/*' + - 'config/**/*' + - 'script/**/*' + - 'vendor/bundle/**/*' + - 'app/assets/**/*' + - 'node_modules/**/*' + - 'tmp/**/*' + - 'log/**/*' + +Rails: + Enabled: true + +Rails/HttpPositionalArguments: + Exclude: + - 'spec/**/*_spec.rb' + +Rails/TimeZone: + Enabled: false + +Rails/Date: + Enabled: false + +Metrics/BlockLength: + Exclude: + - 'spec/**/*_spec.rb' + - 'app/endpoints/**/*.rb' + - '*.gemspec' + +# Commonly used screens these days easily fit more than 80 characters. +Metrics/LineLength: + Max: 120 + +# Too short methods lead to extraction of single-use methods, which can make +# the code easier to read (by naming things), but can also clutter the class +Metrics/MethodLength: + Max: 20 + +Metrics/ParameterLists: + Max: 8 + +# This is too subjective +Style/SymbolArray: + Enabled: false + +Style/ClassAndModuleChildren: + Enabled: false + +Style/CollectionMethods: + Enabled: true + PreferredMethods: + # inject seems more common in the community. + reduce: 'inject' + +Style/FrozenStringLiteralComment: + Enabled: false + +# Either allow this style or don't. Marking it as safe with parenthesis +# is silly. Let's try to live without them for now. +Style/ParenthesesAroundCondition: + AllowSafeAssignment: false +Lint/AssignmentInCondition: + AllowSafeAssignment: false + +# Fail is an alias of raise. Avoid aliases, it's more cognitive load for no gain. +# The argument that fail should be used to abort the program is wrong too, +# there's Kernel#abort for that. +Style/SignalException: + EnforcedStyle: only_raise + +# Check with yard instead. +Style/Documentation: + Enabled: false + +# aligns the following lines with one level of indentation relative to +# the start of the line with the method call. +# +# method_call(a, +# b) +# +Style/BlockDelimiters: + Enabled: false + +# free to use alias and alias_method +Style/Alias: + Enabled: false + +# Prefer numbers without delimeters +Style/NumericLiterals: + Enabled: false + +Style/LambdaCall: + Enabled: false + +Style/NumericPredicate: + EnforcedStyle: comparison + +Style/AndOr: + Enabled: true + Exclude: + - 'app/controllers/**/*' + +Layout/AlignParameters: + Enabled: false diff --git a/rubocop.yml b/rubocop.yml new file mode 100644 index 0000000..615b95c --- /dev/null +++ b/rubocop.yml @@ -0,0 +1,8 @@ +# Common configuration. + +AllCops: + Exclude: + - 'node_modules/**/*' + - 'tmp/**/*' + - 'vendor/**/*' + - '.git/**/*' diff --git a/.ruby-lint.yml b/ruby-lint.yml similarity index 100% rename from .ruby-lint.yml rename to ruby-lint.yml diff --git a/.screenrc b/screenrc similarity index 100% rename from .screenrc rename to screenrc diff --git a/.taskrc b/taskrc similarity index 55% rename from .taskrc rename to taskrc index cd21f50..c390290 100644 --- a/.taskrc +++ b/taskrc @@ -49,3 +49,26 @@ report.active.labels=ID,Project,Description,Time report.list.labels=ID,Active,Age,Time,D,P,Project,Tags,R,Sch,Due,Until,Description,Urg report.list.columns=id,start.age,entry.age,totalactivetime,depends.indicator,priority,project,tags,recur.indicator,scheduled.countdown,due,until.remaining,description.count,urgency +report.wts.description=WTS tasks +report.wts.labels=ID,Active,Age,Time,D,Project,Tags,R,Sch,Due,Until,Description,Urg +report.wts.columns=id,start.age,entry.age,totalactivetime,depends.indicator,priority,tags,recur.indicator,scheduled.countdown,due,until.remaining,description.count,urgency +report.wts.filter=proj:WTS status:pending +report.wts.sort=start-,due+,project+,urgency- + +report.aww.description=AWW tasks +report.aww.labels=ID,Active,Age,Time,D,Project,Tags,R,Sch,Due,Until,Description,Urg +report.aww.columns=id,start.age,entry.age,totalactivetime,depends.indicator,priority,tags,recur.indicator,scheduled.countdown,due,until.remaining,description.count,urgency +report.aww.filter=proj:AWW status:pending +report.aww.sort=start-,due+,project+,urgency- + +report.1158.description=1158 tasks +report.1158.labels=ID,Active,Age,Time,D,Project,Tags,R,Sch,Due,Until,Description,Urg +report.1158.columns=id,start.age,entry.age,totalactivetime,depends.indicator,priority,tags,recur.indicator,scheduled.countdown,due,until.remaining,description.count,urgency +report.1158.filter=proj:1158 status:pending +report.1158.sort=start-,due+,project+,urgency- + +report.crc.description=crc tasks +report.crc.labels=ID,Active,Age,Time,D,Project,Tags,R,Sch,Due,Until,Description,Urg +report.crc.columns=id,start.age,entry.age,totalactivetime,depends.indicator,priority,tags,recur.indicator,scheduled.countdown,due,until.remaining,description.count,urgency +report.crc.filter=proj:CRC status:pending +report.crc.sort=start-,due+,project+,urgency- diff --git a/.vimrc b/vimrc similarity index 100% rename from .vimrc rename to vimrc diff --git a/.xinitrc b/xinitrc similarity index 91% rename from .xinitrc rename to xinitrc index db10ba7..f838a0b 100644 --- a/.xinitrc +++ b/xinitrc @@ -1,14 +1,16 @@ #!/bin/sh export BROWSER=browser -export TERMINAL=xst -export XTERM=xst +export TERMINAL=st +export XTERM=st export LANGUAGE=en_US:en_GB:en export LC_TIME=ru_RU.UTF-8 export QT_QPA_PLATFORMTHEME=qt5ct unset QT_STYLE_OVERRIDE +export VDPAU_DRIVER=radeonsi + # TrackPoint+Middleclick scroll xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 1 xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 2 diff --git a/zprofile b/zprofile new file mode 100644 index 0000000..71ad6d4 --- /dev/null +++ b/zprofile @@ -0,0 +1,2 @@ + +export PATH="$HOME/.cargo/bin:$PATH" diff --git a/.zshenv b/zshenv similarity index 100% rename from .zshenv rename to zshenv diff --git a/.zshrc b/zshrc similarity index 98% rename from .zshrc rename to zshrc index fe74ca0..43e169c 100644 --- a/.zshrc +++ b/zshrc @@ -130,3 +130,4 @@ if [ -d $HOME/.zshrc.d ]; then source $file done fi +[ -f /home/krsh/.config/cani/completions/_cani.zsh ] && source /home/krsh/.config/cani/completions/_cani.zsh \ No newline at end of file diff --git a/.zshrc.d/aliases.zsh b/zshrc.d/aliases.zsh similarity index 100% rename from .zshrc.d/aliases.zsh rename to zshrc.d/aliases.zsh diff --git a/.zshrc.d/env.zsh b/zshrc.d/env.zsh similarity index 100% rename from .zshrc.d/env.zsh rename to zshrc.d/env.zsh diff --git a/.zshrc.d/locale.zsh b/zshrc.d/locale.zsh similarity index 100% rename from .zshrc.d/locale.zsh rename to zshrc.d/locale.zsh diff --git a/.zshrc.d/paths.zsh b/zshrc.d/paths.zsh similarity index 100% rename from .zshrc.d/paths.zsh rename to zshrc.d/paths.zsh diff --git a/.zshrc.d/rbenv.zsh b/zshrc.d/rbenv.zsh similarity index 100% rename from .zshrc.d/rbenv.zsh rename to zshrc.d/rbenv.zsh diff --git a/.zshrc.d/rust.zsh b/zshrc.d/rust.zsh similarity index 100% rename from .zshrc.d/rust.zsh rename to zshrc.d/rust.zsh diff --git a/.zshrc.d/ssh-agent.zsh b/zshrc.d/ssh-agent.zsh similarity index 100% rename from .zshrc.d/ssh-agent.zsh rename to zshrc.d/ssh-agent.zsh