diff options
| author | trainytrain <trainytrain@rape.lol> | 2021-05-09 01:29:07 -0700 |
|---|---|---|
| committer | trainytrain <trainytrain@rape.lol> | 2021-05-09 01:29:07 -0700 |
| commit | c765e68f05bfe9f0d2e4990bdc8dfabf11cdbc87 (patch) | |
| tree | 1dd446298beeb5d1a411d5516689dee8c2ee26ee | |
init
227 files changed, 37914 insertions, 0 deletions
diff --git a/GIMP/2.10/action-history b/GIMP/2.10/action-history new file mode 100755 index 0000000..74bc883 --- /dev/null +++ b/GIMP/2.10/action-history @@ -0,0 +1,104 @@ +# GIMP action-history + +(history-item "file-open" 1) +(history-item "tools-scale" 2) +(history-item "file-quit" 1) +(history-item "edit-cut" 4) +(history-item "tools-size-increase" 1) +(history-item "file-export-as" 0) +(history-item "select-none" 3) +(history-item "tools-size-decrease" 0) +(history-item "view-close" 3) +(history-item "file-overwrite" 1) +(history-item "tools-move" 1) +(history-item "layers-delete" 2) +(history-item "layers-new" 0) +(history-item "file-save" 0) +(history-item "image-new" 2) +(history-item "layers-duplicate" 0) +(history-item "edit-clear" 2) +(history-item "python-fu-heal-selection" 0) +(history-item "layers-new-last-values" 0) +(history-item "file-open-as-layers" 0) +(history-item "select-all" 1) +(history-item "file-export" 0) +(history-item "plug-in-resynth-controls" 0) +(history-item "image-duplicate" 0) +(history-item "tools-text" 1) +(history-item "layers-alpha-selection-replace" 0) +(history-item "layers-edit" 0) +(history-item "filters-brightness-contrast" 0) +(history-item "script-fu-selection-rounded-rectangle" 0) +(history-item "filters-color-exchange" 0) +(history-item "tools-rect-select" 0) +(history-item "file-open-recent-01" 0) +(history-item "tools-paintbrush" 0) +(history-item "file-save-as" 0) +(history-item "tools-fuzzy-select" 0) +(history-item "layers-alpha-add" 0) +(history-item "tools-color-picker" 0) +(history-item "tools-crop" 0) +(history-item "windows-tab-position" 0) +(history-item "dialogs-preferences" 0) +(history-item "view-zoom-revert" 0) +(history-item "tools-rotate" 0) +(history-item "image-resize" 0) +(history-item "tools-pencil" 0) +(history-item "select-invert" 0) +(history-item "tools-bucket-fill" 0) +(history-item "drawable-rotate-90" 0) +(history-item "edit-paste" 0) +(history-item "tools-free-select" 0) +(history-item "tools-by-color-select" 0) +(history-item "dialogs-toolbox" 0) +(history-item "tools-align" 0) +(history-item "tools-airbrush" 0) +(history-item "tools-ink" 0) +(history-item "tools-iscissors" 0) +(history-item "layers-new-from-visible" 0) +(history-item "view-zoom-fit-in" 0) +(history-item "filters-long-shadow" 0) +(history-item "filters-color-balance" 0) +(history-item "filters-invert-perceptual" 0) +(history-item "python-fu-heal-transparency" 0) +(history-item "plug-in-destripe" 0) +(history-item "filters-curves" 0) +(history-item "tools-unified-transform" 0) +(history-item "select-border" 0) +(history-item "vectors-selection-replace" 0) +(history-item "filters-exposure" 0) +(history-item "dialogs-device-status" 0) +(history-item "dialogs-colors" 0) +(history-item "tools-ellipse-select" 0) +(history-item "python-fu-uncrop" 0) +(history-item "edit-copy" 0) +(history-item "tools-eraser" 0) +(history-item "filters-levels" 0) +(history-item "filters-color-temperature" 0) +(history-item "filters-saturation" 0) +(history-item "filters-median-blur" 0) +(history-item "filters-hue-chroma" 0) +(history-item "filters-desaturate" 0) +(history-item "layers-mask-add" 0) +(history-item "tools-gradient" 0) +(history-item "filters-dropshadow" 0) +(history-item "filters-variable-blur" 0) +(history-item "filters-lens-distortion" 0) +(history-item "layers-anchor" 0) +(history-item "tools-flip" 0) +(history-item "layers-merge-down" 0) +(history-item "tool-options-reset" 0) +(history-item "filters-edge-neon" 0) +(history-item "plug-in-lighting" 0) +(history-item "filters-lens-flare" 0) +(history-item "filters-video-degradation" 0) +(history-item "filters-waves" 0) +(history-item "filters-spherize" 0) +(history-item "filters-polar-coordinates" 0) +(history-item "filters-newsprint" 0) +(history-item "plug-in-despeckle" 0) +(history-item "filters-kaleidoscope" 0) +(history-item "tools-handle-transform" 0) +(history-item "filters-shift" 0) + +# end of action-history diff --git a/GIMP/2.10/colorrc b/GIMP/2.10/colorrc new file mode 100755 index 0000000..0b6e86d --- /dev/null +++ b/GIMP/2.10/colorrc @@ -0,0 +1,36 @@ +# GIMP colorrc +# +# This file holds a list of recently used colors. + +(color-history + (color-rgba 1 1 1 1) + (color-rgba 0.073913043478260887 0.073913043478260887 0.073913043478260887 1) + (color-rgba 0 0 0 1) + (color-rgba 0.078947368421052655 0.078947368421052655 0.078947368421052655 1) + (color-rgba 0.078431372549019607 0.078431372549019607 0.078431372549019607 4.6506662183690262e-310) + (color-rgba 0.37735849056603776 0.37735849056603776 0.37735849056603776 1) + (color-rgba 1 1 1 4.6663864120431995e-310) + (color-rgba 0.023529411764705882 0 0.10980392156862745 1) + (color-rgba 0.019014734774827957 0 0.1061900332570076 1) + (color-rgba 0.023529411764705882 0 0 1) + (color-rgba 0.91764705882352937 0.32941176470588235 0.12941176470588237 1) + (color-rgba 0.97254901960784312 0.97647058823529409 0 1) + (color-rgba 0.97254901960784312 0.97647058823529409 0 6.9530811095319396e-310) + (color-rgba 0 0.55882352941176494 1 1) + (color-rgba 0.10196078431372549 0.10196078431372549 0.10196078431372549 1) + (color-rgba 0.52549019607843139 0.74509803921568629 0.2627450980392157 1) + (color-rgba 0.28235294117647058 0.72549019607843135 0.7803921568627451 1) + (color-rgba 1 0 0 1) + (color-rgba 0.67647058823529438 0 1 1) + (color-rgba 0.02166064981949456 0.0015991083759358401 0.0015991083759358401 1) + (color-rgba 0.87058800000000003 0.32549 0.27843099999999998 1) + (color-rgba 0 0.47058823529411764 1 1) + (color-rgba 0.17647099999999999 0.78039199999999997 0.99215699999999996 0) + (color-rgba 0.73725499999999999 0.24313699999999999 0.16470599999999999 1) + (color-rgba 0.20000000000000001 0.20000000000000001 0.20000000000000001 1) + (color-rgba 0.129412 0.45882400000000001 0.60784300000000002 1) + (color-rgba 0.78039199999999997 0.403922 0.40784300000000001 1) + (color-rgba 1 1 1 1) + (color-rgba 1 1 1 1)) + +# end of colorrc diff --git a/GIMP/2.10/contextrc b/GIMP/2.10/contextrc new file mode 100755 index 0000000..202ca2f --- /dev/null +++ b/GIMP/2.10/contextrc @@ -0,0 +1,15 @@ +# GIMP user context + +(tool "gimp-scale-tool") +(paint-info "gimp-paintbrush") +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(mybrush "100% Opaque") +(pattern "Pine") +(gradient "FG to BG (RGB)") +(palette "Standard") +(font "Standard Symbols PS") +(tool-preset "Core Pointer") + +# end of user context diff --git a/GIMP/2.10/controllerrc b/GIMP/2.10/controllerrc new file mode 100755 index 0000000..3e2a7da --- /dev/null +++ b/GIMP/2.10/controllerrc @@ -0,0 +1,40 @@ +# GIMP controllerrc +# +# This file will be entirely rewritten each time you exit. + +(GimpControllerInfo "Main Mouse Wheel" + (icon-name "gimp-controller-wheel") + (enabled yes) + (debug-events no) + (controller "GimpControllerWheel") + (mapping + (map "scroll-down-shift-primary" "context-brush-select-previous") + (map "scroll-up-shift-alt" "context-pattern-select-next") + (map "scroll-up-alt" "tools-value-1-increase-skip") + (map "scroll-down-shift-alt" "context-pattern-select-previous") + (map "scroll-down-primary-alt" "context-gradient-select-previous") + (map "scroll-up-shift-primary-alt" "context-font-select-next") + (map "scroll-down-alt" "tools-value-1-decrease-skip") + (map "scroll-up-primary-alt" "context-gradient-select-next") + (map "scroll-up-shift-primary" "context-brush-select-next") + (map "scroll-down-shift-primary-alt" "context-font-select-previous"))) +(GimpControllerInfo "Main Keyboard" + (icon-name "gimp-controller-keyboard") + (enabled yes) + (debug-events no) + (controller "GimpControllerKeyboard") + (mapping + (map "cursor-right-alt" "tools-value-1-increase") + (map "cursor-left-shift" "view-scroll-page-left") + (map "cursor-right-shift" "view-scroll-page-right") + (map "cursor-up-shift" "view-scroll-page-up") + (map "cursor-up-primary" "view-scroll-top-border") + (map "cursor-down-primary" "view-scroll-bottom-border") + (map "cursor-up-alt" "tools-value-1-increase-skip") + (map "cursor-left-alt" "tools-value-1-decrease") + (map "cursor-down-shift" "view-scroll-page-down") + (map "cursor-right-primary" "view-scroll-right-border") + (map "cursor-left-primary" "view-scroll-left-border") + (map "cursor-down-alt" "tools-value-1-decrease-skip"))) + +# end of controllerrc diff --git a/GIMP/2.10/devicerc b/GIMP/2.10/devicerc new file mode 100755 index 0000000..619274a --- /dev/null +++ b/GIMP/2.10/devicerc @@ -0,0 +1,288 @@ +# GIMP devicerc + +(GimpDeviceInfo "Core Pointer" + (icon-name "gimp-cursor") + (name "Core Pointer") + (tool-options "GimpTransformGridOptions" + (tool "gimp-scale-tool") + (interpolation linear)) + (use-fg-bg yes) + (use-opacity-paint-mode no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode screen) + (axes 2 x y) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 4 0 0 1 1) + (point-types 2 smooth smooth) + (n-samples 256) + (samples 256 0 0.0039220000000000001 0.0078429999999999993 0.011764999999999999 0.015685999999999999 0.019608 0.023529000000000001 0.027451 0.031372999999999998 0.035293999999999999 0.039216000000000001 0.043137000000000002 0.047058999999999997 0.050979999999999998 0.054901999999999999 0.058824000000000001 0.062744999999999995 0.066667000000000004 0.070587999999999998 0.074510000000000007 0.078431000000000001 0.082352999999999996 0.086275000000000004 0.090195999999999998 0.094117999999999993 0.098039000000000001 0.101961 0.105882 0.109804 0.11372500000000001 0.117647 0.121569 0.12548999999999999 0.129412 0.13333300000000001 0.13725499999999999 0.141176 0.145098 0.14902000000000001 0.15294099999999999 0.156863 0.16078400000000001 0.16470599999999999 0.168627 0.17254900000000001 0.17647099999999999 0.180392 0.18431400000000001 0.18823500000000001 0.19215699999999999 0.196078 0.20000000000000001 0.20392199999999999 0.207843 0.21176500000000001 0.21568599999999999 0.219608 0.22352900000000001 0.22745099999999999 0.231373 0.235294 0.23921600000000001 0.24313699999999999 0.247059 0.25097999999999998 0.25490200000000002 0.258824 0.26274500000000001 0.26666699999999999 0.270588 0.27450999999999998 0.27843099999999998 0.28235300000000002 0.286275 0.29019600000000001 0.29411799999999999 0.298039 0.30196099999999998 0.30588199999999999 0.30980400000000002 0.31372499999999998 0.31764700000000001 0.32156899999999999 0.32549 0.32941199999999998 0.33333299999999999 0.33725500000000003 0.34117599999999998 0.34509800000000002 0.34902 0.352941 0.35686299999999999 0.36078399999999999 0.36470599999999997 0.36862699999999998 0.37254900000000002 0.376471 0.38039200000000001 0.38431399999999999 0.388235 0.39215699999999998 0.39607799999999999 0.40000000000000002 0.403922 0.40784300000000001 0.41176499999999999 0.415686 0.41960799999999998 0.42352899999999999 0.42745100000000003 0.43137300000000001 0.43529400000000001 0.439216 0.443137 0.44705899999999998 0.45097999999999999 0.45490199999999997 0.45882400000000001 0.46274500000000002 0.466667 0.47058800000000001 0.47450999999999999 0.478431 0.48235299999999998 0.48627500000000001 0.49019600000000002 0.494118 0.49803900000000001 0.50196099999999999 0.50588200000000005 0.50980400000000003 0.51372499999999999 0.51764699999999997 0.52156899999999995 0.52549000000000001 0.52941199999999999 0.53333299999999995 0.53725500000000004 0.54117599999999999 0.54509799999999997 0.54901999999999995 0.55294100000000002 0.556863 0.56078399999999995 0.56470600000000004 0.56862699999999999 0.57254899999999997 0.57647099999999996 0.58039200000000002 0.584314 0.58823499999999995 0.59215700000000004 0.596078 0.59999999999999998 0.60392199999999996 0.60784300000000002 0.611765 0.61568599999999996 0.61960800000000005 0.623529 0.62745099999999998 0.63137299999999996 0.63529400000000003 0.63921600000000001 0.64313699999999996 0.64705900000000005 0.65098 0.65490199999999998 0.65882399999999997 0.66274500000000003 0.66666700000000001 0.67058799999999996 0.67451000000000005 0.67843100000000001 0.68235299999999999 0.68627499999999997 0.69019600000000003 0.69411800000000001 0.69803899999999997 0.70196099999999995 0.70588200000000001 0.70980399999999999 0.71372500000000005 0.71764700000000003 0.72156900000000002 0.72548999999999997 0.72941199999999995 0.73333300000000001 0.73725499999999999 0.74117599999999995 0.74509800000000004 0.74902000000000002 0.75294099999999997 0.75686299999999995 0.76078400000000002 0.764706 0.76862699999999995 0.77254900000000004 0.77647100000000002 0.78039199999999997 0.78431399999999996 0.78823500000000002 0.792157 0.79607799999999995 0.80000000000000004 0.80392200000000003 0.80784299999999998 0.81176499999999996 0.81568600000000002 0.819608 0.82352899999999996 0.82745100000000005 0.83137300000000003 0.83529399999999998 0.83921599999999996 0.84313700000000003 0.84705900000000001 0.85097999999999996 0.85490200000000005 0.85882400000000003 0.86274499999999998 0.86666699999999997 0.87058800000000003 0.87451000000000001 0.87843099999999996 0.88235300000000005 0.88627500000000003 0.89019599999999999 0.89411799999999997 0.89803900000000003 0.90196100000000001 0.90588199999999997 0.90980399999999995 0.91372500000000001 0.91764699999999999 0.92156899999999997 0.92549000000000003 0.92941200000000002 0.93333299999999997 0.93725499999999995 0.94117600000000001 0.94509799999999999 0.94901999999999997 0.95294100000000004 0.95686300000000002 0.96078399999999997 0.96470599999999995 0.96862700000000002 0.972549 0.97647099999999998 0.98039200000000004 0.98431400000000002 0.98823499999999997 0.99215699999999996 0.99607800000000002 1))) +(GimpDeviceInfo "Logitech M570" + (name "Logitech M570") + (tool-options "GimpBucketFillOptions" + (tool "gimp-bucket-fill-tool") + (foreground (color-rgb 1 1 1)) + (background (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) + (pattern "Pine") + (brush-size 51) + (brush-hardness 0.5)) + (use-fg-bg yes) + (use-opacity-paint-mode no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern yes) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352941 0.015686274509803921 0.019607843137254902 0.023529411764705882 0.027450980392156862 0.031372549019607843 0.035294117647058823 0.039215686274509803 0.043137254901960784 0.047058823529411764 0.050980392156862744 0.054901960784313725 0.058823529411764705 0.062745098039215685 0.066666666666666666 0.070588235294117646 0.074509803921568626 0.078431372549019607 0.082352941176470587 0.086274509803921567 0.090196078431372548 0.094117647058823528 0.098039215686274508 0.10196078431372549 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352941 0.12156862745098039 0.12549019607843137 0.12941176470588237 0.13333333333333333 0.13725490196078433 0.14117647058823529 0.14509803921568629 0.14901960784313725 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.16470588235294117 0.16862745098039217 0.17254901960784313 0.17647058823529413 0.1803921568627451 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000001 0.20392156862745098 0.20784313725490197 0.21176470588235294 0.21568627450980393 0.2196078431372549 0.22352941176470589 0.22745098039215686 0.23137254901960785 0.23529411764705882 0.23921568627450981 0.24313725490196078 0.24705882352941178 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.2627450980392157 0.26666666666666666 0.27058823529411763 0.27450980392156865 0.27843137254901962 0.28235294117647058 0.28627450980392155 0.29019607843137257 0.29411764705882354 0.29803921568627451 0.30196078431372547 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352939 0.32156862745098042 0.32549019607843138 0.32941176470588235 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568627 0.34901960784313724 0.35294117647058826 0.35686274509803922 0.36078431372549019 0.36470588235294116 0.36862745098039218 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764707 0.39215686274509803 0.396078431372549 0.40000000000000002 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980394 0.41960784313725491 0.42352941176470588 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941179 0.45098039215686275 0.45490196078431372 0.45882352941176469 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901963 0.4823529411764706 0.48627450980392156 0.49019607843137253 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568623 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686276 0.65490196078431373 0.6588235294117647 0.66274509803921566 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117652 0.70980392156862748 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.72941176470588232 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.7686274509803922 0.77254901960784317 0.77647058823529413 0.7803921568627451 0.78431372549019607 0.78823529411764703 0.792156862745098 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705885 0.83921568627450982 0.84313725490196079 0.84705882352941175 0.85098039215686272 0.85490196078431369 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392153 0.8901960784313725 0.89411764705882357 0.89803921568627454 0.90196078431372551 0.90588235294117647 0.90980392156862744 0.9137254901960784 0.91764705882352937 0.92156862745098034 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549022 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019602 0.9882352941176471 0.99215686274509807 0.99607843137254903 1))) +(GimpDeviceInfo "SynPS/2 Synaptics TouchPad" + (icon-name "gimp-cursor") + (name "SynPS/2 Synaptics TouchPad") + (tool-options "GimpRectangleSelectOptions" + (tool "gimp-rect-select-tool") + (corner-radius 46.200000000000003)) + (use-fg-bg no) + (use-opacity-paint-mode no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352941 0.015686274509803921 0.019607843137254902 0.023529411764705882 0.027450980392156862 0.031372549019607843 0.035294117647058823 0.039215686274509803 0.043137254901960784 0.047058823529411764 0.050980392156862744 0.054901960784313725 0.058823529411764705 0.062745098039215685 0.066666666666666666 0.070588235294117646 0.074509803921568626 0.078431372549019607 0.082352941176470587 0.086274509803921567 0.090196078431372548 0.094117647058823528 0.098039215686274508 0.10196078431372549 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352941 0.12156862745098039 0.12549019607843137 0.12941176470588237 0.13333333333333333 0.13725490196078433 0.14117647058823529 0.14509803921568629 0.14901960784313725 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.16470588235294117 0.16862745098039217 0.17254901960784313 0.17647058823529413 0.1803921568627451 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000001 0.20392156862745098 0.20784313725490197 0.21176470588235294 0.21568627450980393 0.2196078431372549 0.22352941176470589 0.22745098039215686 0.23137254901960785 0.23529411764705882 0.23921568627450981 0.24313725490196078 0.24705882352941178 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.2627450980392157 0.26666666666666666 0.27058823529411763 0.27450980392156865 0.27843137254901962 0.28235294117647058 0.28627450980392155 0.29019607843137257 0.29411764705882354 0.29803921568627451 0.30196078431372547 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352939 0.32156862745098042 0.32549019607843138 0.32941176470588235 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568627 0.34901960784313724 0.35294117647058826 0.35686274509803922 0.36078431372549019 0.36470588235294116 0.36862745098039218 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764707 0.39215686274509803 0.396078431372549 0.40000000000000002 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980394 0.41960784313725491 0.42352941176470588 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941179 0.45098039215686275 0.45490196078431372 0.45882352941176469 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901963 0.4823529411764706 0.48627450980392156 0.49019607843137253 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568623 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686276 0.65490196078431373 0.6588235294117647 0.66274509803921566 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117652 0.70980392156862748 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.72941176470588232 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.7686274509803922 0.77254901960784317 0.77647058823529413 0.7803921568627451 0.78431372549019607 0.78823529411764703 0.792156862745098 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705885 0.83921568627450982 0.84313725490196079 0.84705882352941175 0.85098039215686272 0.85490196078431369 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392153 0.8901960784313725 0.89411764705882357 0.89803921568627454 0.90196078431372551 0.90588235294117647 0.90980392156862744 0.9137254901960784 0.91764705882352937 0.92156862745098034 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549022 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019602 0.9882352941176471 0.99215686274509807 0.99607843137254903 1))) +(GimpDeviceInfo "TPPS/2 IBM TrackPoint" + (icon-name "gimp-cursor") + (name "TPPS/2 IBM TrackPoint") + (tool-options "GimpMoveOptions" + (tool "gimp-move-tool")) + (use-fg-bg no) + (use-opacity-paint-mode no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352941 0.015686274509803921 0.019607843137254902 0.023529411764705882 0.027450980392156862 0.031372549019607843 0.035294117647058823 0.039215686274509803 0.043137254901960784 0.047058823529411764 0.050980392156862744 0.054901960784313725 0.058823529411764705 0.062745098039215685 0.066666666666666666 0.070588235294117646 0.074509803921568626 0.078431372549019607 0.082352941176470587 0.086274509803921567 0.090196078431372548 0.094117647058823528 0.098039215686274508 0.10196078431372549 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352941 0.12156862745098039 0.12549019607843137 0.12941176470588237 0.13333333333333333 0.13725490196078433 0.14117647058823529 0.14509803921568629 0.14901960784313725 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.16470588235294117 0.16862745098039217 0.17254901960784313 0.17647058823529413 0.1803921568627451 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000001 0.20392156862745098 0.20784313725490197 0.21176470588235294 0.21568627450980393 0.2196078431372549 0.22352941176470589 0.22745098039215686 0.23137254901960785 0.23529411764705882 0.23921568627450981 0.24313725490196078 0.24705882352941178 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.2627450980392157 0.26666666666666666 0.27058823529411763 0.27450980392156865 0.27843137254901962 0.28235294117647058 0.28627450980392155 0.29019607843137257 0.29411764705882354 0.29803921568627451 0.30196078431372547 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352939 0.32156862745098042 0.32549019607843138 0.32941176470588235 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568627 0.34901960784313724 0.35294117647058826 0.35686274509803922 0.36078431372549019 0.36470588235294116 0.36862745098039218 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764707 0.39215686274509803 0.396078431372549 0.40000000000000002 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980394 0.41960784313725491 0.42352941176470588 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941179 0.45098039215686275 0.45490196078431372 0.45882352941176469 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901963 0.4823529411764706 0.48627450980392156 0.49019607843137253 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568623 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686276 0.65490196078431373 0.6588235294117647 0.66274509803921566 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117652 0.70980392156862748 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.72941176470588232 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.7686274509803922 0.77254901960784317 0.77647058823529413 0.7803921568627451 0.78431372549019607 0.78823529411764703 0.792156862745098 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705885 0.83921568627450982 0.84313725490196079 0.84705882352941175 0.85098039215686272 0.85490196078431369 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392153 0.8901960784313725 0.89411764705882357 0.89803921568627454 0.90196078431372551 0.90588235294117647 0.90980392156862744 0.9137254901960784 0.91764705882352937 0.92156862745098034 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549022 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019602 0.9882352941176471 0.99215686274509807 0.99607843137254903 1))) +(GimpDeviceInfo "Virtual core XTEST pointer" + (icon-name "gimp-cursor") + (name "Virtual core XTEST pointer") + (tool-options "GimpCropOptions" + (tool "gimp-crop-tool") + (pattern "Pine")) + (use-fg-bg no) + (use-opacity-paint-mode no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 2 x y) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 4 0 0 1 1) + (point-types 2 smooth smooth) + (n-samples 256) + (samples 256 0 0.0039220000000000001 0.0078429999999999993 0.011764999999999999 0.015685999999999999 0.019608 0.023529000000000001 0.027451 0.031372999999999998 0.035293999999999999 0.039216000000000001 0.043137000000000002 0.047058999999999997 0.050979999999999998 0.054901999999999999 0.058824000000000001 0.062744999999999995 0.066667000000000004 0.070587999999999998 0.074510000000000007 0.078431000000000001 0.082352999999999996 0.086275000000000004 0.090195999999999998 0.094117999999999993 0.098039000000000001 0.101961 0.105882 0.109804 0.11372500000000001 0.117647 0.121569 0.12548999999999999 0.129412 0.13333300000000001 0.13725499999999999 0.141176 0.145098 0.14902000000000001 0.15294099999999999 0.156863 0.16078400000000001 0.16470599999999999 0.168627 0.17254900000000001 0.17647099999999999 0.180392 0.18431400000000001 0.18823500000000001 0.19215699999999999 0.196078 0.20000000000000001 0.20392199999999999 0.207843 0.21176500000000001 0.21568599999999999 0.219608 0.22352900000000001 0.22745099999999999 0.231373 0.235294 0.23921600000000001 0.24313699999999999 0.247059 0.25097999999999998 0.25490200000000002 0.258824 0.26274500000000001 0.26666699999999999 0.270588 0.27450999999999998 0.27843099999999998 0.28235300000000002 0.286275 0.29019600000000001 0.29411799999999999 0.298039 0.30196099999999998 0.30588199999999999 0.30980400000000002 0.31372499999999998 0.31764700000000001 0.32156899999999999 0.32549 0.32941199999999998 0.33333299999999999 0.33725500000000003 0.34117599999999998 0.34509800000000002 0.34902 0.352941 0.35686299999999999 0.36078399999999999 0.36470599999999997 0.36862699999999998 0.37254900000000002 0.376471 0.38039200000000001 0.38431399999999999 0.388235 0.39215699999999998 0.39607799999999999 0.40000000000000002 0.403922 0.40784300000000001 0.41176499999999999 0.415686 0.41960799999999998 0.42352899999999999 0.42745100000000003 0.43137300000000001 0.43529400000000001 0.439216 0.443137 0.44705899999999998 0.45097999999999999 0.45490199999999997 0.45882400000000001 0.46274500000000002 0.466667 0.47058800000000001 0.47450999999999999 0.478431 0.48235299999999998 0.48627500000000001 0.49019600000000002 0.494118 0.49803900000000001 0.50196099999999999 0.50588200000000005 0.50980400000000003 0.51372499999999999 0.51764699999999997 0.52156899999999995 0.52549000000000001 0.52941199999999999 0.53333299999999995 0.53725500000000004 0.54117599999999999 0.54509799999999997 0.54901999999999995 0.55294100000000002 0.556863 0.56078399999999995 0.56470600000000004 0.56862699999999999 0.57254899999999997 0.57647099999999996 0.58039200000000002 0.584314 0.58823499999999995 0.59215700000000004 0.596078 0.59999999999999998 0.60392199999999996 0.60784300000000002 0.611765 0.61568599999999996 0.61960800000000005 0.623529 0.62745099999999998 0.63137299999999996 0.63529400000000003 0.63921600000000001 0.64313699999999996 0.64705900000000005 0.65098 0.65490199999999998 0.65882399999999997 0.66274500000000003 0.66666700000000001 0.67058799999999996 0.67451000000000005 0.67843100000000001 0.68235299999999999 0.68627499999999997 0.69019600000000003 0.69411800000000001 0.69803899999999997 0.70196099999999995 0.70588200000000001 0.70980399999999999 0.71372500000000005 0.71764700000000003 0.72156900000000002 0.72548999999999997 0.72941199999999995 0.73333300000000001 0.73725499999999999 0.74117599999999995 0.74509800000000004 0.74902000000000002 0.75294099999999997 0.75686299999999995 0.76078400000000002 0.764706 0.76862699999999995 0.77254900000000004 0.77647100000000002 0.78039199999999997 0.78431399999999996 0.78823500000000002 0.792157 0.79607799999999995 0.80000000000000004 0.80392200000000003 0.80784299999999998 0.81176499999999996 0.81568600000000002 0.819608 0.82352899999999996 0.82745100000000005 0.83137300000000003 0.83529399999999998 0.83921599999999996 0.84313700000000003 0.84705900000000001 0.85097999999999996 0.85490200000000005 0.85882400000000003 0.86274499999999998 0.86666699999999997 0.87058800000000003 0.87451000000000001 0.87843099999999996 0.88235300000000005 0.88627500000000003 0.89019599999999999 0.89411799999999997 0.89803900000000003 0.90196100000000001 0.90588199999999997 0.90980399999999995 0.91372500000000001 0.91764699999999999 0.92156899999999997 0.92549000000000003 0.92941200000000002 0.93333299999999997 0.93725499999999995 0.94117600000000001 0.94509799999999999 0.94901999999999997 0.95294100000000004 0.95686300000000002 0.96078399999999997 0.96470599999999995 0.96862700000000002 0.972549 0.97647099999999998 0.98039200000000004 0.98431400000000002 0.98823499999999997 0.99215699999999996 0.99607800000000002 1))) +(GimpDeviceInfo "Logitech G203 Prodigy Gaming Mouse" + (icon-name "gimp-cursor") + (name "Logitech G203 Prodigy Gaming Mouse") + (tool-options "GimpMoveOptions" + (tool "gimp-move-tool")) + (use-fg-bg no) + (use-opacity-paint-mode no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352941 0.015686274509803921 0.019607843137254902 0.023529411764705882 0.027450980392156862 0.031372549019607843 0.035294117647058823 0.039215686274509803 0.043137254901960784 0.047058823529411764 0.050980392156862744 0.054901960784313725 0.058823529411764705 0.062745098039215685 0.066666666666666666 0.070588235294117646 0.074509803921568626 0.078431372549019607 0.082352941176470587 0.086274509803921567 0.090196078431372548 0.094117647058823528 0.098039215686274508 0.10196078431372549 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352941 0.12156862745098039 0.12549019607843137 0.12941176470588237 0.13333333333333333 0.13725490196078433 0.14117647058823529 0.14509803921568629 0.14901960784313725 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.16470588235294117 0.16862745098039217 0.17254901960784313 0.17647058823529413 0.1803921568627451 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000001 0.20392156862745098 0.20784313725490197 0.21176470588235294 0.21568627450980393 0.2196078431372549 0.22352941176470589 0.22745098039215686 0.23137254901960785 0.23529411764705882 0.23921568627450981 0.24313725490196078 0.24705882352941178 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.2627450980392157 0.26666666666666666 0.27058823529411763 0.27450980392156865 0.27843137254901962 0.28235294117647058 0.28627450980392155 0.29019607843137257 0.29411764705882354 0.29803921568627451 0.30196078431372547 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352939 0.32156862745098042 0.32549019607843138 0.32941176470588235 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568627 0.34901960784313724 0.35294117647058826 0.35686274509803922 0.36078431372549019 0.36470588235294116 0.36862745098039218 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764707 0.39215686274509803 0.396078431372549 0.40000000000000002 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980394 0.41960784313725491 0.42352941176470588 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941179 0.45098039215686275 0.45490196078431372 0.45882352941176469 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901963 0.4823529411764706 0.48627450980392156 0.49019607843137253 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568623 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686276 0.65490196078431373 0.6588235294117647 0.66274509803921566 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117652 0.70980392156862748 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.72941176470588232 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.7686274509803922 0.77254901960784317 0.77647058823529413 0.7803921568627451 0.78431372549019607 0.78823529411764703 0.792156862745098 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705885 0.83921568627450982 0.84313725490196079 0.84705882352941175 0.85098039215686272 0.85490196078431369 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392153 0.8901960784313725 0.89411764705882357 0.89803921568627454 0.90196078431372551 0.90588235294117647 0.90980392156862744 0.9137254901960784 0.91764705882352937 0.92156862745098034 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549022 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019602 0.9882352941176471 0.99215686274509807 0.99607843137254903 1))) +(GimpDeviceInfo "Logitech G203 Prodigy Gaming Mouse Consumer Control" + (icon-name "gimp-cursor") + (name "Logitech G203 Prodigy Gaming Mouse Consumer Control") + (tool-options "GimpMoveOptions" + (tool "gimp-move-tool")) + (use-fg-bg no) + (use-opacity-paint-mode no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352941 0.015686274509803921 0.019607843137254902 0.023529411764705882 0.027450980392156862 0.031372549019607843 0.035294117647058823 0.039215686274509803 0.043137254901960784 0.047058823529411764 0.050980392156862744 0.054901960784313725 0.058823529411764705 0.062745098039215685 0.066666666666666666 0.070588235294117646 0.074509803921568626 0.078431372549019607 0.082352941176470587 0.086274509803921567 0.090196078431372548 0.094117647058823528 0.098039215686274508 0.10196078431372549 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352941 0.12156862745098039 0.12549019607843137 0.12941176470588237 0.13333333333333333 0.13725490196078433 0.14117647058823529 0.14509803921568629 0.14901960784313725 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.16470588235294117 0.16862745098039217 0.17254901960784313 0.17647058823529413 0.1803921568627451 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000001 0.20392156862745098 0.20784313725490197 0.21176470588235294 0.21568627450980393 0.2196078431372549 0.22352941176470589 0.22745098039215686 0.23137254901960785 0.23529411764705882 0.23921568627450981 0.24313725490196078 0.24705882352941178 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.2627450980392157 0.26666666666666666 0.27058823529411763 0.27450980392156865 0.27843137254901962 0.28235294117647058 0.28627450980392155 0.29019607843137257 0.29411764705882354 0.29803921568627451 0.30196078431372547 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352939 0.32156862745098042 0.32549019607843138 0.32941176470588235 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568627 0.34901960784313724 0.35294117647058826 0.35686274509803922 0.36078431372549019 0.36470588235294116 0.36862745098039218 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764707 0.39215686274509803 0.396078431372549 0.40000000000000002 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980394 0.41960784313725491 0.42352941176470588 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941179 0.45098039215686275 0.45490196078431372 0.45882352941176469 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901963 0.4823529411764706 0.48627450980392156 0.49019607843137253 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568623 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686276 0.65490196078431373 0.6588235294117647 0.66274509803921566 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117652 0.70980392156862748 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.72941176470588232 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.7686274509803922 0.77254901960784317 0.77647058823529413 0.7803921568627451 0.78431372549019607 0.78823529411764703 0.792156862745098 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705885 0.83921568627450982 0.84313725490196079 0.84705882352941175 0.85098039215686272 0.85490196078431369 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392153 0.8901960784313725 0.89411764705882357 0.89803921568627454 0.90196078431372551 0.90588235294117647 0.90980392156862744 0.9137254901960784 0.91764705882352937 0.92156862745098034 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549022 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019602 0.9882352941176471 0.99215686274509807 0.99607843137254903 1))) +(GimpDeviceInfo "Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)" + (icon-name "gimp-cursor") + (name "Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)") + (tool-options "GimpRectangleSelectOptions" + (tool "gimp-rect-select-tool") + (corner-radius 46.200000000000003)) + (use-fg-bg no) + (use-opacity-paint-mode no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352941 0.015686274509803921 0.019607843137254902 0.023529411764705882 0.027450980392156862 0.031372549019607843 0.035294117647058823 0.039215686274509803 0.043137254901960784 0.047058823529411764 0.050980392156862744 0.054901960784313725 0.058823529411764705 0.062745098039215685 0.066666666666666666 0.070588235294117646 0.074509803921568626 0.078431372549019607 0.082352941176470587 0.086274509803921567 0.090196078431372548 0.094117647058823528 0.098039215686274508 0.10196078431372549 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352941 0.12156862745098039 0.12549019607843137 0.12941176470588237 0.13333333333333333 0.13725490196078433 0.14117647058823529 0.14509803921568629 0.14901960784313725 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.16470588235294117 0.16862745098039217 0.17254901960784313 0.17647058823529413 0.1803921568627451 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000001 0.20392156862745098 0.20784313725490197 0.21176470588235294 0.21568627450980393 0.2196078431372549 0.22352941176470589 0.22745098039215686 0.23137254901960785 0.23529411764705882 0.23921568627450981 0.24313725490196078 0.24705882352941178 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.2627450980392157 0.26666666666666666 0.27058823529411763 0.27450980392156865 0.27843137254901962 0.28235294117647058 0.28627450980392155 0.29019607843137257 0.29411764705882354 0.29803921568627451 0.30196078431372547 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352939 0.32156862745098042 0.32549019607843138 0.32941176470588235 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568627 0.34901960784313724 0.35294117647058826 0.35686274509803922 0.36078431372549019 0.36470588235294116 0.36862745098039218 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764707 0.39215686274509803 0.396078431372549 0.40000000000000002 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980394 0.41960784313725491 0.42352941176470588 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941179 0.45098039215686275 0.45490196078431372 0.45882352941176469 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901963 0.4823529411764706 0.48627450980392156 0.49019607843137253 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568623 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686276 0.65490196078431373 0.6588235294117647 0.66274509803921566 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117652 0.70980392156862748 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.72941176470588232 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.7686274509803922 0.77254901960784317 0.77647058823529413 0.7803921568627451 0.78431372549019607 0.78823529411764703 0.792156862745098 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705885 0.83921568627450982 0.84313725490196079 0.84705882352941175 0.85098039215686272 0.85490196078431369 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392153 0.8901960784313725 0.89411764705882357 0.89803921568627454 0.90196078431372551 0.90588235294117647 0.90980392156862744 0.9137254901960784 0.91764705882352937 0.92156862745098034 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549022 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019602 0.9882352941176471 0.99215686274509807 0.99607843137254903 1))) +(GimpDeviceInfo "SINOWEALTH Game Mouse" + (icon-name "gimp-cursor") + (name "SINOWEALTH Game Mouse") + (tool-options "GimpCropOptions" + (tool "gimp-crop-tool") + (pattern "Pine")) + (use-fg-bg no) + (use-opacity-paint-mode no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 4 0 0 1 1) + (point-types 2 smooth smooth) + (n-samples 256) + (samples 256 0 0.0039220000000000001 0.0078429999999999993 0.011764999999999999 0.015685999999999999 0.019608 0.023529000000000001 0.027451 0.031372999999999998 0.035293999999999999 0.039216000000000001 0.043137000000000002 0.047058999999999997 0.050979999999999998 0.054901999999999999 0.058824000000000001 0.062744999999999995 0.066667000000000004 0.070587999999999998 0.074510000000000007 0.078431000000000001 0.082352999999999996 0.086275000000000004 0.090195999999999998 0.094117999999999993 0.098039000000000001 0.101961 0.105882 0.109804 0.11372500000000001 0.117647 0.121569 0.12548999999999999 0.129412 0.13333300000000001 0.13725499999999999 0.141176 0.145098 0.14902000000000001 0.15294099999999999 0.156863 0.16078400000000001 0.16470599999999999 0.168627 0.17254900000000001 0.17647099999999999 0.180392 0.18431400000000001 0.18823500000000001 0.19215699999999999 0.196078 0.20000000000000001 0.20392199999999999 0.207843 0.21176500000000001 0.21568599999999999 0.219608 0.22352900000000001 0.22745099999999999 0.231373 0.235294 0.23921600000000001 0.24313699999999999 0.247059 0.25097999999999998 0.25490200000000002 0.258824 0.26274500000000001 0.26666699999999999 0.270588 0.27450999999999998 0.27843099999999998 0.28235300000000002 0.286275 0.29019600000000001 0.29411799999999999 0.298039 0.30196099999999998 0.30588199999999999 0.30980400000000002 0.31372499999999998 0.31764700000000001 0.32156899999999999 0.32549 0.32941199999999998 0.33333299999999999 0.33725500000000003 0.34117599999999998 0.34509800000000002 0.34902 0.352941 0.35686299999999999 0.36078399999999999 0.36470599999999997 0.36862699999999998 0.37254900000000002 0.376471 0.38039200000000001 0.38431399999999999 0.388235 0.39215699999999998 0.39607799999999999 0.40000000000000002 0.403922 0.40784300000000001 0.41176499999999999 0.415686 0.41960799999999998 0.42352899999999999 0.42745100000000003 0.43137300000000001 0.43529400000000001 0.439216 0.443137 0.44705899999999998 0.45097999999999999 0.45490199999999997 0.45882400000000001 0.46274500000000002 0.466667 0.47058800000000001 0.47450999999999999 0.478431 0.48235299999999998 0.48627500000000001 0.49019600000000002 0.494118 0.49803900000000001 0.50196099999999999 0.50588200000000005 0.50980400000000003 0.51372499999999999 0.51764699999999997 0.52156899999999995 0.52549000000000001 0.52941199999999999 0.53333299999999995 0.53725500000000004 0.54117599999999999 0.54509799999999997 0.54901999999999995 0.55294100000000002 0.556863 0.56078399999999995 0.56470600000000004 0.56862699999999999 0.57254899999999997 0.57647099999999996 0.58039200000000002 0.584314 0.58823499999999995 0.59215700000000004 0.596078 0.59999999999999998 0.60392199999999996 0.60784300000000002 0.611765 0.61568599999999996 0.61960800000000005 0.623529 0.62745099999999998 0.63137299999999996 0.63529400000000003 0.63921600000000001 0.64313699999999996 0.64705900000000005 0.65098 0.65490199999999998 0.65882399999999997 0.66274500000000003 0.66666700000000001 0.67058799999999996 0.67451000000000005 0.67843100000000001 0.68235299999999999 0.68627499999999997 0.69019600000000003 0.69411800000000001 0.69803899999999997 0.70196099999999995 0.70588200000000001 0.70980399999999999 0.71372500000000005 0.71764700000000003 0.72156900000000002 0.72548999999999997 0.72941199999999995 0.73333300000000001 0.73725499999999999 0.74117599999999995 0.74509800000000004 0.74902000000000002 0.75294099999999997 0.75686299999999995 0.76078400000000002 0.764706 0.76862699999999995 0.77254900000000004 0.77647100000000002 0.78039199999999997 0.78431399999999996 0.78823500000000002 0.792157 0.79607799999999995 0.80000000000000004 0.80392200000000003 0.80784299999999998 0.81176499999999996 0.81568600000000002 0.819608 0.82352899999999996 0.82745100000000005 0.83137300000000003 0.83529399999999998 0.83921599999999996 0.84313700000000003 0.84705900000000001 0.85097999999999996 0.85490200000000005 0.85882400000000003 0.86274499999999998 0.86666699999999997 0.87058800000000003 0.87451000000000001 0.87843099999999996 0.88235300000000005 0.88627500000000003 0.89019599999999999 0.89411799999999997 0.89803900000000003 0.90196100000000001 0.90588199999999997 0.90980399999999995 0.91372500000000001 0.91764699999999999 0.92156899999999997 0.92549000000000003 0.92941200000000002 0.93333299999999997 0.93725499999999995 0.94117600000000001 0.94509799999999999 0.94901999999999997 0.95294100000000004 0.95686300000000002 0.96078399999999997 0.96470599999999995 0.96862700000000002 0.972549 0.97647099999999998 0.98039200000000004 0.98431400000000002 0.98823499999999997 0.99215699999999996 0.99607800000000002 1))) +(GimpDeviceInfo "SONiX USB DEVICE" + (name "SONiX USB DEVICE") + (tool-options "GimpCropOptions" + (tool "gimp-crop-tool") + (pattern "Pine")) + (use-fg-bg no) + (use-opacity-paint-mode no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 4 0 0 1 1) + (point-types 2 smooth smooth) + (n-samples 256) + (samples 256 0 0.0039220000000000001 0.0078429999999999993 0.011764999999999999 0.015685999999999999 0.019608 0.023529000000000001 0.027451 0.031372999999999998 0.035293999999999999 0.039216000000000001 0.043137000000000002 0.047058999999999997 0.050979999999999998 0.054901999999999999 0.058824000000000001 0.062744999999999995 0.066667000000000004 0.070587999999999998 0.074510000000000007 0.078431000000000001 0.082352999999999996 0.086275000000000004 0.090195999999999998 0.094117999999999993 0.098039000000000001 0.101961 0.105882 0.109804 0.11372500000000001 0.117647 0.121569 0.12548999999999999 0.129412 0.13333300000000001 0.13725499999999999 0.141176 0.145098 0.14902000000000001 0.15294099999999999 0.156863 0.16078400000000001 0.16470599999999999 0.168627 0.17254900000000001 0.17647099999999999 0.180392 0.18431400000000001 0.18823500000000001 0.19215699999999999 0.196078 0.20000000000000001 0.20392199999999999 0.207843 0.21176500000000001 0.21568599999999999 0.219608 0.22352900000000001 0.22745099999999999 0.231373 0.235294 0.23921600000000001 0.24313699999999999 0.247059 0.25097999999999998 0.25490200000000002 0.258824 0.26274500000000001 0.26666699999999999 0.270588 0.27450999999999998 0.27843099999999998 0.28235300000000002 0.286275 0.29019600000000001 0.29411799999999999 0.298039 0.30196099999999998 0.30588199999999999 0.30980400000000002 0.31372499999999998 0.31764700000000001 0.32156899999999999 0.32549 0.32941199999999998 0.33333299999999999 0.33725500000000003 0.34117599999999998 0.34509800000000002 0.34902 0.352941 0.35686299999999999 0.36078399999999999 0.36470599999999997 0.36862699999999998 0.37254900000000002 0.376471 0.38039200000000001 0.38431399999999999 0.388235 0.39215699999999998 0.39607799999999999 0.40000000000000002 0.403922 0.40784300000000001 0.41176499999999999 0.415686 0.41960799999999998 0.42352899999999999 0.42745100000000003 0.43137300000000001 0.43529400000000001 0.439216 0.443137 0.44705899999999998 0.45097999999999999 0.45490199999999997 0.45882400000000001 0.46274500000000002 0.466667 0.47058800000000001 0.47450999999999999 0.478431 0.48235299999999998 0.48627500000000001 0.49019600000000002 0.494118 0.49803900000000001 0.50196099999999999 0.50588200000000005 0.50980400000000003 0.51372499999999999 0.51764699999999997 0.52156899999999995 0.52549000000000001 0.52941199999999999 0.53333299999999995 0.53725500000000004 0.54117599999999999 0.54509799999999997 0.54901999999999995 0.55294100000000002 0.556863 0.56078399999999995 0.56470600000000004 0.56862699999999999 0.57254899999999997 0.57647099999999996 0.58039200000000002 0.584314 0.58823499999999995 0.59215700000000004 0.596078 0.59999999999999998 0.60392199999999996 0.60784300000000002 0.611765 0.61568599999999996 0.61960800000000005 0.623529 0.62745099999999998 0.63137299999999996 0.63529400000000003 0.63921600000000001 0.64313699999999996 0.64705900000000005 0.65098 0.65490199999999998 0.65882399999999997 0.66274500000000003 0.66666700000000001 0.67058799999999996 0.67451000000000005 0.67843100000000001 0.68235299999999999 0.68627499999999997 0.69019600000000003 0.69411800000000001 0.69803899999999997 0.70196099999999995 0.70588200000000001 0.70980399999999999 0.71372500000000005 0.71764700000000003 0.72156900000000002 0.72548999999999997 0.72941199999999995 0.73333300000000001 0.73725499999999999 0.74117599999999995 0.74509800000000004 0.74902000000000002 0.75294099999999997 0.75686299999999995 0.76078400000000002 0.764706 0.76862699999999995 0.77254900000000004 0.77647100000000002 0.78039199999999997 0.78431399999999996 0.78823500000000002 0.792157 0.79607799999999995 0.80000000000000004 0.80392200000000003 0.80784299999999998 0.81176499999999996 0.81568600000000002 0.819608 0.82352899999999996 0.82745100000000005 0.83137300000000003 0.83529399999999998 0.83921599999999996 0.84313700000000003 0.84705900000000001 0.85097999999999996 0.85490200000000005 0.85882400000000003 0.86274499999999998 0.86666699999999997 0.87058800000000003 0.87451000000000001 0.87843099999999996 0.88235300000000005 0.88627500000000003 0.89019599999999999 0.89411799999999997 0.89803900000000003 0.90196100000000001 0.90588199999999997 0.90980399999999995 0.91372500000000001 0.91764699999999999 0.92156899999999997 0.92549000000000003 0.92941200000000002 0.93333299999999997 0.93725499999999995 0.94117600000000001 0.94509799999999999 0.94901999999999997 0.95294100000000004 0.95686300000000002 0.96078399999999997 0.96470599999999995 0.96862700000000002 0.972549 0.97647099999999998 0.98039200000000004 0.98431400000000002 0.98823499999999997 0.99215699999999996 0.99607800000000002 1))) +(GimpDeviceInfo "SONiX USB DEVICE Consumer Control" + (name "SONiX USB DEVICE Consumer Control") + (tool-options "GimpMoveOptions" + (tool "gimp-move-tool")) + (use-fg-bg no) + (use-opacity-paint-mode no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352941 0.015686274509803921 0.019607843137254902 0.023529411764705882 0.027450980392156862 0.031372549019607843 0.035294117647058823 0.039215686274509803 0.043137254901960784 0.047058823529411764 0.050980392156862744 0.054901960784313725 0.058823529411764705 0.062745098039215685 0.066666666666666666 0.070588235294117646 0.074509803921568626 0.078431372549019607 0.082352941176470587 0.086274509803921567 0.090196078431372548 0.094117647058823528 0.098039215686274508 0.10196078431372549 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352941 0.12156862745098039 0.12549019607843137 0.12941176470588237 0.13333333333333333 0.13725490196078433 0.14117647058823529 0.14509803921568629 0.14901960784313725 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.16470588235294117 0.16862745098039217 0.17254901960784313 0.17647058823529413 0.1803921568627451 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000001 0.20392156862745098 0.20784313725490197 0.21176470588235294 0.21568627450980393 0.2196078431372549 0.22352941176470589 0.22745098039215686 0.23137254901960785 0.23529411764705882 0.23921568627450981 0.24313725490196078 0.24705882352941178 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.2627450980392157 0.26666666666666666 0.27058823529411763 0.27450980392156865 0.27843137254901962 0.28235294117647058 0.28627450980392155 0.29019607843137257 0.29411764705882354 0.29803921568627451 0.30196078431372547 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352939 0.32156862745098042 0.32549019607843138 0.32941176470588235 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568627 0.34901960784313724 0.35294117647058826 0.35686274509803922 0.36078431372549019 0.36470588235294116 0.36862745098039218 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764707 0.39215686274509803 0.396078431372549 0.40000000000000002 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980394 0.41960784313725491 0.42352941176470588 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941179 0.45098039215686275 0.45490196078431372 0.45882352941176469 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901963 0.4823529411764706 0.48627450980392156 0.49019607843137253 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568623 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686276 0.65490196078431373 0.6588235294117647 0.66274509803921566 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117652 0.70980392156862748 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.72941176470588232 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.7686274509803922 0.77254901960784317 0.77647058823529413 0.7803921568627451 0.78431372549019607 0.78823529411764703 0.792156862745098 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705885 0.83921568627450982 0.84313725490196079 0.84705882352941175 0.85098039215686272 0.85490196078431369 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392153 0.8901960784313725 0.89411764705882357 0.89803921568627454 0.90196078431372551 0.90588235294117647 0.90980392156862744 0.9137254901960784 0.91764705882352937 0.92156862745098034 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549022 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019602 0.9882352941176471 0.99215686274509807 0.99607843137254903 1))) +(GimpDeviceInfo "eGalax Inc. eGalaxTouch EXC3000-0367-44.01.00" + (name "eGalax Inc. eGalaxTouch EXC3000-0367-44.01.00") + (tool-options "GimpRectangleSelectOptions" + (tool "gimp-rect-select-tool") + (corner-radius 46.200000000000003)) + (use-fg-bg no) + (use-opacity-paint-mode no) + (use-brush no) + (use-dynamics no) + (use-mypaint-brush no) + (use-gradient no) + (use-pattern no) + (use-palette no) + (use-font no) + (mode disabled) + (axes 4 x y pressure xtilt) + (keys 0) + (pressure-curve + (curve-type smooth) + (points 0) + (point-types 0) + (n-samples 256) + (samples 256 0 0.0039215686274509803 0.0078431372549019607 0.011764705882352941 0.015686274509803921 0.019607843137254902 0.023529411764705882 0.027450980392156862 0.031372549019607843 0.035294117647058823 0.039215686274509803 0.043137254901960784 0.047058823529411764 0.050980392156862744 0.054901960784313725 0.058823529411764705 0.062745098039215685 0.066666666666666666 0.070588235294117646 0.074509803921568626 0.078431372549019607 0.082352941176470587 0.086274509803921567 0.090196078431372548 0.094117647058823528 0.098039215686274508 0.10196078431372549 0.10588235294117647 0.10980392156862745 0.11372549019607843 0.11764705882352941 0.12156862745098039 0.12549019607843137 0.12941176470588237 0.13333333333333333 0.13725490196078433 0.14117647058823529 0.14509803921568629 0.14901960784313725 0.15294117647058825 0.15686274509803921 0.16078431372549021 0.16470588235294117 0.16862745098039217 0.17254901960784313 0.17647058823529413 0.1803921568627451 0.18431372549019609 0.18823529411764706 0.19215686274509805 0.19607843137254902 0.20000000000000001 0.20392156862745098 0.20784313725490197 0.21176470588235294 0.21568627450980393 0.2196078431372549 0.22352941176470589 0.22745098039215686 0.23137254901960785 0.23529411764705882 0.23921568627450981 0.24313725490196078 0.24705882352941178 0.25098039215686274 0.25490196078431371 0.25882352941176473 0.2627450980392157 0.26666666666666666 0.27058823529411763 0.27450980392156865 0.27843137254901962 0.28235294117647058 0.28627450980392155 0.29019607843137257 0.29411764705882354 0.29803921568627451 0.30196078431372547 0.30588235294117649 0.30980392156862746 0.31372549019607843 0.31764705882352939 0.32156862745098042 0.32549019607843138 0.32941176470588235 0.33333333333333331 0.33725490196078434 0.3411764705882353 0.34509803921568627 0.34901960784313724 0.35294117647058826 0.35686274509803922 0.36078431372549019 0.36470588235294116 0.36862745098039218 0.37254901960784315 0.37647058823529411 0.38039215686274508 0.3843137254901961 0.38823529411764707 0.39215686274509803 0.396078431372549 0.40000000000000002 0.40392156862745099 0.40784313725490196 0.41176470588235292 0.41568627450980394 0.41960784313725491 0.42352941176470588 0.42745098039215684 0.43137254901960786 0.43529411764705883 0.4392156862745098 0.44313725490196076 0.44705882352941179 0.45098039215686275 0.45490196078431372 0.45882352941176469 0.46274509803921571 0.46666666666666667 0.47058823529411764 0.47450980392156861 0.47843137254901963 0.4823529411764706 0.48627450980392156 0.49019607843137253 0.49411764705882355 0.49803921568627452 0.50196078431372548 0.50588235294117645 0.50980392156862742 0.51372549019607838 0.51764705882352946 0.52156862745098043 0.52549019607843139 0.52941176470588236 0.53333333333333333 0.53725490196078429 0.54117647058823526 0.54509803921568623 0.5490196078431373 0.55294117647058827 0.55686274509803924 0.5607843137254902 0.56470588235294117 0.56862745098039214 0.5725490196078431 0.57647058823529407 0.58039215686274515 0.58431372549019611 0.58823529411764708 0.59215686274509804 0.59607843137254901 0.59999999999999998 0.60392156862745094 0.60784313725490191 0.61176470588235299 0.61568627450980395 0.61960784313725492 0.62352941176470589 0.62745098039215685 0.63137254901960782 0.63529411764705879 0.63921568627450975 0.64313725490196083 0.6470588235294118 0.65098039215686276 0.65490196078431373 0.6588235294117647 0.66274509803921566 0.66666666666666663 0.6705882352941176 0.67450980392156867 0.67843137254901964 0.68235294117647061 0.68627450980392157 0.69019607843137254 0.69411764705882351 0.69803921568627447 0.70196078431372544 0.70588235294117652 0.70980392156862748 0.71372549019607845 0.71764705882352942 0.72156862745098038 0.72549019607843135 0.72941176470588232 0.73333333333333328 0.73725490196078436 0.74117647058823533 0.74509803921568629 0.74901960784313726 0.75294117647058822 0.75686274509803919 0.76078431372549016 0.76470588235294112 0.7686274509803922 0.77254901960784317 0.77647058823529413 0.7803921568627451 0.78431372549019607 0.78823529411764703 0.792156862745098 0.79607843137254897 0.80000000000000004 0.80392156862745101 0.80784313725490198 0.81176470588235294 0.81568627450980391 0.81960784313725488 0.82352941176470584 0.82745098039215681 0.83137254901960789 0.83529411764705885 0.83921568627450982 0.84313725490196079 0.84705882352941175 0.85098039215686272 0.85490196078431369 0.85882352941176465 0.86274509803921573 0.8666666666666667 0.87058823529411766 0.87450980392156863 0.8784313725490196 0.88235294117647056 0.88627450980392153 0.8901960784313725 0.89411764705882357 0.89803921568627454 0.90196078431372551 0.90588235294117647 0.90980392156862744 0.9137254901960784 0.91764705882352937 0.92156862745098034 0.92549019607843142 0.92941176470588238 0.93333333333333335 0.93725490196078431 0.94117647058823528 0.94509803921568625 0.94901960784313721 0.95294117647058818 0.95686274509803926 0.96078431372549022 0.96470588235294119 0.96862745098039216 0.97254901960784312 0.97647058823529409 0.98039215686274506 0.98431372549019602 0.9882352941176471 0.99215686274509807 0.99607843137254903 1))) + +# end of devicerc diff --git a/GIMP/2.10/dockrc b/GIMP/2.10/dockrc new file mode 100755 index 0000000..bb1944b --- /dev/null +++ b/GIMP/2.10/dockrc @@ -0,0 +1,4 @@ +# recently closed docks + + +# end of recently closed docks diff --git a/GIMP/2.10/internal-data/custom.ggr b/GIMP/2.10/internal-data/custom.ggr new file mode 100644 index 0000000..ab2b3a6 --- /dev/null +++ b/GIMP/2.10/internal-data/custom.ggr @@ -0,0 +1,5 @@ +GIMP Gradient +Name: Custom +2 +0 0.26039777684111548 0.52079555368222941 0 0 0 1 0.022415173491766974 0.00034873996086867313 0.10440560888171176 1 0 0 1 0 +0.52079555368222941 0.76039777684111642 1 0.022415173491766974 0.00034873996086867313 0.10440560888171176 1 1 1 1 1 0 0 0 3 diff --git a/GIMP/2.10/menurc b/GIMP/2.10/menurc new file mode 100755 index 0000000..445c9de --- /dev/null +++ b/GIMP/2.10/menurc @@ -0,0 +1,1296 @@ +; gimp GtkAccelMap rc-file -*- scheme -*- +; this file is an automated accelerator map dump +; +; (gtk_accel_path "<Actions>/tools/tools-rotate-image-arbitrary" "") +; (gtk_accel_path "<Actions>/file/file-menu" "") +; (gtk_accel_path "<Actions>/view/view-show-canvas-boundary" "") +; (gtk_accel_path "<Actions>/tools/tools-opacity-set-to-default" "") +; (gtk_accel_path "<Actions>/context/context-background-value-decrease" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0005" "") +; (gtk_accel_path "<Actions>/vectors/vectors-color-tag-brown" "") +; (gtk_accel_path "<Actions>/tools/tools-opacity-increase-skip" "<Primary>greater") +(gtk_accel_path "<Actions>/tools/tools-vector" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0004" "") +; (gtk_accel_path "<Actions>/view/view-scroll-left" "") +; (gtk_accel_path "<Actions>/image/image-convert-u8" "") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-rate-increase" "") +; (gtk_accel_path "<Actions>/tools/tools-spacing-set-to-default" "") +; (gtk_accel_path "<Actions>/view/view-show-statusbar" "") +; (gtk_accel_path "<Actions>/layers/layers-opacity-transparent" "") +; (gtk_accel_path "<Actions>/vectors/vectors-color-tag-orange" "") +; (gtk_accel_path "<Actions>/view/view-zoom-8-1-accel" "KP_4") +; (gtk_accel_path "<Actions>/context/context-background-value-set" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0003" "") +; (gtk_accel_path "<Actions>/context/context-paint-mode-menu" "") +; (gtk_accel_path "<Actions>/filters/filters-motion-blur-linear" "") +; (gtk_accel_path "<Actions>/filters/filters-gegl-graph" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0002" "") +; (gtk_accel_path "<Actions>/context/context-brush-select-set" "") +; (gtk_accel_path "<Actions>/edit/edit-copy" "<Primary>c") +; (gtk_accel_path "<Actions>/context/context-brush-shape-circle" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0001" "") +; (gtk_accel_path "<Actions>/vectors/vectors-lock-content" "") +; (gtk_accel_path "<Actions>/context/context-opacity-opaque" "") +; (gtk_accel_path "<Actions>/view/view-color-management-menu" "") +; (gtk_accel_path "<Actions>/filters/filters-spherize" "") +; (gtk_accel_path "<Actions>/channels/channels-new-last-values" "") +; (gtk_accel_path "<Actions>/vectors/vectors-merge-visible" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-slide" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-spheredesigner" "") +(gtk_accel_path "<Actions>/filters/filters-curves" "<Primary>m") +; (gtk_accel_path "<Actions>/channels/channels-lock-position" "") +; (gtk_accel_path "<Actions>/context/context-brush-menu" "") +; (gtk_accel_path "<Actions>/context/context-foreground-blue-decrease" "") +; (gtk_accel_path "<Actions>/context/context-colors-menu" "") +; (gtk_accel_path "<Actions>/edit/edit-undo-clear" "") +; (gtk_accel_path "<Actions>/context/context-gradient-select-first" "") +; (gtk_accel_path "<Actions>/layers/layers-color-tag-brown" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-imagemap" "") +; (gtk_accel_path "<Actions>/filters/filters-recent-menu" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-map-object" "") +; (gtk_accel_path "<Actions>/layers/layers-text-along-vectors" "") +; (gtk_accel_path "<Actions>/view/view-zoom-revert" "grave") +; (gtk_accel_path "<Actions>/dialogs/dialogs-symmetry" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-script-fu-console" "") +; (gtk_accel_path "<Actions>/filters/filters-plasma" "") +; (gtk_accel_path "<Actions>/view/view-color-management-enable" "") +(gtk_accel_path "<Actions>/dialogs/dialogs-undo-history" "y") +; (gtk_accel_path "<Actions>/edit/edit-cut" "<Primary>x") +; (gtk_accel_path "<Actions>/context/context-foreground-value-increase-skip" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-addborder" "") +; (gtk_accel_path "<Actions>/view/view-display-intent-absolute-colorimetric" "") +; (gtk_accel_path "<Actions>/filters/filters-focus-blur" "") +; (gtk_accel_path "<Actions>/context/context-background-red-decrease" "") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-rate-maximum" "") +; (gtk_accel_path "<Actions>/vectors/vectors-color-tag-menu" "") +; (gtk_accel_path "<Actions>/view/view-fullscreen" "F11") +; (gtk_accel_path "<Actions>/dialogs/dialogs-brushes" "<Primary><Shift>b") +; (gtk_accel_path "<Actions>/context/context-brush-radius-decrease-skip" "") +; (gtk_accel_path "<Actions>/view/view-zoom-2-1" "2") +; (gtk_accel_path "<Actions>/tools/tools-spacing-minimum" "") +; (gtk_accel_path "<Actions>/context/context-foreground-blue-maximum" "") +; (gtk_accel_path "<Actions>/context/context-foreground-red-increase" "") +; (gtk_accel_path "<Actions>/view/view-snap-to-vectors" "") +; (gtk_accel_path "<Actions>/image/image-properties" "<Alt>Return") +; (gtk_accel_path "<Actions>/drawable/drawable-rotate-270" "") +; (gtk_accel_path "<Actions>/tools/tools-hardness-increase-percent" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-predator" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-colorify" "") +; (gtk_accel_path "<Actions>/view/view-show-grid" "") +; (gtk_accel_path "<Actions>/image/image-color-management-enabled" "") +; (gtk_accel_path "<Actions>/tools/tools-angle-increase" "") +; (gtk_accel_path "<Actions>/vectors/vectors-color-tag-violet" "") +; (gtk_accel_path "<Actions>/context/context-background-saturation-decrease-skip" "") +; (gtk_accel_path "<Actions>/layers/layers-composite-mode-union" "") +; (gtk_accel_path "<Actions>/channels/channels-color-tag-blue" "") +; (gtk_accel_path "<Actions>/windows/windows-dialogs-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-gegl" "") +; (gtk_accel_path "<Actions>/tool-options/tool-options-reset" "") +; (gtk_accel_path "<Actions>/layers/layers-delete" "") +; (gtk_accel_path "<Actions>/view/view-display-intent-menu" "") +; (gtk_accel_path "<Actions>/vectors/vectors-edit" "") +; (gtk_accel_path "<Actions>/filters/filters-illusion" "") +; (gtk_accel_path "<Actions>/context/context-colormap-foreground-previous" "") +; (gtk_accel_path "<Actions>/layers/layers-lock-content" "") +; (gtk_accel_path "<Actions>/file/file-create-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-spacing-decrease-skip" "") +; (gtk_accel_path "<Actions>/filters/filters-dropshadow" "") +; (gtk_accel_path "<Actions>/context/context-background-green-increase" "") +; (gtk_accel_path "<Actions>/layers/layers-alpha-selection-add" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-make-brush-rectangular-feathered" "") +; (gtk_accel_path "<Actions>/view/view-scroll-page-right" "") +; (gtk_accel_path "<Actions>/context/context-brush-radius-menu" "") +; (gtk_accel_path "<Actions>/layers/layers-blend-space-menu" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-histogram" "") +; (gtk_accel_path "<Actions>/layers/layers-opacity-opaque" "") +; (gtk_accel_path "<Actions>/context/context-background-saturation-increase" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-dynamics-editor" "") +; (gtk_accel_path "<Actions>/layers/layers-composite-space-menu" "") +; (gtk_accel_path "<Actions>/file/file-revert" "") +; (gtk_accel_path "<Actions>/filters/filters-fattal-2002" "") +; (gtk_accel_path "<Actions>/tools/tools-color-average-radius-set" "") +; (gtk_accel_path "<Actions>/filters/filters-distorts-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-fuzzy-select" "u") +; (gtk_accel_path "<Actions>/debug/debug-show-image-graph" "") +; (gtk_accel_path "<Actions>/context/context-brush-angle-maximum" "") +; (gtk_accel_path "<Actions>/view/view-zoom-selection" "") +; (gtk_accel_path "<Actions>/tools/tools-cage" "<Shift>g") +; (gtk_accel_path "<Actions>/file/file-open-location" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-blur" "") +; (gtk_accel_path "<Actions>/layers/layers-opacity-decrease" "") +; (gtk_accel_path "<Actions>/context/context-foreground-hue-decrease-skip" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-add" "") +; (gtk_accel_path "<Actions>/filters/filters-diffraction-patterns" "") +; (gtk_accel_path "<Actions>/image/image-convert-rgb" "") +; (gtk_accel_path "<Actions>/tools/tools-spacing-decrease-percent" "") +; (gtk_accel_path "<Actions>/context/context-gradient-select-last" "") +; (gtk_accel_path "<Actions>/file/file-create-template" "") +; (gtk_accel_path "<Actions>/vectors/vectors-color-tag-yellow" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-emboss" "") +; (gtk_accel_path "<Actions>/dockable/dockable-view-type-grid" "") +; (gtk_accel_path "<Actions>/view/view-navigation-window" "") +; (gtk_accel_path "<Actions>/windows/windows-tabs-position-bottom" "") +; (gtk_accel_path "<Actions>/context/context-brush-angle-set" "") +; (gtk_accel_path "<Actions>/context/context-background-blue-decrease" "") +; (gtk_accel_path "<Actions>/filters/filters-linear-sinusoid" "") +; (gtk_accel_path "<Actions>/context/context-foreground-green-set" "") +; (gtk_accel_path "<Actions>/tools/tools-levels" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-script-fu-server" "") +; (gtk_accel_path "<Actions>/dock/dock-move-to-screen-menu" "") +; (gtk_accel_path "<Actions>/windows/windows-tabs-position-right" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-line-nova" "") +; (gtk_accel_path "<Actions>/layers/layers-color-tag-blue" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-indexed-palette" "") +; (gtk_accel_path "<Actions>/tools/tools-object-1-set" "") +; (gtk_accel_path "<Actions>/channels/channels-new" "") +; (gtk_accel_path "<Actions>/edit/edit-named-paste" "") +; (gtk_accel_path "<Actions>/tools/tools-hardness-minimum" "") +; (gtk_accel_path "<Actions>/filters/filters-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-opacity-set" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-toolbox" "<Primary>b") +; (gtk_accel_path "<Actions>/plug-in/gimp-help-using-fileformats" "") +; (gtk_accel_path "<Actions>/edit/edit-strong-redo" "<Primary><Shift>y") +; (gtk_accel_path "<Actions>/filters/filters-alien-map" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-online-bugs-features" "") +; (gtk_accel_path "<Actions>/tools/tools-object-2-last" "") +; (gtk_accel_path "<Actions>/tools/tools-paintbrush-force-set" "") +; (gtk_accel_path "<Actions>/vectors/vectors-linked" "") +; (gtk_accel_path "<Actions>/filters/filters-gaussian-blur-selective" "") +; (gtk_accel_path "<Actions>/filters/filters-unsharp-mask" "") +; (gtk_accel_path "<Actions>/fonts/fonts-refresh" "") +; (gtk_accel_path "<Actions>/file/file-open-recent-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-hardness-decrease" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-show" "") +; (gtk_accel_path "<Actions>/view/view-softproof-intent-absolute-colorimetric" "") +; (gtk_accel_path "<Actions>/tools/tools-angle-decrease" "") +; (gtk_accel_path "<Actions>/layers/layers-merge-layers-last-values" "") +; (gtk_accel_path "<Actions>/context/context-background-blue-set" "") +; (gtk_accel_path "<Actions>/tools/tools-opacity-increase-percent" "") +; (gtk_accel_path "<Actions>/context/context-background-value-decrease-skip" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-spinning-globe" "") +; (gtk_accel_path "<Actions>/windows/windows-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-object-1-first" "") +; (gtk_accel_path "<Actions>/image/image-flip-horizontal" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-sharpen" "") +; (gtk_accel_path "<Actions>/tools/tools-force-decrease-percent" "") +; (gtk_accel_path "<Actions>/context/context-brush-hardness-set" "") +; (gtk_accel_path "<Actions>/select/select-stroke-last-values" "") +; (gtk_accel_path "<Actions>/filters/filters-long-shadow" "") +; (gtk_accel_path "<Actions>/context/context-brush-radius-increase-percent" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-animationoptimize-diff" "") +; (gtk_accel_path "<Actions>/tools/tools-perspective-clone" "") +; (gtk_accel_path "<Actions>/filters/filters-color-temperature" "") +; (gtk_accel_path "<Actions>/image/colors-auto-menu" "") +; (gtk_accel_path "<Actions>/vectors/vectors-selection-to-vectors-advanced" "") +; (gtk_accel_path "<Actions>/context/context-background-saturation-decrease" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-unsharp-mask" "") +(gtk_accel_path "<Actions>/tools/tools-rect-select" "m") +; (gtk_accel_path "<Actions>/tools/tools-angle-set-to-default" "") +; (gtk_accel_path "<Actions>/filters/filters-semi-flatten" "") +; (gtk_accel_path "<Actions>/tools/tools-opacity-maximum" "") +; (gtk_accel_path "<Actions>/dockable/dockable-tab-style-preview-name" "") +; (gtk_accel_path "<Actions>/view/view-zoom-in-skip" "") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-flow-decrease" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-dog" "") +; (gtk_accel_path "<Actions>/debug/debug-mem-profile" "") +; (gtk_accel_path "<Actions>/channels/channels-visible" "") +; (gtk_accel_path "<Actions>/edit/edit-paste-as-new-layer" "") +; (gtk_accel_path "<Actions>/context/context-foreground-hue-maximum" "") +; (gtk_accel_path "<Actions>/tool-options/tool-options-restore-preset-menu" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-undo-history" "") +; (gtk_accel_path "<Actions>/tools/tools-paintbrush-hardness-set" "") +; (gtk_accel_path "<Actions>/filters/filters-stretch-contrast" "") +; (gtk_accel_path "<Actions>/filters/filters-color-to-alpha" "") +; (gtk_accel_path "<Actions>/context/context-brush-aspect-maximum" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-templates" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-ripply-anim" "") +; (gtk_accel_path "<Actions>/view/view-show-menubar" "") +; (gtk_accel_path "<Actions>/filters/filters-web-menu" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-cursor" "") +; (gtk_accel_path "<Actions>/filters/filters-exposure" "") +; (gtk_accel_path "<Actions>/tools/tools-foreground-select-brush-size-set" "") +; (gtk_accel_path "<Actions>/tools/tools-spacing-increase" "") +; (gtk_accel_path "<Actions>/context/context-background-hue-decrease-skip" "") +; (gtk_accel_path "<Actions>/select/select-shrink" "") +; (gtk_accel_path "<Actions>/view/view-scroll-horizontal" "") +; (gtk_accel_path "<Actions>/select/select-fill-last-values" "") +; (gtk_accel_path "<Actions>/image/image-resize-to-selection" "") +; (gtk_accel_path "<Actions>/filters/filters-bloom" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-paste-as-pattern" "") +; (gtk_accel_path "<Actions>/tools/tools-paintbrush-aspect-ratio-set" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-tile-blur" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-gfig" "") +; (gtk_accel_path "<Actions>/context/context-foreground-hue-set" "") +; (gtk_accel_path "<Actions>/tools/tools-gradient" "g") +(gtk_accel_path "<Actions>/select/select-none" "<Primary>d") +; (gtk_accel_path "<Actions>/edit/edit-named-cut" "") +; (gtk_accel_path "<Actions>/context/context-palette-select-set" "") +; (gtk_accel_path "<Actions>/channels/channels-select-next" "") +; (gtk_accel_path "<Actions>/image/image-precision-menu" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-menu" "") +; (gtk_accel_path "<Actions>/layers/layers-alpha-selection-replace" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-palette-export-php" "") +; (gtk_accel_path "<Actions>/filters/filters-noise-hsv" "") +; (gtk_accel_path "<Actions>/filters/filters-noise-simplex" "") +; (gtk_accel_path "<Actions>/help/help-help" "F1") +; (gtk_accel_path "<Actions>/context/context-opacity-increase-skip" "") +; (gtk_accel_path "<Actions>/view/view-padding-color-light-check" "") +; (gtk_accel_path "<Actions>/context/context-brush-spikes-minimum" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-gflare" "") +; (gtk_accel_path "<Actions>/context/context-brush-aspect-set" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-zealouscrop" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-gradient-editor" "") +; (gtk_accel_path "<Actions>/tools/tools-color-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-flow-maximum" "") +; (gtk_accel_path "<Actions>/view/view-flip-horizontally" "") +; (gtk_accel_path "<Actions>/layers/layers-composite-mode-auto" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-online-developer-web-site" "") +; (gtk_accel_path "<Actions>/dockable/dockable-tab-style-name" "") +; (gtk_accel_path "<Actions>/vectors/vectors-raise-to-top" "") +; (gtk_accel_path "<Actions>/view/view-scroll-page-left" "") +; (gtk_accel_path "<Actions>/tools/tools-threshold" "") +; (gtk_accel_path "<Actions>/filters/filters-threshold" "") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-flow-set" "") +; (gtk_accel_path "<Actions>/context/context-brush-spacing-minimum" "") +; (gtk_accel_path "<Actions>/layers/layers-select-bottom" "End") +; (gtk_accel_path "<Actions>/dockable/dockable-tab-style-preview" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-channels" "") +; (gtk_accel_path "<Actions>/channels/channels-color-tag-none" "") +(gtk_accel_path "<Actions>/tools/tools-paintbrush" "b") +; (gtk_accel_path "<Actions>/vectors/vectors-color-tag-gray" "") +; (gtk_accel_path "<Actions>/context/context-brush-spacing-increase-skip" "") +; (gtk_accel_path "<Actions>/vectors/vectors-stroke-last-values" "") +; (gtk_accel_path "<Actions>/view/view-show-sample-points" "") +; (gtk_accel_path "<Actions>/filters/filters-antialias" "") +; (gtk_accel_path "<Actions>/dockable/dockable-preview-size-medium" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-colors" "") +; (gtk_accel_path "<Actions>/view/view-show-all" "") +; (gtk_accel_path "<Actions>/debug/debug-benchmark-projection" "") +; (gtk_accel_path "<Actions>/context/context-brush-spikes-decrease" "") +; (gtk_accel_path "<Actions>/filters/filters-noise-hurl" "") +; (gtk_accel_path "<Actions>/file/file-save-and-close" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-document-history" "") +; (gtk_accel_path "<Actions>/context/context-opacity-set" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-blend-anim" "") +; (gtk_accel_path "<Actions>/view/view-zoom-in" "plus") +; (gtk_accel_path "<Actions>/plug-in/plug-in-smooth-palette" "") +; (gtk_accel_path "<Actions>/context/context-swatch-background-set" "") +; (gtk_accel_path "<Actions>/windows/windows-tab-position" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-error-console" "") +; (gtk_accel_path "<Actions>/view/view-rotate-15" "") +; (gtk_accel_path "<Actions>/view/view-zoom" "") +; (gtk_accel_path "<Actions>/view/view-scroll-top-border" "") +; (gtk_accel_path "<Actions>/layers/layers-new" "<Primary><Shift>n") +; (gtk_accel_path "<Actions>/plug-in/gimp-palette-export-java" "") +; (gtk_accel_path "<Actions>/context/context-foreground-blue-increase-skip" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-burn-in-anim" "") +; (gtk_accel_path "<Actions>/tools/tools-paint-menu" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-colormap-swap" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-mypaint-brushes" "") +; (gtk_accel_path "<Actions>/dockable/dockable-preview-size-menu" "") +; (gtk_accel_path "<Actions>/image/colors-menu" "") +; (gtk_accel_path "<Actions>/vectors/vectors-lock-position" "") +; (gtk_accel_path "<Actions>/vectors/vectors-visible" "") +; (gtk_accel_path "<Actions>/image/image-flatten" "") +; (gtk_accel_path "<Actions>/tools/tools-spacing-decrease" "") +; (gtk_accel_path "<Actions>/filters/filters-dither" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-decompose-registered" "") +; (gtk_accel_path "<Actions>/channels/channels-selection-intersect" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-cartoon" "") +; (gtk_accel_path "<Actions>/view/view-softproof-intent-perceptual" "") +; (gtk_accel_path "<Actions>/tools/tools-offset" "") +; (gtk_accel_path "<Actions>/image/image-convert-float" "") +; (gtk_accel_path "<Actions>/edit/edit-clear" "Delete") +; (gtk_accel_path "<Actions>/view/view-scroll-down" "") +; (gtk_accel_path "<Actions>/context/context-foreground-green-increase" "") +; (gtk_accel_path "<Actions>/color-button/color-button-use-white" "") +; (gtk_accel_path "<Actions>/image/image-scale" "") +; (gtk_accel_path "<Actions>/tools/tools-aspect-increase-skip" "") +; (gtk_accel_path "<Actions>/context/context-colormap-background-previous" "") +; (gtk_accel_path "<Actions>/image/colors-info-menu" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-lic" "") +; (gtk_accel_path "<Actions>/context/context-background-value-increase" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-channels" "") +; (gtk_accel_path "<Actions>/filters/filters-component-extract" "") +; (gtk_accel_path "<Actions>/tools/tools-size-maximum" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-dashboard" "") +; (gtk_accel_path "<Actions>/vectors/vectors-select-previous" "") +; (gtk_accel_path "<Actions>/layers/layers-mode-menu" "") +; (gtk_accel_path "<Actions>/filters/filters-render-nature-menu" "") +; (gtk_accel_path "<Actions>/layers/layers-color-tag-none" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-gradients" "<Primary>g") +; (gtk_accel_path "<Actions>/tools/tools-heal" "h") +; (gtk_accel_path "<Actions>/view/view-scroll-right" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-cursor" "") +; (gtk_accel_path "<Actions>/context/context-foreground-saturation-minimum" "") +; (gtk_accel_path "<Actions>/context/context-background-red-maximum" "") +; (gtk_accel_path "<Actions>/context/context-brush-spikes-menu" "") +; (gtk_accel_path "<Actions>/filters/filters-recent-10" "") +; (gtk_accel_path "<Actions>/plug-in/file-gif-save2" "") +; (gtk_accel_path "<Actions>/drawable/drawable-flip-horizontal" "") +; (gtk_accel_path "<Actions>/layers/layers-merge-group" "") +; (gtk_accel_path "<Actions>/color-button/color-button-use-background" "") +; (gtk_accel_path "<Actions>/file/file-open" "<Primary>o") +; (gtk_accel_path "<Actions>/plug-in/script-fu-font-map" "") +; (gtk_accel_path "<Actions>/tools/tools-transform-preview-opacity-set" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-histogram" "") +; (gtk_accel_path "<Actions>/filters/filters-lens-blur" "") +; (gtk_accel_path "<Actions>/view/view-rotate-set-absolute" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-apply" "") +; (gtk_accel_path "<Actions>/context/context-brush-radius-increase-less" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-brush-editor" "") +; (gtk_accel_path "<Actions>/context/context-background-saturation-maximum" "") +; (gtk_accel_path "<Actions>/context/context-foreground-blue-increase" "") +; (gtk_accel_path "<Actions>/layers/layers-duplicate" "<Primary><Shift>d") +; (gtk_accel_path "<Actions>/context/context-palette-select-next" "") +; (gtk_accel_path "<Actions>/context/context-palette-foreground-next-skip" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-selection-add" "") +(gtk_accel_path "<Actions>/tools/tools-dodge-burn" "o") +; (gtk_accel_path "<Actions>/edit/edit-copy-visible" "<Primary><Shift>c") +; (gtk_accel_path "<Actions>/layers/layers-select-previous" "Page_Up") +; (gtk_accel_path "<Actions>/tools/tools-angle-maximum" "") +; (gtk_accel_path "<Actions>/dockable/dockable-lock-tab" "") +; (gtk_accel_path "<Actions>/context/context-foreground-value-minimum" "") +; (gtk_accel_path "<Actions>/file/file-close-all" "<Primary><Shift>w") +; (gtk_accel_path "<Actions>/dialogs/dialogs-sample-points" "") +; (gtk_accel_path "<Actions>/layers/layers-opacity-menu" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-metadata-editor" "") +; (gtk_accel_path "<Actions>/tools/tools-angle-increase-percent" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-drop-shadow" "") +; (gtk_accel_path "<Actions>/filters/filters-render-menu" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-jigsaw" "") +; (gtk_accel_path "<Actions>/dockable/dockable-tab-style-menu" "") +; (gtk_accel_path "<Actions>/context/context-brush-hardness-decrease-skip" "") +; (gtk_accel_path "<Actions>/plug-in/file-pdf-load" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-guides-from-selection" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-selection-to-brush" "") +; (gtk_accel_path "<Actions>/layers/layers-blend-space-rgb-linear" "") +; (gtk_accel_path "<Actions>/context/context-background-blue-maximum" "") +; (gtk_accel_path "<Actions>/tools/tools-zoom" "z") +; (gtk_accel_path "<Actions>/context/context-swatch-foreground-previous-skip" "") +; (gtk_accel_path "<Actions>/context/context-background-red-increase" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-checkerboard" "") +; (gtk_accel_path "<Actions>/dockable/dockable-popup" "") +; (gtk_accel_path "<Actions>/dockable/dockable-preview-size-extra-small" "") +; (gtk_accel_path "<Actions>/filters/filters-render-clouds-menu" "") +; (gtk_accel_path "<Actions>/context/context-palette-foreground-first" "") +; (gtk_accel_path "<Actions>/view/view-zoom-4-1" "3") +; (gtk_accel_path "<Actions>/channels/channels-duplicate" "") +; (gtk_accel_path "<Actions>/context/context-brush-aspect-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-object-2-set" "") +; (gtk_accel_path "<Actions>/context/context-brush-radius-increase" "") +; (gtk_accel_path "<Actions>/view/view-display-black-point-compensation" "") +; (gtk_accel_path "<Actions>/tools/tools-size-decrease" "bracketleft") +; (gtk_accel_path "<Actions>/dialogs/dialogs-colors" "") +; (gtk_accel_path "<Actions>/context/context-swatch-background-next" "") +; (gtk_accel_path "<Actions>/filters/filters-edge" "") +; (gtk_accel_path "<Actions>/image/image-rotate-180" "") +; (gtk_accel_path "<Actions>/image/image-new" "<Primary>n") +; (gtk_accel_path "<Actions>/tool-options/tool-options-delete-preset-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-ink-blob-size-set" "") +; (gtk_accel_path "<Actions>/filters/filters-value-propagate" "") +; (gtk_accel_path "<Actions>/image/image-color-profile-assign" "") +; (gtk_accel_path "<Actions>/layers/layers-scale" "") +; (gtk_accel_path "<Actions>/context/context-foreground-green-decrease" "") +; (gtk_accel_path "<Actions>/layers/layers-composite-space-rgb-perceptual" "") +; (gtk_accel_path "<Actions>/layers/layers-transparency-menu" "") +; (gtk_accel_path "<Actions>/layers/layers-alpha-remove" "") +; (gtk_accel_path "<Actions>/context/context-pattern-select-set" "") +; (gtk_accel_path "<Actions>/filters/filters-image-gradient" "") +; (gtk_accel_path "<Actions>/select/select-all" "<Primary>a") +; (gtk_accel_path "<Actions>/plug-in/plug-in-filter-pack" "") +; (gtk_accel_path "<Actions>/context/context-brush-hardness-maximum" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-recompose" "") +; (gtk_accel_path "<Actions>/view/view-zoom-menu" "") +; (gtk_accel_path "<Actions>/image/image-convert-u16" "") +; (gtk_accel_path "<Actions>/filters/filters-kaleidoscope" "") +; (gtk_accel_path "<Actions>/context/context-colormap-foreground-previous-skip" "") +; (gtk_accel_path "<Actions>/view/view-snap-to-grid" "") +; (gtk_accel_path "<Actions>/vectors/vectors-fill" "") +; (gtk_accel_path "<Actions>/view/view-color-management-reset" "") +; (gtk_accel_path "<Actions>/context/context-background-green-set" "") +; (gtk_accel_path "<Actions>/tools/tools-force-maximum" "") +; (gtk_accel_path "<Actions>/context/context-foreground-saturation-increase" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-device-status" "") +; (gtk_accel_path "<Actions>/edit/edit-named-copy" "") +; (gtk_accel_path "<Actions>/filters/filters-video-degradation" "") +; (gtk_accel_path "<Actions>/edit/edit-paste-as-new-layer-in-place" "") +; (gtk_accel_path "<Actions>/layers/layers-resize" "") +; (gtk_accel_path "<Actions>/layers/layers-blend-space-rgb-perceptual" "") +; (gtk_accel_path "<Actions>/layers/layers-stack-menu" "") +; (gtk_accel_path "<Actions>/dockable/dockable-show-button-bar" "") +; (gtk_accel_path "<Actions>/view/view-zoom-fill" "") +; (gtk_accel_path "<Actions>/filters/filters-stretch-contrast-hsv" "") +; (gtk_accel_path "<Actions>/view/view-padding-color-prefs" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-depth-merge" "") +; (gtk_accel_path "<Actions>/tools/tools-opacity-decrease-skip" "<Primary>less") +; (gtk_accel_path "<Actions>/plug-in/plug-in-guillotine" "") +; (gtk_accel_path "<Actions>/windows/windows-tabs-position-left" "") +; (gtk_accel_path "<Actions>/layers/layers-opacity-increase" "") +; (gtk_accel_path "<Actions>/view/view-padding-color-in-show-all" "") +; (gtk_accel_path "<Actions>/image/colors-tone-mapping-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-size-set" "") +; (gtk_accel_path "<Actions>/context/context-brush-angle-increase-skip" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-fonts" "") +; (gtk_accel_path "<Actions>/channels/channels-linked" "") +; (gtk_accel_path "<Actions>/dockable/dockable-preview-size-gigantic" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-difference-clouds" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-dbbrowser" "") +; (gtk_accel_path "<Actions>/context/context-background-hue-set" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-align-layers" "") +; (gtk_accel_path "<Actions>/context/context-background-blue-increase" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-palettes" "") +; (gtk_accel_path "<Actions>/filters/filters-hue-chroma" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-blinds" "") +; (gtk_accel_path "<Actions>/dockable/dockable-preview-size-enormous" "") +; (gtk_accel_path "<Actions>/filters/filters-edge-detect-menu" "") +; (gtk_accel_path "<Actions>/channels/channels-lock-content" "") +(gtk_accel_path "<Actions>/tools/tools-color-picker" "i") +; (gtk_accel_path "<Actions>/context/context-paint-mode-next" "") +(gtk_accel_path "<Actions>/tools/tools-clone" "s") +; (gtk_accel_path "<Actions>/plug-in/script-fu-make-brush-elliptical-feathered" "") +; (gtk_accel_path "<Actions>/context/context-background-value-minimum" "") +; (gtk_accel_path "<Actions>/drawable/drawable-linked" "") +; (gtk_accel_path "<Actions>/select/select-sharpen" "") +; (gtk_accel_path "<Actions>/context/context-colormap-foreground-next" "") +; (gtk_accel_path "<Actions>/view/view-zoom-4-1-accel" "KP_3") +; (gtk_accel_path "<Actions>/edit/edit-undo" "<Primary>z") +; (gtk_accel_path "<Actions>/plug-in/script-fu-paste-as-brush" "") +; (gtk_accel_path "<Actions>/filters/filters-noise-cie-lch" "") +; (gtk_accel_path "<Actions>/filters/filters-invert-perceptual" "") +; (gtk_accel_path "<Actions>/vectors/vectors-selection-replace" "") +; (gtk_accel_path "<Actions>/file/file-save-a-copy" "") +; (gtk_accel_path "<Actions>/vectors/vectors-delete" "") +; (gtk_accel_path "<Actions>/vectors/vectors-color-tag-blue" "") +; (gtk_accel_path "<Actions>/channels/channels-edit-attributes" "") +; (gtk_accel_path "<Actions>/tools/tools-transform-3d" "<Shift>w") +; (gtk_accel_path "<Actions>/file/file-show-in-file-manager" "<Primary><Alt>f") +; (gtk_accel_path "<Actions>/context/context-swatch-background-previous-skip" "") +; (gtk_accel_path "<Actions>/windows/windows-tabs-position-top" "") +; (gtk_accel_path "<Actions>/context/context-brush-radius-decrease" "") +; (gtk_accel_path "<Actions>/filters/filters-light-shadow-menu" "") +; (gtk_accel_path "<Actions>/vectors/vectors-export" "") +; (gtk_accel_path "<Actions>/layers/layers-mode-previous" "") +; (gtk_accel_path "<Actions>/tools/tools-hardness-increase" "") +; (gtk_accel_path "<Actions>/tools/tools-size-increase-percent" "") +; (gtk_accel_path "<Actions>/view/view-zoom-16-1-accel" "KP_5") +; (gtk_accel_path "<Actions>/filters/filters-deinterlace" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-compose" "") +; (gtk_accel_path "<Actions>/context/context-colors-swap" "x") +; (gtk_accel_path "<Actions>/context/context-foreground-value-decrease-skip" "") +; (gtk_accel_path "<Actions>/drawable/drawable-lock-position" "") +; (gtk_accel_path "<Actions>/context/context-palette-background-first" "") +; (gtk_accel_path "<Actions>/select/select-grow" "") +; (gtk_accel_path "<Actions>/filters/filters-invert-linear" "") +; (gtk_accel_path "<Actions>/filters/filters-recent-09" "") +; (gtk_accel_path "<Actions>/help/help-context-help" "<Shift>F1") +; (gtk_accel_path "<Actions>/dockable/dialogs-images" "") +; (gtk_accel_path "<Actions>/tools/tools-opacity-decrease-percent" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-gimpressionist" "") +; (gtk_accel_path "<Actions>/filters/filters-recent-08" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-selection-rounded-rectangle" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-grid-system" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-tool-options" "") +; (gtk_accel_path "<Actions>/context/context-colormap-background-previous-skip" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-vectors" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-navigation" "") +; (gtk_accel_path "<Actions>/context/context-colormap-foreground-first" "") +; (gtk_accel_path "<Actions>/tools/tools-unified-transform" "<Shift>t") +; (gtk_accel_path "<Actions>/view/view-zoom-in-accel" "KP_Add") +; (gtk_accel_path "<Actions>/dialogs/dialogs-palettes" "") +; (gtk_accel_path "<Actions>/file/file-quit" "<Primary>q") +; (gtk_accel_path "<Actions>/context/context-foreground-saturation-decrease" "") +; (gtk_accel_path "<Actions>/image/image-menubar" "") +; (gtk_accel_path "<Actions>/dockable/dockable-tab-style-icon" "") +; (gtk_accel_path "<Actions>/filters/filters-recent-07" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-circuit" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-make-brush-rectangular" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-erase-rows" "") +(gtk_accel_path "<Actions>/tools/tools-ellipse-select" "") +; (gtk_accel_path "<Actions>/filters/filters-noise-pick" "") +; (gtk_accel_path "<Actions>/tools/tools-curves" "") +; (gtk_accel_path "<Actions>/file/file-export-as" "<Primary><Shift>e") +; (gtk_accel_path "<Actions>/layers/layers-color-tag-red" "") +; (gtk_accel_path "<Actions>/view/view-scroll-center" "<Shift>j") +; (gtk_accel_path "<Actions>/image/image-popup" "") +; (gtk_accel_path "<Actions>/filters/filters-recent-06" "") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-flow-increase" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-toolbox" "<Primary>b") +; (gtk_accel_path "<Actions>/view/view-scroll-bottom-border" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-palettemap" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-softglow" "") +; (gtk_accel_path "<Actions>/context/context-pattern-select-previous" "") +; (gtk_accel_path "<Actions>/edit/edit-menu" "") +; (gtk_accel_path "<Actions>/filters/filters-recent-05" "") +; (gtk_accel_path "<Actions>/image/image-color-profile-convert" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-wavelet-decompose" "") +; (gtk_accel_path "<Actions>/context/context-palette-select-last" "") +; (gtk_accel_path "<Actions>/view/view-scroll-page-down" "") +; (gtk_accel_path "<Actions>/filters/filters-recent-04" "") +; (gtk_accel_path "<Actions>/image/image-convert-linear" "") +; (gtk_accel_path "<Actions>/context/context-foreground-value-increase" "") +; (gtk_accel_path "<Actions>/view/view-zoom-out-accel" "KP_Subtract") +; (gtk_accel_path "<Actions>/image/image-crop-to-selection" "") +; (gtk_accel_path "<Actions>/context/context-brush-radius-maximum" "") +; (gtk_accel_path "<Actions>/filters/filters-oilify" "") +; (gtk_accel_path "<Actions>/layers/layers-opacity-increase-skip" "") +; (gtk_accel_path "<Actions>/windows/windows-docks-menu" "") +; (gtk_accel_path "<Actions>/filters/filters-emboss" "") +; (gtk_accel_path "<Actions>/dockable/dockable-menu" "") +; (gtk_accel_path "<Actions>/filters/filters-recent-03" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-qbist" "") +; (gtk_accel_path "<Actions>/layers/layers-lower" "") +(gtk_accel_path "<Actions>/tools/tools-align" "") +; (gtk_accel_path "<Actions>/context/context-brush-aspect-increase-skip" "") +; (gtk_accel_path "<Actions>/tools/tools-handle-transform" "<Shift>l") +; (gtk_accel_path "<Actions>/layers/layers-new-group" "") +; (gtk_accel_path "<Actions>/filters/filters-waves" "") +; (gtk_accel_path "<Actions>/context/context-opacity-menu" "") +; (gtk_accel_path "<Actions>/filters/filters-recent-02" "") +; (gtk_accel_path "<Actions>/layers/layers-crop-to-content" "") +; (gtk_accel_path "<Actions>/filters/filters-whirl-pinch" "") +; (gtk_accel_path "<Actions>/filters/filters-render-pattern-menu" "") +(gtk_accel_path "<Actions>/tools/tools-measure" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-tool-presets" "") +; (gtk_accel_path "<Actions>/tools/tools-aspect-maximum" "") +; (gtk_accel_path "<Actions>/tools/tools-flip" "<Shift>f") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-rate-minimum" "") +; (gtk_accel_path "<Actions>/help/help-menu" "") +; (gtk_accel_path "<Actions>/filters/filters-recent-01" "") +; (gtk_accel_path "<Actions>/image/image-color-profile-save" "") +; (gtk_accel_path "<Actions>/filters/filters-median-blur" "") +; (gtk_accel_path "<Actions>/vectors/vectors-paste" "") +; (gtk_accel_path "<Actions>/context/context-foreground-blue-minimum" "") +; (gtk_accel_path "<Actions>/filters/filters-apply-canvas" "") +; (gtk_accel_path "<Actions>/plug-in/file-png-save2" "") +; (gtk_accel_path "<Actions>/drawable/drawable-levels-stretch" "") +; (gtk_accel_path "<Actions>/filters/filters-difference-of-gaussians" "") +; (gtk_accel_path "<Actions>/tools/tools-angle-increase-skip" "") +; (gtk_accel_path "<Actions>/context/context-swatch-background-last" "") +(gtk_accel_path "<Actions>/tools/tools-move" "v") +; (gtk_accel_path "<Actions>/tools/tools-convolve" "<Shift>u") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-flow-increase-skip" "") +; (gtk_accel_path "<Actions>/context/context-foreground-saturation-increase-skip" "") +; (gtk_accel_path "<Actions>/channels/channels-color-tag-green" "") +; (gtk_accel_path "<Actions>/tools/tools-aspect-decrease-percent" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-help-using-photography" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-dashboard" "") +; (gtk_accel_path "<Actions>/layers/layers-crop-to-selection" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-selection-subtract" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-guides-remove" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-palette-editor" "") +; (gtk_accel_path "<Actions>/filters/filters-channel-mixer" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-waves-anim" "") +; (gtk_accel_path "<Actions>/context/context-foreground-green-maximum" "") +; (gtk_accel_path "<Actions>/view/view-menu" "") +; (gtk_accel_path "<Actions>/view/view-dot-for-dot" "") +; (gtk_accel_path "<Actions>/context/context-gradient-select-set" "") +; (gtk_accel_path "<Actions>/dockable/dockable-close-tab" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-dynamics-editor" "") +; (gtk_accel_path "<Actions>/vectors/vectors-selection-intersect" "") +; (gtk_accel_path "<Actions>/vectors/vectors-stroke" "") +; (gtk_accel_path "<Actions>/filters/filters-little-planet" "") +; (gtk_accel_path "<Actions>/context/context-pattern-menu" "") +; (gtk_accel_path "<Actions>/view/view-show-rulers" "<Primary><Shift>r") +; (gtk_accel_path "<Actions>/context/context-brush-spikes-increase" "") +; (gtk_accel_path "<Actions>/view/view-snap-to-guides" "") +; (gtk_accel_path "<Actions>/layers/layers-alpha-selection-subtract" "") +; (gtk_accel_path "<Actions>/channels/channels-select-top" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-sota-chrome-it" "") +; (gtk_accel_path "<Actions>/view/view-move-to-screen-:0.0" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-palette-export-python" "") +; (gtk_accel_path "<Actions>/context/context-swatch-foreground-next" "0") +; (gtk_accel_path "<Actions>/select/selection-popup" "") +; (gtk_accel_path "<Actions>/edit/edit-paste-into" "") +; (gtk_accel_path "<Actions>/tools/tools-opacity-decrease" "less") +; (gtk_accel_path "<Actions>/filters/filters-bayer-matrix" "") +; (gtk_accel_path "<Actions>/context/context-brush-angle-minimum" "") +; (gtk_accel_path "<Actions>/tools/tools-aspect-increase" "") +; (gtk_accel_path "<Actions>/vectors/vectors-selection-to-vectors-short" "") +; (gtk_accel_path "<Actions>/context/context-brush-spikes-maximum" "") +; (gtk_accel_path "<Actions>/tools/tools-aspect-set" "") +; (gtk_accel_path "<Actions>/fonts/fonts-popup" "") +; (gtk_accel_path "<Actions>/layers/layers-popup" "") +; (gtk_accel_path "<Actions>/context/context-foreground-green-increase-skip" "") +; (gtk_accel_path "<Actions>/filters/filters-generic-menu" "") +; (gtk_accel_path "<Actions>/image/image-resize-to-layers" "") +; (gtk_accel_path "<Actions>/windows/windows-use-single-window-mode" "") +; (gtk_accel_path "<Actions>/channels/channels-lower-to-bottom" "") +; (gtk_accel_path "<Actions>/context/context-colormap-background-first" "") +; (gtk_accel_path "<Actions>/edit/edit-fill-pattern" "<Primary>semicolon") +; (gtk_accel_path "<Actions>/context/context-paint-mode-first" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-reverse-layers" "") +; (gtk_accel_path "<Actions>/dockable/dockable-preview-size-extra-large" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-indexed-palette" "") +; (gtk_accel_path "<Actions>/context/context-brush-spikes-set" "") +; (gtk_accel_path "<Actions>/vectors/vectors-new-last-values" "") +; (gtk_accel_path "<Actions>/tools/tools-object-2-previous" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-retinex" "") +; (gtk_accel_path "<Actions>/context/context-swatch-foreground-previous" "9") +; (gtk_accel_path "<Actions>/context/context-foreground-value-decrease" "") +; (gtk_accel_path "<Actions>/context/context-brush-select-first" "") +; (gtk_accel_path "<Actions>/context/context-swatch-foreground-next-skip" "") +; (gtk_accel_path "<Actions>/tools/tools-force-increase-skip" "") +; (gtk_accel_path "<Actions>/dockable/dockable-detach-tab" "") +; (gtk_accel_path "<Actions>/image/image-print-size" "") +; (gtk_accel_path "<Actions>/filters/filters-fractal-trace" "") +; (gtk_accel_path "<Actions>/filters/filters-panorama-projection" "") +; (gtk_accel_path "<Actions>/context/context-paint-mode-last" "") +; (gtk_accel_path "<Actions>/image/colors-components-menu" "") +; (gtk_accel_path "<Actions>/context/context-colormap-foreground-last" "") +; (gtk_accel_path "<Actions>/view/view-zoom-out" "minus") +; (gtk_accel_path "<Actions>/plug-in/plug-in-colormap-remap" "") +; (gtk_accel_path "<Actions>/context/context-palette-background-next-skip" "") +; (gtk_accel_path "<Actions>/tools/tools-force-decrease" "") +; (gtk_accel_path "<Actions>/context/context-background-hue-maximum" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-mail-image" "") +; (gtk_accel_path "<Actions>/filters/filters-mantiuk-2006" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-small-tiles" "") +; (gtk_accel_path "<Actions>/layers/layers-composite-mode-clip-to-layer" "") +; (gtk_accel_path "<Actions>/filters/filters-noise-menu" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-disable" "") +; (gtk_accel_path "<Actions>/tools/tools-brightness-contrast" "") +; (gtk_accel_path "<Actions>/filters/filters-erode" "") +; (gtk_accel_path "<Actions>/context/context-brush-spikes-increase-skip" "") +; (gtk_accel_path "<Actions>/context/context-palette-select-previous" "") +; (gtk_accel_path "<Actions>/vectors/vectors-color-tag-none" "") +; (gtk_accel_path "<Actions>/context/context-pattern-select-first" "") +; (gtk_accel_path "<Actions>/layers/layers-transform-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-spacing-increase-percent" "") +; (gtk_accel_path "<Actions>/select/select-border" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-clothify" "") +; (gtk_accel_path "<Actions>/edit/edit-paste-into-in-place" "") +(gtk_accel_path "<Actions>/layers/layers-new-last-values" "<Primary>j") +; (gtk_accel_path "<Actions>/context/context-opacity-transparent" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-animationoptimize" "") +; (gtk_accel_path "<Actions>/context/context-colormap-background-next" "") +; (gtk_accel_path "<Actions>/layers/layers-blend-space-auto" "") +; (gtk_accel_path "<Actions>/plug-in/file-pdf-save-multi" "") +; (gtk_accel_path "<Actions>/layers/layers-merge-layers" "") +; (gtk_accel_path "<Actions>/layers/layers-composite-space-auto" "") +; (gtk_accel_path "<Actions>/context/context-opacity-decrease-skip" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-buffers" "") +; (gtk_accel_path "<Actions>/tools/tools-perspective" "<Shift>p") +; (gtk_accel_path "<Actions>/context/context-foreground-red-increase-skip" "") +; (gtk_accel_path "<Actions>/context/context-colormap-foreground-set" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-copy-visible" "") +; (gtk_accel_path "<Actions>/filters/filters-high-pass" "") +; (gtk_accel_path "<Actions>/layers/layers-composite-mode-clip-to-backdrop" "") +; (gtk_accel_path "<Actions>/tools/tools-menu" "") +; (gtk_accel_path "<Actions>/context/context-background-green-maximum" "") +; (gtk_accel_path "<Actions>/filters/filters-brightness-contrast" "") +; (gtk_accel_path "<Actions>/filters/filters-shadows-highlights" "") +; (gtk_accel_path "<Actions>/channels/channels-color-tag-brown" "") +; (gtk_accel_path "<Actions>/filters/filters-desaturate" "") +; (gtk_accel_path "<Actions>/context/context-palette-foreground-previous" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-nlfilt" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-palette-export-text" "") +; (gtk_accel_path "<Actions>/context/context-palette-foreground-set" "") +; (gtk_accel_path "<Actions>/tools/tools-paintbrush-spacing-set" "") +; (gtk_accel_path "<Actions>/filters/filters-offset" "<Primary><Shift>o") +; (gtk_accel_path "<Actions>/filters/filters-softglow" "") +; (gtk_accel_path "<Actions>/context/context-brush-shape-square" "") +; (gtk_accel_path "<Actions>/vectors/vectors-select-top" "") +; (gtk_accel_path "<Actions>/tools/tools-opacity-minimum" "") +; (gtk_accel_path "<Actions>/channels/channels-raise-to-top" "") +; (gtk_accel_path "<Actions>/filters/filters-reinhard-2005" "") +; (gtk_accel_path "<Actions>/filters/filters-threshold-alpha" "") +; (gtk_accel_path "<Actions>/view/view-zoom-2-1-accel" "KP_2") +; (gtk_accel_path "<Actions>/context/context-foreground-hue-minimum" "") +; (gtk_accel_path "<Actions>/tools/tools-aspect-decrease" "") +; (gtk_accel_path "<Actions>/context/context-brush-spacing-decrease-skip" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-fractal-trace" "") +; (gtk_accel_path "<Actions>/tools/tools-mypaint-brush-radius-set" "") +; (gtk_accel_path "<Actions>/context/context-tool-select-first" "") +; (gtk_accel_path "<Actions>/vectors/vectors-lower" "") +; (gtk_accel_path "<Actions>/context/context-brush-aspect-minimum" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-delete" "") +; (gtk_accel_path "<Actions>/tools/tools-angle-decrease-percent" "") +; (gtk_accel_path "<Actions>/context/context-background-green-increase-skip" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-ccanalyze" "") +; (gtk_accel_path "<Actions>/filters/filters-artistic-menu" "") +; (gtk_accel_path "<Actions>/select/select-flood" "") +; (gtk_accel_path "<Actions>/tools/tools-hardness-set-to-default" "") +; (gtk_accel_path "<Actions>/tools/tools-bucket-fill" "<Shift>b") +; (gtk_accel_path "<Actions>/tools/tools-angle-set" "") +; (gtk_accel_path "<Actions>/tools/tools-ink-blob-aspect-set" "") +; (gtk_accel_path "<Actions>/tools/tools-size-increase" "bracketright") +; (gtk_accel_path "<Actions>/tools/tools-force-increase-percent" "") +; (gtk_accel_path "<Actions>/image/image-color-management-menu" "") +; (gtk_accel_path "<Actions>/channels/channels-selection-replace" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-layers" "<Primary>l") +; (gtk_accel_path "<Actions>/view/view-zoom-fit-in" "<Primary><Shift>j") +; (gtk_accel_path "<Actions>/filters/filters-repeat" "<Primary>f") +; (gtk_accel_path "<Actions>/filters/filters-maze" "") +; (gtk_accel_path "<Actions>/context/context-brush-shape-menu" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-palette-editor" "") +; (gtk_accel_path "<Actions>/context/context-foreground-blue-decrease-skip" "") +; (gtk_accel_path "<Actions>/drawable/drawable-flip-vertical" "") +; (gtk_accel_path "<Actions>/filters/filters-color-balance" "") +; (gtk_accel_path "<Actions>/tools/tools-size-set-to-default" "backslash") +; (gtk_accel_path "<Actions>/context/context-colors-default" "d") +; (gtk_accel_path "<Actions>/layers/layers-raise-to-top" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-gradmap" "") +; (gtk_accel_path "<Actions>/filters/filters-checkerboard" "") +; (gtk_accel_path "<Actions>/image/image-convert-grayscale" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-fuzzy-border" "") +; (gtk_accel_path "<Actions>/filters/filters-tile-paper" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-selection-editor" "") +; (gtk_accel_path "<Actions>/layers/layers-edit" "") +; (gtk_accel_path "<Actions>/image/colors-desaturate-menu" "") +; (gtk_accel_path "<Actions>/layers/layers-flatten-image" "") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-rate-increase-skip" "") +; (gtk_accel_path "<Actions>/channels/channels-select-bottom" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-preferences" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-animationplay" "") +; (gtk_accel_path "<Actions>/context/context-brush-angle-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-flow-minimum" "") +; (gtk_accel_path "<Actions>/view/view-rotate-menu" "") +; (gtk_accel_path "<Actions>/vectors/vectors-import" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-xach-effect" "") +; (gtk_accel_path "<Actions>/view/view-rotate-345" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-decompose" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-palette-export-css" "") +; (gtk_accel_path "<Actions>/filters/filters-color-exchange" "") +; (gtk_accel_path "<Actions>/tools/tools-warp-effect-size-set" "") +; (gtk_accel_path "<Actions>/view/view-display-intent-perceptual" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-navigation" "") +; (gtk_accel_path "<Actions>/dock/dock-open-display" "") +; (gtk_accel_path "<Actions>/context/context-paint-mode-previous" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-hot" "") +; (gtk_accel_path "<Actions>/tools/tools-aspect-decrease-skip" "") +; (gtk_accel_path "<Actions>/view/view-zoom-out-skip" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-keyboard-shortcuts" "") +; (gtk_accel_path "<Actions>/view/view-zoom-maximum" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-input-devices" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-document-history" "") +; (gtk_accel_path "<Actions>/quick-mask/quick-mask-invert-on" "") +; (gtk_accel_path "<Actions>/context/context-swatch-foreground-first" "") +; (gtk_accel_path "<Actions>/file/file-export" "<Primary>e") +; (gtk_accel_path "<Actions>/plug-in/script-fu-set-cmap" "") +; (gtk_accel_path "<Actions>/layers/layers-text-discard" "") +; (gtk_accel_path "<Actions>/context/context-foreground-red-maximum" "") +; (gtk_accel_path "<Actions>/filters/filters-edge-sobel" "") +; (gtk_accel_path "<Actions>/dockable/dockable-preview-size-tiny" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-guide-new-percent" "") +; (gtk_accel_path "<Actions>/view/view-show-scrollbars" "") +; (gtk_accel_path "<Actions>/filters/filters-render-noise-menu" "") +; (gtk_accel_path "<Actions>/channels/channels-delete" "") +; (gtk_accel_path "<Actions>/image/image-flip-vertical" "") +; (gtk_accel_path "<Actions>/layers/layers-opacity-set" "") +; (gtk_accel_path "<Actions>/context/context-font-select-next" "") +; (gtk_accel_path "<Actions>/context/context-menu" "") +; (gtk_accel_path "<Actions>/image/image-convert-half" "") +; (gtk_accel_path "<Actions>/tools/tools-size-increase-skip" "<Shift>bracketright") +; (gtk_accel_path "<Actions>/file/file-overwrite" "") +; (gtk_accel_path "<Actions>/context/context-background-red-increase-skip" "") +; (gtk_accel_path "<Actions>/vectors/vectors-popup" "") +; (gtk_accel_path "<Actions>/image/image-rotate-90" "") +; (gtk_accel_path "<Actions>/edit/edit-fill-bg" "<Primary>period") +; (gtk_accel_path "<Actions>/layers/layers-mode-next" "") +; (gtk_accel_path "<Actions>/context/context-palette-menu" "") +; (gtk_accel_path "<Actions>/layers/layers-properties-menu" "") +; (gtk_accel_path "<Actions>/view/view-flip-vertically" "") +; (gtk_accel_path "<Actions>/context/context-foreground-hue-increase" "") +; (gtk_accel_path "<Actions>/select/select-invert" "<Primary>i") +(gtk_accel_path "<Actions>/tools/tools-iscissors" "") +; (gtk_accel_path "<Actions>/file/file-save-as" "<Primary><Shift>s") +; (gtk_accel_path "<Actions>/context/context-swatch-foreground-last" "") +; (gtk_accel_path "<Actions>/context/context-palette-background-next" "") +; (gtk_accel_path "<Actions>/image/image-rotate-270" "") +; (gtk_accel_path "<Actions>/tools/tools-warp" "w") +; (gtk_accel_path "<Actions>/context/context-brush-hardness-menu" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-erase-nth-rows" "") +; (gtk_accel_path "<Actions>/context/context-brush-radius-decrease-less" "") +; (gtk_accel_path "<Actions>/quick-mask/quick-mask-popup" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-sparkle" "") +; (gtk_accel_path "<Actions>/vectors/vectors-selection-subtract" "") +; (gtk_accel_path "<Actions>/filters/filters-combine-menu" "") +; (gtk_accel_path "<Actions>/layers/layers-raise" "") +; (gtk_accel_path "<Actions>/edit/edit-strong-undo" "<Primary><Shift>z") +; (gtk_accel_path "<Actions>/context/context-colormap-foreground-next-skip" "") +; (gtk_accel_path "<Actions>/context/context-brush-aspect-increase" "") +; (gtk_accel_path "<Actions>/filters/filters-invert-value" "") +; (gtk_accel_path "<Actions>/context/context-foreground-blue-set" "") +; (gtk_accel_path "<Actions>/filters/filters-bump-map" "") +; (gtk_accel_path "<Actions>/plug-in/file-gih-save-internal" "") +; (gtk_accel_path "<Actions>/context/context-background-blue-increase-skip" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-old-photo" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-module-dialog" "") +; (gtk_accel_path "<Actions>/image/image-configure-grid" "") +; (gtk_accel_path "<Actions>/context/context-tool-menu" "") +; (gtk_accel_path "<Actions>/view/view-zoom-1-1-accel" "KP_1") +; (gtk_accel_path "<Actions>/filters/filters-noise-spread" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-round-corners" "") +; (gtk_accel_path "<Actions>/tools/tools-hardness-increase-skip" "") +; (gtk_accel_path "<Actions>/select/select-save" "") +; (gtk_accel_path "<Actions>/context/context-background-saturation-set" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-guide-new" "") +; (gtk_accel_path "<Actions>/tools/tools-hardness-decrease-percent" "") +; (gtk_accel_path "<Actions>/tools/tools-size-minimum" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-help-concepts-paths" "") +; (gtk_accel_path "<Actions>/vectors/vectors-select-next" "") +; (gtk_accel_path "<Actions>/filters/filters-noise-cell" "") +; (gtk_accel_path "<Actions>/quick-mask/quick-mask-toggle" "<Shift>q") +; (gtk_accel_path "<Actions>/filters/filters-gaussian-blur" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-screenshot" "") +; (gtk_accel_path "<Actions>/view/view-rotate-180" "") +; (gtk_accel_path "<Actions>/tools/tools-text" "t") +; (gtk_accel_path "<Actions>/filters/filters-newsprint" "") +; (gtk_accel_path "<Actions>/filters/filters-noise-solid" "") +; (gtk_accel_path "<Actions>/file/file-open-as-layers" "<Primary><Alt>o") +; (gtk_accel_path "<Actions>/context/context-background-red-minimum" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-online-wiki" "") +; (gtk_accel_path "<Actions>/layers/layers-merge-down-button" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-refresh" "") +; (gtk_accel_path "<Actions>/layers/layers-text-to-vectors" "") +; (gtk_accel_path "<Actions>/vectors/vectors-fill-last-values" "") +; (gtk_accel_path "<Actions>/view/view-padding-color-menu" "") +(gtk_accel_path "<Actions>/tools/tools-smudge" "") +; (gtk_accel_path "<Actions>/context/context-font-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-mypaint-brush-hardness-set" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-pagecurl" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-layers" "<Primary>l") +; (gtk_accel_path "<Actions>/context/context-colormap-background-last" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-selection-to-image" "") +; (gtk_accel_path "<Actions>/channels/channels-selection-add" "") +; (gtk_accel_path "<Actions>/context/context-palette-select-first" "") +; (gtk_accel_path "<Actions>/layers/layers-lock-position" "") +; (gtk_accel_path "<Actions>/tools/tools-object-1-next" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-device-status" "") +; (gtk_accel_path "<Actions>/view/view-scroll-vertical" "") +(gtk_accel_path "<Actions>/view/view-show-selection" "") +; (gtk_accel_path "<Actions>/tools/tools-spacing-maximum" "") +; (gtk_accel_path "<Actions>/color-button/color-button-use-foreground" "") +; (gtk_accel_path "<Actions>/filters/filters-photocopy" "") +; (gtk_accel_path "<Actions>/channels/channels-color-tag-orange" "") +; (gtk_accel_path "<Actions>/tools/tools-ink-blob-angle-set" "") +; (gtk_accel_path "<Actions>/context/context-background-saturation-minimum" "") +; (gtk_accel_path "<Actions>/layers/layers-lock-alpha" "") +; (gtk_accel_path "<Actions>/tools/tools-transform-menu" "") +; (gtk_accel_path "<Actions>/view/view-padding-color-theme" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-borderaverage" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-gradient-example" "") +; (gtk_accel_path "<Actions>/filters/filters-color-rotate" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-dynamics" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-online-roadmap" "") +; (gtk_accel_path "<Actions>/filters/filters-vignette" "") +; (gtk_accel_path "<Actions>/filters/filters-apply-lens" "") +; (gtk_accel_path "<Actions>/tools/tools-angle-minimum" "") +; (gtk_accel_path "<Actions>/tools/tools-ink" "k") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-rate-set" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-add-button" "") +; (gtk_accel_path "<Actions>/layers/layers-color-tag-orange" "") +; (gtk_accel_path "<Actions>/view/view-display-filters" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-coffee-stain" "") +; (gtk_accel_path "<Actions>/context/context-swatch-background-first" "") +; (gtk_accel_path "<Actions>/layers/layers-composite-mode-intersection" "") +; (gtk_accel_path "<Actions>/filters/filters-noise-rgb" "") +; (gtk_accel_path "<Actions>/context/context-foreground-hue-decrease" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-tile" "") +; (gtk_accel_path "<Actions>/filters/filters-edge-neon" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-about" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-despeckle" "") +; (gtk_accel_path "<Actions>/tools/tools-spacing-set" "") +; (gtk_accel_path "<Actions>/tools/tools-object-2-first" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-templates" "") +; (gtk_accel_path "<Actions>/context/context-background-blue-minimum" "") +; (gtk_accel_path "<Actions>/filters/filters-tile-seamless" "") +; (gtk_accel_path "<Actions>/filters/filters-red-eye-removal" "") +(gtk_accel_path "<Actions>/quick-mask/quick-mask-invert-off" "q") +; (gtk_accel_path "<Actions>/layers/layers-resize-to-image" "") +; (gtk_accel_path "<Actions>/filters/filters-lens-flare" "") +; (gtk_accel_path "<Actions>/filters/filters-render-fractals-menu" "") +; (gtk_accel_path "<Actions>/context/context-brush-angle-decrease-skip" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-help-using-web" "") +; (gtk_accel_path "<Actions>/view/view-color-management-softproof" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-vectors" "") +; (gtk_accel_path "<Actions>/edit/edit-buffer-menu" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-make-brush-elliptical" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-grid" "") +; (gtk_accel_path "<Actions>/plug-in/file-pdf-save" "") +; (gtk_accel_path "<Actions>/filters/filters-color-enhance" "") +; (gtk_accel_path "<Actions>/plug-in/file-png-save" "") +; (gtk_accel_path "<Actions>/view/view-padding-color-custom" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-weave" "") +; (gtk_accel_path "<Actions>/filters/filters-blur-menu" "") +; (gtk_accel_path "<Actions>/context/context-brush-aspect-decrease" "") +; (gtk_accel_path "<Actions>/tools/tools-paintbrush-angle-set" "") +; (gtk_accel_path "<Actions>/context/context-pattern-select-next" "") +; (gtk_accel_path "<Actions>/channels/channels-lower" "") +; (gtk_accel_path "<Actions>/view/view-rotate-other" "") +; (gtk_accel_path "<Actions>/context/context-brush-hardness-minimum" "") +; (gtk_accel_path "<Actions>/filters/filters-mosaic" "") +; (gtk_accel_path "<Actions>/debug/debug-menu" "") +; (gtk_accel_path "<Actions>/context/context-brush-radius-increase-skip" "") +; (gtk_accel_path "<Actions>/view/view-softproof-black-point-compensation" "") +; (gtk_accel_path "<Actions>/select/select-menu" "") +; (gtk_accel_path "<Actions>/color-button/color-button-use-black" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-sample-colorize" "") +; (gtk_accel_path "<Actions>/file/file-open-recent-10" "<Primary>0") +; (gtk_accel_path "<Actions>/tools/tools-by-color-select" "<Shift>o") +; (gtk_accel_path "<Actions>/context/context-palette-background-previous" "") +; (gtk_accel_path "<Actions>/tools/tools-force-minimum" "") +; (gtk_accel_path "<Actions>/channels/channels-color-tag-violet" "") +; (gtk_accel_path "<Actions>/context/context-swatch-background-next-skip" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-brush-editor" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-help-using-simpleobjects" "") +; (gtk_accel_path "<Actions>/filters/filters-recursive-transform" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-add-bevel" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-dynamics" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-curve-bend" "") +; (gtk_accel_path "<Actions>/context/context-background-saturation-increase-skip" "") +; (gtk_accel_path "<Actions>/view/view-scroll-page-up" "") +; (gtk_accel_path "<Actions>/filters/filters-convolution-matrix" "") +; (gtk_accel_path "<Actions>/tools/tools-pencil" "n") +; (gtk_accel_path "<Actions>/filters/filters-levels" "") +; (gtk_accel_path "<Actions>/layers/layers-color-tag-violet" "") +; (gtk_accel_path "<Actions>/tools/tools-opacity-increase" "greater") +; (gtk_accel_path "<Actions>/context/context-brush-radius-decrease-percent" "") +; (gtk_accel_path "<Actions>/context/context-foreground-red-set" "") +; (gtk_accel_path "<Actions>/select/select-fill" "") +; (gtk_accel_path "<Actions>/filters/filters-colorize" "") +; (gtk_accel_path "<Actions>/view/view-padding-color-dark-check" "") +; (gtk_accel_path "<Actions>/tools/tools-hardness-maximum" "") +; (gtk_accel_path "<Actions>/tool-options/tool-options-save-new-preset" "") +; (gtk_accel_path "<Actions>/tools/tools-spacing-increase-skip" "") +; (gtk_accel_path "<Actions>/context/context-gradient-select-previous" "") +; (gtk_accel_path "<Actions>/layers/layers-new-from-visible" "") +; (gtk_accel_path "<Actions>/filters/filters-saturation" "") +(gtk_accel_path "<Actions>/tools/tools-crop" "c") +; (gtk_accel_path "<Actions>/plug-in/plug-in-flame" "") +; (gtk_accel_path "<Actions>/context/context-font-select-last" "") +; (gtk_accel_path "<Actions>/vectors/vectors-new" "") +; (gtk_accel_path "<Actions>/tool-options/tool-options-popup" "") +; (gtk_accel_path "<Actions>/filters/filters-posterize" "") +; (gtk_accel_path "<Actions>/dockable/dockable-view-type-list" "") +; (gtk_accel_path "<Actions>/filters/filters-slic" "") +; (gtk_accel_path "<Actions>/view/view-rotate-reset" "exclam") +; (gtk_accel_path "<Actions>/filters/filters-shift" "") +; (gtk_accel_path "<Actions>/drawable/drawable-rotate-90" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-lighting" "") +(gtk_accel_path "<Actions>/tools/tools-mypaint-brush" "") +; (gtk_accel_path "<Actions>/channels/channels-color-tag-menu" "") +; (gtk_accel_path "<Actions>/layers/layers-merge-down" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-tips" "") +; (gtk_accel_path "<Actions>/layers/layers-mode-last" "") +; (gtk_accel_path "<Actions>/tools/tools-warp-effect-hardness-set" "") +; (gtk_accel_path "<Actions>/layers/layers-alpha-add" "") +; (gtk_accel_path "<Actions>/filters/filters-map-menu" "") +; (gtk_accel_path "<Actions>/context/context-palette-foreground-previous-skip" "") +; (gtk_accel_path "<Actions>/context/context-tool-select-set" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-color-enhance" "") +; (gtk_accel_path "<Actions>/filters/filters-dilate" "") +; (gtk_accel_path "<Actions>/context/context-palette-background-last" "") +; (gtk_accel_path "<Actions>/image/image-mode-menu" "") +; (gtk_accel_path "<Actions>/vectors/vectors-raise" "") +; (gtk_accel_path "<Actions>/vectors/vectors-selection-to-vectors" "") +; (gtk_accel_path "<Actions>/edit/edit-named-copy-visible" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-brushes" "<Primary><Shift>b") +; (gtk_accel_path "<Actions>/dockable/dockable-preview-size-small" "") +; (gtk_accel_path "<Actions>/drawable/drawable-rotate-180" "") +; (gtk_accel_path "<Actions>/layers/layers-composite-mode-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-rate-decrease" "") +; (gtk_accel_path "<Actions>/image/image-convert-gamma" "") +; (gtk_accel_path "<Actions>/context/context-foreground-hue-increase-skip" "") +; (gtk_accel_path "<Actions>/filters/filters-decor-menu" "") +; (gtk_accel_path "<Actions>/channels/channels-color-tag-yellow" "") +; (gtk_accel_path "<Actions>/layers/layers-alpha-selection-intersect" "") +; (gtk_accel_path "<Actions>/image/image-guides-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-force-increase" "") +; (gtk_accel_path "<Actions>/channels/channels-popup" "") +; (gtk_accel_path "<Actions>/context/context-brush-select-next" "") +; (gtk_accel_path "<Actions>/filters/filters-waterpixels" "") +; (gtk_accel_path "<Actions>/context/context-brush-spacing-increase" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-action-search" "slash") +; (gtk_accel_path "<Actions>/layers/layers-select-next" "Page_Down") +(gtk_accel_path "<Actions>/tools/tools-rotate-arbitrary" "r") +; (gtk_accel_path "<Actions>/layers/layers-opacity-decrease-skip" "") +; (gtk_accel_path "<Actions>/view/view-zoom-16-1" "5") +; (gtk_accel_path "<Actions>/plug-in/gimp-help-concepts-usage" "") +; (gtk_accel_path "<Actions>/debug/debug-dump-keyboard-shortcuts" "") +; (gtk_accel_path "<Actions>/image/image-color-profile-discard" "") +; (gtk_accel_path "<Actions>/filters/filters-mean-curvature-blur" "") +; (gtk_accel_path "<Actions>/layers/layers-color-tag-yellow" "") +; (gtk_accel_path "<Actions>/context/context-brush-aspect-decrease-skip" "") +; (gtk_accel_path "<Actions>/dock/dock-move-to-screen-:0.0" "") +; (gtk_accel_path "<Actions>/filters/filters-animation-menu" "") +; (gtk_accel_path "<Actions>/filters/filters-noise-reduction" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-gradients" "<Primary>g") +; (gtk_accel_path "<Actions>/tools/tools-object-1-previous" "") +(gtk_accel_path "<Actions>/image/image-duplicate" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-patterns" "<Primary><Shift>p") +; (gtk_accel_path "<Actions>/view/view-scroll-right-border" "") +; (gtk_accel_path "<Actions>/edit/edit-paste" "<Primary>v") +; (gtk_accel_path "<Actions>/context/context-palette-foreground-next" "") +; (gtk_accel_path "<Actions>/channels/channels-color-tag-red" "") +; (gtk_accel_path "<Actions>/filters/filters-mono-mixer" "") +; (gtk_accel_path "<Actions>/context/context-font-select-set" "") +; (gtk_accel_path "<Actions>/filters/filters-spiral" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-unit-editor" "") +; (gtk_accel_path "<Actions>/tools/tools-angle-decrease-skip" "") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-flow-decrease-skip" "") +; (gtk_accel_path "<Actions>/vectors/vectors-select-bottom" "") +; (gtk_accel_path "<Actions>/context/context-foreground-value-set" "") +; (gtk_accel_path "<Actions>/debug/debug-dump-items" "") +; (gtk_accel_path "<Actions>/view/view-scroll-up" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-help-using-selections" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-cml-explorer" "") +; (gtk_accel_path "<Actions>/select/select-stroke" "") +; (gtk_accel_path "<Actions>/context/context-foreground-saturation-decrease-skip" "") +; (gtk_accel_path "<Actions>/tool-options/tool-options-reset-all" "") +; (gtk_accel_path "<Actions>/drawable/drawable-visible" "") +; (gtk_accel_path "<Actions>/image/image-metadata-menu" "") +; (gtk_accel_path "<Actions>/channels/channels-select-previous" "") +; (gtk_accel_path "<Actions>/context/context-brush-angle-increase" "") +; (gtk_accel_path "<Actions>/filters/filters-snn-mean" "") +; (gtk_accel_path "<Actions>/tools/tools-hardness-set" "") +; (gtk_accel_path "<Actions>/tools/tools-object-1-last" "") +; (gtk_accel_path "<Actions>/layers/layers-color-tag-menu" "") +; (gtk_accel_path "<Actions>/context/context-background-value-increase-skip" "") +; (gtk_accel_path "<Actions>/view/view-display-intent-relative-colorimetric" "") +; (gtk_accel_path "<Actions>/tools/tools-aspect-set-to-default" "") +; (gtk_accel_path "<Actions>/filters/filters-supernova" "") +; (gtk_accel_path "<Actions>/image/image-transform-menu" "") +(gtk_accel_path "<Actions>/view/view-shrink-wrap" "") +; (gtk_accel_path "<Actions>/context/context-swatch-foreground-set" "") +; (gtk_accel_path "<Actions>/plug-in/file-pat-save-internal" "") +; (gtk_accel_path "<Actions>/context/context-foreground-red-decrease" "") +; (gtk_accel_path "<Actions>/view/view-zoom-8-1" "4") +; (gtk_accel_path "<Actions>/context/context-brush-radius-minimum" "") +; (gtk_accel_path "<Actions>/filters/filters-sepia" "") +; (gtk_accel_path "<Actions>/debug/debug-dump-attached-data" "") +; (gtk_accel_path "<Actions>/context/context-brush-hardness-increase" "") +; (gtk_accel_path "<Actions>/context/context-foreground-saturation-set" "") +; (gtk_accel_path "<Actions>/view/view-softproof-gamut-check" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-images" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-selection-intersect" "") +(gtk_accel_path "<Actions>/plug-in/file-print-gtk" "<Primary>p") +; (gtk_accel_path "<Actions>/filters/filters-reshow" "<Primary><Shift>f") +; (gtk_accel_path "<Actions>/dialogs/dialogs-gradient-editor" "") +; (gtk_accel_path "<Actions>/view/view-move-to-screen-menu" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0016" "") +; (gtk_accel_path "<Actions>/plug-in/file-tiff-save2" "") +; (gtk_accel_path "<Actions>/view/view-open-display" "") +; (gtk_accel_path "<Actions>/layers/layers-linked" "") +; (gtk_accel_path "<Actions>/tool-options/tool-options-save-preset-menu" "") +; (gtk_accel_path "<Actions>/context/context-brush-spacing-maximum" "") +; (gtk_accel_path "<Actions>/file/file-copy-location" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-buffers" "") +; (gtk_accel_path "<Actions>/layers/layers-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-aspect-minimum" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0015" "") +; (gtk_accel_path "<Actions>/context/context-foreground-green-decrease-skip" "") +; (gtk_accel_path "<Actions>/context/context-palette-background-previous-skip" "") +; (gtk_accel_path "<Actions>/edit/edit-paste-as-new-image" "<Primary><Shift>v") +; (gtk_accel_path "<Actions>/filters/filters-stress" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-patterns" "<Primary><Shift>p") +; (gtk_accel_path "<Actions>/filters/filters-edge-laplace" "") +; (gtk_accel_path "<Actions>/context/context-background-green-decrease" "") +; (gtk_accel_path "<Actions>/view/view-rotate-90" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0014" "") +; (gtk_accel_path "<Actions>/context/context-brush-spacing-decrease" "") +; (gtk_accel_path "<Actions>/filters/filters-variable-blur" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-ifscompose" "") +; (gtk_accel_path "<Actions>/context/context-background-hue-increase-skip" "") +; (gtk_accel_path "<Actions>/filters/filters-ripple" "") +; (gtk_accel_path "<Actions>/tools/tools-airbrush" "a") +; (gtk_accel_path "<Actions>/view/view-softproof-intent-menu" "") +; (gtk_accel_path "<Actions>/filters/filters-sinus" "") +; (gtk_accel_path "<Actions>/filters/filters-c2g" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0013" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-metadata-viewer" "") +; (gtk_accel_path "<Actions>/tool-options/tool-options-edit-preset-menu" "") +; (gtk_accel_path "<Actions>/view/view-close" "<Primary>w") +; (gtk_accel_path "<Actions>/layers/layers-edit-text" "") +; (gtk_accel_path "<Actions>/context/context-brush-shape-diamond" "") +; (gtk_accel_path "<Actions>/tools/tools-force-decrease-skip" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-online-main-web-site" "") +; (gtk_accel_path "<Actions>/vectors/vectors-edit-attributes" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0012" "") +; (gtk_accel_path "<Actions>/context/context-opacity-increase" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-tool-options" "") +; (gtk_accel_path "<Actions>/context/context-brush-spacing-set" "") +; (gtk_accel_path "<Actions>/context/context-pattern-select-last" "") +; (gtk_accel_path "<Actions>/filters/filters-distance-map" "") +(gtk_accel_path "<Actions>/tools/tools-free-select" "l") +; (gtk_accel_path "<Actions>/context/context-foreground-green-minimum" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0011" "") +; (gtk_accel_path "<Actions>/file/file-open-recent-09" "<Primary>9") +; (gtk_accel_path "<Actions>/dockable/dialogs-fonts" "") +; (gtk_accel_path "<Actions>/context/context-tool-select-next" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0010" "") +; (gtk_accel_path "<Actions>/layers/layers-select-top" "Home") +; (gtk_accel_path "<Actions>/channels/channels-selection-subtract" "") +; (gtk_accel_path "<Actions>/file/file-open-recent-08" "<Primary>8") +; (gtk_accel_path "<Actions>/context/context-background-hue-increase" "") +; (gtk_accel_path "<Actions>/context/context-colormap-background-next-skip" "") +; (gtk_accel_path "<Actions>/context/context-brush-spikes-decrease-skip" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-mypaint-brushes" "") +; (gtk_accel_path "<Actions>/context/context-font-select-previous" "") +; (gtk_accel_path "<Actions>/file/file-open-recent-07" "<Primary>7") +; (gtk_accel_path "<Actions>/plug-in/plug-in-film" "") +; (gtk_accel_path "<Actions>/layers/layers-anchor" "<Primary>h") +; (gtk_accel_path "<Actions>/view/view-new" "") +; (gtk_accel_path "<Actions>/edit/edit-redo" "<Primary>y") +; (gtk_accel_path "<Actions>/context/context-brush-angle-decrease" "") +; (gtk_accel_path "<Actions>/file/file-open-recent-06" "<Primary>6") +; (gtk_accel_path "<Actions>/plug-in/plug-in-goat-exercise" "") +; (gtk_accel_path "<Actions>/plug-in/file-gbr-save-internal" "") +; (gtk_accel_path "<Actions>/file/file-open-recent-05" "<Primary>5") +; (gtk_accel_path "<Actions>/edit/edit-paste-in-place" "<Primary><Alt>v") +; (gtk_accel_path "<Actions>/vectors/vectors-selection-add" "") +; (gtk_accel_path "<Actions>/tools/tools-aspect-increase-percent" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-reset-all" "") +; (gtk_accel_path "<Actions>/layers/layers-edit-attributes" "") +; (gtk_accel_path "<Actions>/drawable/drawable-lock-content" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-help-using-docks" "") +; (gtk_accel_path "<Actions>/filters/filters-hue-saturation" "") +; (gtk_accel_path "<Actions>/context/context-foreground-red-decrease-skip" "") +; (gtk_accel_path "<Actions>/filters/filters-lens-distortion" "") +; (gtk_accel_path "<Actions>/image/image-convert-indexed" "") +; (gtk_accel_path "<Actions>/filters/filters-tile-glass" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-lava" "") +; (gtk_accel_path "<Actions>/file/file-open-recent-04" "<Primary>4") +; (gtk_accel_path "<Actions>/dock/dock-auto-follow-active" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-spyrogimp" "") +; (gtk_accel_path "<Actions>/context/context-foreground-saturation-maximum" "") +; (gtk_accel_path "<Actions>/image/colors-map-menu" "") +; (gtk_accel_path "<Actions>/context/context-brush-radius-set" "") +; (gtk_accel_path "<Actions>/file/file-open-recent-03" "<Primary>3") +; (gtk_accel_path "<Actions>/context/context-brush-hardness-decrease" "") +; (gtk_accel_path "<Actions>/windows/windows-show-display-previous" "<Shift><Alt>Tab") +; (gtk_accel_path "<Actions>/view/view-softproof-intent-relative-colorimetric" "") +; (gtk_accel_path "<Actions>/tools/tools-force-set-to-default" "") +; (gtk_accel_path "<Actions>/file/file-open-recent-02" "<Primary>2") +; (gtk_accel_path "<Actions>/drawable/drawable-equalize" "") +; (gtk_accel_path "<Actions>/context/context-font-select-first" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-animationunoptimize" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-selection-replace" "") +; (gtk_accel_path "<Actions>/file/file-open-recent-01" "<Primary>1") +; (gtk_accel_path "<Actions>/image/image-crop-to-content" "") +; (gtk_accel_path "<Actions>/filters/filters-polar-coordinates" "") +; (gtk_accel_path "<Actions>/context/context-background-hue-minimum" "") +; (gtk_accel_path "<Actions>/tools/tools-rotate" "<Shift>r") +; (gtk_accel_path "<Actions>/image/image-convert-double" "") +; (gtk_accel_path "<Actions>/view/view-zoom-1-8" "<Shift>4") +; (gtk_accel_path "<Actions>/context/context-background-green-decrease-skip" "") +; (gtk_accel_path "<Actions>/edit/edit-fill-fg" "<Primary>comma") +(gtk_accel_path "<Actions>/tools/tools-scale" "<Primary>t") +; (gtk_accel_path "<Actions>/context/context-brush-select-last" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-distress-selection" "") +; (gtk_accel_path "<Actions>/edit/undo-popup" "") +; (gtk_accel_path "<Actions>/layers/layers-mode-first" "") +; (gtk_accel_path "<Actions>/view/view-zoom-1-16" "<Shift>5") +; (gtk_accel_path "<Actions>/dockable/dockable-add-tab-menu" "") +; (gtk_accel_path "<Actions>/context/context-tool-select-previous" "") +; (gtk_accel_path "<Actions>/channels/channels-color-tag-gray" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-error-console" "") +; (gtk_accel_path "<Actions>/context/context-foreground-value-maximum" "") +; (gtk_accel_path "<Actions>/channels/channels-raise" "") +; (gtk_accel_path "<Actions>/context/context-background-red-set" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-perspective-shadow" "") +; (gtk_accel_path "<Actions>/context/context-opacity-decrease" "") +; (gtk_accel_path "<Actions>/filters/filters-cubism" "") +; (gtk_accel_path "<Actions>/filters/filters-motion-blur-circular" "") +; (gtk_accel_path "<Actions>/context/context-gradient-menu" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-max-rgb" "") +; (gtk_accel_path "<Actions>/vectors/vectors-copy" "") +; (gtk_accel_path "<Actions>/filters/filters-normal-map" "") +; (gtk_accel_path "<Actions>/vectors/vectors-color-tag-green" "") +; (gtk_accel_path "<Actions>/plug-in/gimp-online-docs-web-site" "") +; (gtk_accel_path "<Actions>/view/view-zoom-1-4" "<Shift>3") +; (gtk_accel_path "<Actions>/image/image-resize" "") +; (gtk_accel_path "<Actions>/context/context-palette-foreground-last" "") +; (gtk_accel_path "<Actions>/tools/tools-airbrush-rate-decrease-skip" "") +; (gtk_accel_path "<Actions>/tools/tools-shear" "<Shift>h") +; (gtk_accel_path "<Actions>/context/context-background-green-minimum" "") +; (gtk_accel_path "<Actions>/view/view-snap-to-canvas" "") +; (gtk_accel_path "<Actions>/view/view-scroll-left-border" "") +; (gtk_accel_path "<Actions>/filters/filters-pixelize" "") +; (gtk_accel_path "<Actions>/dock/dock-close" "") +; (gtk_accel_path "<Actions>/windows/windows-hide-docks" "Tab") +; (gtk_accel_path "<Actions>/view/view-show-layer-boundary" "") +; (gtk_accel_path "<Actions>/file/file-save" "<Primary>s") +; (gtk_accel_path "<Actions>/layers/layers-composite-space-rgb-linear" "") +; (gtk_accel_path "<Actions>/windows/windows-show-display-next" "<Alt>Tab") +; (gtk_accel_path "<Actions>/context/context-background-hue-decrease" "") +; (gtk_accel_path "<Actions>/filters/filters-noise-slur" "") +; (gtk_accel_path "<Actions>/view/view-zoom-1-2" "<Shift>2") +; (gtk_accel_path "<Actions>/image/image-menu" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-photocopy" "") +; (gtk_accel_path "<Actions>/edit/edit-paste-as-menu" "") +; (gtk_accel_path "<Actions>/tools/tools-select-menu" "") +; (gtk_accel_path "<Actions>/view/view-zoom-1-1" "1") +; (gtk_accel_path "<Actions>/plug-in/plug-in-warp" "") +; (gtk_accel_path "<Actions>/dockable/dockable-preview-size-huge" "") +; (gtk_accel_path "<Actions>/dockable/dockable-tab-style-automatic" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-edit" "") +; (gtk_accel_path "<Actions>/windows/windows-show-tabs" "") +; (gtk_accel_path "<Actions>/layers/layers-mask-add-last-values" "") +; (gtk_accel_path "<Actions>/plug-in/file-raw-save" "") +(gtk_accel_path "<Actions>/image/image-merge-layers" "") +; (gtk_accel_path "<Actions>/filters/filters-noise-perlin" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-destripe" "") +; (gtk_accel_path "<Actions>/dockable/dockable-tab-style-icon-name" "") +; (gtk_accel_path "<Actions>/dockable/dockable-preview-size-large" "") +; (gtk_accel_path "<Actions>/layers/layers-color-tag-green" "") +; (gtk_accel_path "<Actions>/context/context-background-red-decrease-skip" "") +; (gtk_accel_path "<Actions>/tools/tools-size-decrease-skip" "<Shift>bracketleft") +; (gtk_accel_path "<Actions>/dockable/dialogs-selection-editor" "") +; (gtk_accel_path "<Actions>/quick-mask/quick-mask-configure" "") +; (gtk_accel_path "<Actions>/filters/filters-cartoon" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-fractalexplorer" "") +; (gtk_accel_path "<Actions>/view/view-softproof-profile" "") +; (gtk_accel_path "<Actions>/view/view-rotate-270" "") +; (gtk_accel_path "<Actions>/vectors/vectors-lower-to-bottom" "") +; (gtk_accel_path "<Actions>/context/context-colormap-background-set" "") +; (gtk_accel_path "<Actions>/tools/tools-paintbrush-size-set" "") +; (gtk_accel_path "<Actions>/layers/layers-color-tag-gray" "") +; (gtk_accel_path "<Actions>/dock/dock-show-image-menu" "") +; (gtk_accel_path "<Actions>/context/context-brush-hardness-increase-skip" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-selection-to-pattern" "") +; (gtk_accel_path "<Actions>/plug-in/script-fu-carve-it" "") +; (gtk_accel_path "<Actions>/plug-in/plug-in-plug-in-details" "") +; (gtk_accel_path "<Actions>/context/context-brush-select-previous" "") +; (gtk_accel_path "<Actions>/context/context-palette-background-set" "") +(gtk_accel_path "<Actions>/tools/tools-eraser" "e") +; (gtk_accel_path "<Actions>/select/select-float" "<Primary><Shift>l") +; (gtk_accel_path "<Actions>/context/context-gradient-select-next" "") +; (gtk_accel_path "<Actions>/filters/filters-grid" "") +; (gtk_accel_path "<Actions>/tools/tools-size-decrease-percent" "") +; (gtk_accel_path "<Actions>/layers/layers-visible" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-sample-points" "") +; (gtk_accel_path "<Actions>/context/context-background-blue-decrease-skip" "") +; (gtk_accel_path "<Actions>/view/view-softproof-intent-saturation" "") +; (gtk_accel_path "<Actions>/view/view-zoom-minimum" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0009" "") +; (gtk_accel_path "<Actions>/tools/tools-hardness-decrease-skip" "") +; (gtk_accel_path "<Actions>/filters/filters-rgb-clip" "") +; (gtk_accel_path "<Actions>/context/context-background-value-maximum" "") +; (gtk_accel_path "<Actions>/layers/layers-lower-to-bottom" "") +; (gtk_accel_path "<Actions>/tools/tools-force-set" "") +; (gtk_accel_path "<Actions>/filters/filters-wind" "") +; (gtk_accel_path "<Actions>/context/context-foreground-red-minimum" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0007" "") +; (gtk_accel_path "<Actions>/debug/debug-dump-managers" "") +; (gtk_accel_path "<Actions>/context/context-tool-select-last" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0008" "") +; (gtk_accel_path "<Actions>/filters/filters-displace" "") +; (gtk_accel_path "<Actions>/filters/filters-enhance-menu" "") +; (gtk_accel_path "<Actions>/filters/filters-engrave" "") +; (gtk_accel_path "<Actions>/tools/tools-object-2-next" "") +; (gtk_accel_path "<Actions>/view/view-show-guides" "<Primary><Shift>t") +; (gtk_accel_path "<Actions>/vectors/vectors-color-tag-red" "") +; (gtk_accel_path "<Actions>/vectors/vectors-selection-from-vectors" "<Shift>v") +; (gtk_accel_path "<Actions>/view/view-zoom-other" "") +; (gtk_accel_path "<Actions>/image/image-convert-u32" "") +; (gtk_accel_path "<Actions>/dockable/dialogs-symmetry" "") +; (gtk_accel_path "<Actions>/context/context-swatch-background-previous" "") +; (gtk_accel_path "<Actions>/select/select-feather" "") +; (gtk_accel_path "<Actions>/filters/filters-motion-blur-zoom" "") +; (gtk_accel_path "<Actions>/dialogs/dialogs-tool-presets" "") +; (gtk_accel_path "<Actions>/windows/windows-display-0006" "") +; (gtk_accel_path "<Actions>/vectors/vectors-duplicate" "") +; (gtk_accel_path "<Actions>/view/view-display-intent-saturation" "") +; (gtk_accel_path "<Actions>/tools/tools-foreground-select" "") diff --git a/GIMP/2.10/parasiterc b/GIMP/2.10/parasiterc new file mode 100755 index 0000000..6cfb1be --- /dev/null +++ b/GIMP/2.10/parasiterc @@ -0,0 +1,6 @@ +# GIMP parasiterc +# +# This file will be entirely rewritten each time you exit. + + +# end of parasiterc diff --git a/GIMP/2.10/pluginrc b/GIMP/2.10/pluginrc new file mode 100644 index 0000000..0b6b701 --- /dev/null +++ b/GIMP/2.10/pluginrc @@ -0,0 +1,4317 @@ +# GIMP pluginrc +# +# This file can safely be removed and will be automatically regenerated by +# querying the installed plug-ins. + +(protocol-version 26) +(file-version 5) + +(plug-in-def "${gimp_plug_in_dir}/plug-ins/web-browser/web-browser" 1619534562 + (proc-def "plug-in-web-browser" 1 + "Open an URL in the user specified web browser" + "Opens the given URL in the user specified web browser." + "Henrik Brix Andersen <brix@gimp.org>" + "2003" + "2003/09/16" + "" + 0 + (icon icon-name -1 "") + "" + 1 0 + (proc-arg 4 "url" "URL to open"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/wavelet-decompose/wavelet-decompose" 1619534562 + (proc-def "plug-in-wavelet-decompose" 1 + "Wavelet decompose" + "Compute and render wavelet scales" + "Miroslav Talasek <miroslav.talasek@seznam.cz>" + "Miroslav Talasek <miroslav.talasek@seznam.cz>" + "19january 2017" + "_Wavelet-decompose..." + 1 + (menu-path "<Image>/Filters/Enhance") + (icon icon-name -1 "") + "RGB*, GRAY*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "scales" "Number of scales (1-7)") + (proc-arg 0 "create-group" "Create a layer group to store the decomposition") + (proc-arg 0 "create-masks" "Add a layer mask to each scales layers"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/warp/warp" 1619534562 + (proc-def "plug-in-warp" 1 + "Twist or smear image in many different ways" + "Smears an image along vector paths calculated as the gradient of a separate control matrix. The effect can look like brushstrokes of acrylic or watercolor paint, in some cases." + "John P. Beale" + "John P. Beale" + "1997" + "_Warp..." + 1 + (menu-path "<Image>/Filters/Map") + (icon icon-name -1 "") + "RGB*, GRAY*" + 17 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "amount" "Pixel displacement multiplier") + (proc-arg 16 "warp-map" "Displacement control map") + (proc-arg 0 "iter" "Iteration count (last required argument)") + (proc-arg 3 "dither" "Random dither amount (first optional argument)") + (proc-arg 3 "angle" "Angle of gradient vector rotation") + (proc-arg 0 "wrap-type" "Edge behavior: { WRAP (0), SMEAR (1), BLACK (2), COLOR (3) }") + (proc-arg 16 "mag-map" "Magnitude control map") + (proc-arg 0 "mag-use" "Use magnitude map: { FALSE (0), TRUE (1) }") + (proc-arg 0 "substeps" "Substeps between image updates") + (proc-arg 0 "grad-map" "Gradient control map") + (proc-arg 3 "grad-scale" "Scaling factor for gradient map (0=don't use)") + (proc-arg 0 "vector-map" "Fixed vector control map") + (proc-arg 3 "vector-scale" "Scaling factor for fixed vector map (0=don't use)") + (proc-arg 3 "vector-angle" "Angle for fixed vector map"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/van-gogh-lic/van-gogh-lic" 1619534562 + (proc-def "plug-in-lic" 1 + "Special effects that nobody understands" + "No help yet" + "Tom Bech & Federico Mena Quintero" + "Tom Bech & Federico Mena Quintero" + "Version 0.14, September 24 1997" + "_Van Gogh (LIC)..." + 1 + (menu-path "<Image>/Filters/Artistic") + (icon icon-name -1 "") + "RGB*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/unit-editor/unit-editor" 1619534562 + (proc-def "plug-in-unit-editor" 1 + "Create or alter units used in GIMP" + "The GIMP unit editor" + "Michael Natterer <mitch@gimp.org>" + "Michael Natterer <mitch@gimp.org>" + "2000" + "U_nits" + 1 + (menu-path "<Image>/Edit/Preferences") + (icon icon-name -1 "gimp-tool-measure") + "" + 1 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/tile-small/tile-small" 1619534562 + (proc-def "plug-in-small-tiles" 1 + "Tile image into smaller versions of the original" + "More here later" + "Andy Thomas" + "Andy Thomas" + "1997" + "_Small Tiles..." + 0 + (icon icon-name -1 "") + "RGB*, GRAY*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "num-tiles" "Number of tiles to make"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/tile/tile" 1619534562 + (proc-def "plug-in-tile" 1 + "Create an array of copies of the image" + "This function creates a new image with a single layer sized to the specified 'new_width' and 'new_height' parameters. The specified drawable is tiled into this layer. The new layer will have the same type as the specified drawable and the new image will have a corresponding base type." + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1996-1997" + "_Tile..." + 1 + (menu-path "<Image>/Filters/Map") + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 6 2 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "new-width" "New (tiled) image width") + (proc-arg 0 "new-height" "New (tiled) image height") + (proc-arg 0 "new-image" "Create a new image?") + (proc-arg 13 "new-image" "Output image (-1 if new-image == FALSE)") + (proc-arg 14 "new-layer" "Output layer (-1 if new-image == FALSE)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/sphere-designer/sphere-designer" 1619534562 + (proc-def "plug-in-spheredesigner" 1 + "Create an image of a textured sphere" + "This plug-in can be used to create textured and/or bumpmapped spheres, and uses a small lightweight raytracer to perform the task with good quality" + "Vidar Madsen" + "Vidar Madsen" + "1999" + "Sphere _Designer..." + 1 + (menu-path "<Image>/Filters/Render") + (icon icon-name -1 "") + "RGB*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/sparkle/sparkle" 1619534562 + (proc-def "plug-in-sparkle" 1 + "Turn bright spots into starry sparkles" + "Uses a percentage based luminoisty threhsold to find candidate pixels for adding some sparkles (spikes). " + "John Beale, & (ported to GIMP v0.54) Michael J. Hammel & ted to GIMP v1.0) & Seth Burgess & Spencer Kimball" + "John Beale" + "Version 1.27, September 2003" + "_Sparkle..." + 1 + (menu-path "<Image>/Filters/Light and Shadow/Light") + (icon icon-name -1 "") + "RGB*, GRAY*" + 16 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "lum-threshold" "Luminosity threshold (0.0 - 1.0)") + (proc-arg 3 "flare-inten" "Flare intensity (0.0 - 1.0)") + (proc-arg 0 "spike-len" "Spike length (in pixels)") + (proc-arg 0 "spike-pts" "# of spike points") + (proc-arg 0 "spike-angle" "Spike angle (0-360 degrees, -1: random)") + (proc-arg 3 "density" "Spike density (0.0 - 1.0)") + (proc-arg 3 "transparency" "Transparency (0.0 - 1.0)") + (proc-arg 3 "random-hue" "Random hue (0.0 - 1.0)") + (proc-arg 3 "random-saturation" "Random saturation (0.0 - 1.0)") + (proc-arg 0 "preserve-luminosity" "Preserve luminosity (TRUE/FALSE)") + (proc-arg 0 "inverse" "Inverse (TRUE/FALSE)") + (proc-arg 0 "border" "Add border (TRUE/FALSE)") + (proc-arg 0 "color-type" "Color of sparkles: { NATURAL (0), FOREGROUND (1), BACKGROUND (2) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/softglow/softglow" 1619534562 + (proc-def "plug-in-softglow" 1 + "Simulate glow by making highlights intense and fuzzy" + "Gives an image a softglow effect by intensifying the highlights in the image. This is done by screening a modified version of the drawable with itself. The modified version is desaturated and then a sigmoidal transfer function is applied to force the distribution of intensities into very small and very large only. This desaturated version is then blurred to give it a fuzzy 'vaseline-on-the-lens' effect. The glow radius parameter controls the sharpness of the glow effect. The brightness parameter controls the degree of intensification applied to image highlights. The sharpness parameter controls how defined or alternatively, diffuse, the glow effect should be." + "Spencer Kimball" + "Bit Specialists, Inc." + "2001" + "_Softglow (legacy)..." + 1 + (menu-path "<Image>/Filters/Artistic") + (icon icon-name -1 "") + "RGB*, GRAY*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "glow-radius" "Glow radius (radius in pixels)") + (proc-arg 3 "brightness" "Glow brightness (0.0 - 1.0)") + (proc-arg 3 "sharpness" "Glow sharpness (0.0 - 1.0)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/smooth-palette/smooth-palette" 1619534562 + (proc-def "plug-in-smooth-palette" 1 + "Derive a smooth color palette from the image" + "help!" + "Scott Draves" + "Scott Draves" + "1997" + "Smoo_th Palette..." + 1 + (menu-path "<Image>/Colors/Info") + (icon icon-name -1 "") + "RGB*" + 7 2 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "width" "Width") + (proc-arg 0 "height" "Height") + (proc-arg 0 "ntries" "Search Depth") + (proc-arg 0 "show-image" "Show Image?") + (proc-arg 13 "new-image" "Output image") + (proc-arg 14 "new-layer" "Output layer"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/sharpen/sharpen" 1619534562 + (proc-def "plug-in-sharpen" 1 + "Make image sharper (less powerful than Unsharp Mask)" + "This plug-in selectively performs a convolution filter on an image." + "Michael Sweet <mike@easysw.com>" + "Copyright 1997-1998 by Michael Sweet" + "1.4.2 - 3 June 1998" + "_Sharpen..." + 0 + (icon icon-name -1 "") + "RGB*, GRAY*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "percent" "Percent sharpening (default = 10)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/selection-to-path/selection-to-path" 1619534562 + (proc-def "plug-in-sel2path" 1 + "Converts a selection to a path" + "Converts a selection to a path" + "Andy Thomas" + "Andy Thomas" + "1999" + "" + 0 + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)")) + (proc-def "plug-in-sel2path-advanced" 1 + "Converts a selection to a path (with advanced user menu)" + "Converts a selection to a path (with advanced user menu)" + "Andy Thomas" + "Andy Thomas" + "1999" + "" + 0 + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 23 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)") + (proc-arg 3 "align-threshold" "align_threshold") + (proc-arg 3 "corner-always-threshold" "corner_always_threshold") + (proc-arg 2 "corner-surround" "corner_surround") + (proc-arg 3 "corner-threshold" "corner_threshold") + (proc-arg 3 "error-threshold" "error_threshold") + (proc-arg 2 "filter-alternative-surround" "filter_alternative_surround") + (proc-arg 3 "filter-epsilon" "filter_epsilon") + (proc-arg 2 "filter-iteration-count" "filter_iteration_count") + (proc-arg 3 "filter-percent" "filter_percent") + (proc-arg 2 "filter-secondary-surround" "filter_secondary_surround") + (proc-arg 2 "filter-surround" "filter_surround") + (proc-arg 2 "keep-knees" "{1-Yes, 0-No}") + (proc-arg 3 "line-reversion-threshold" "line_reversion_threshold") + (proc-arg 3 "line-threshold" "line_threshold") + (proc-arg 3 "reparameterize-improvement" "reparameterize_improvement") + (proc-arg 3 "reparameterize-threshold" "reparameterize_threshold") + (proc-arg 3 "subdivide-search" "subdivide_search") + (proc-arg 2 "subdivide-surround" "subdivide_surround") + (proc-arg 3 "subdivide-threshold" "subdivide_threshold") + (proc-arg 2 "tangent-surround" "tangent_surround"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/script-fu/script-fu" 1619534562 + (proc-def "extension-script-fu" 2 + "A scheme interpreter for scripting GIMP operations" + "More help here later" + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1997" + "" + 0 + (icon icon-name -1 "") + "" + 0 0) + (proc-def "plug-in-script-fu-console" 1 + "Interactive console for Script-Fu development" + "Provides an interface which allows interactive scheme development." + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1997" + "_Console" + 1 + (menu-path "<Image>/Filters/Languages/Script-Fu") + (icon icon-name -1 "") + "" + 1 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }")) + (proc-def "plug-in-script-fu-text-console" 1 + "Provides a text console mode for script-fu development" + "Provides an interface which allows interactive scheme development." + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1997" + "" + 0 + (icon icon-name -1 "") + "" + 1 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }")) + (proc-def "plug-in-script-fu-server" 1 + "Server for remote Script-Fu operation" + "Provides a server for remote script-fu operation. NOTE that for security reasons this procedure's API was changed in an incompatible way since GIMP 2.8.12. You now have to pass the IP to listen on as first parameter. Calling this procedure with the old API will fail on purpose." + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1997" + "_Start Server..." + 1 + (menu-path "<Image>/Filters/Languages/Script-Fu") + (icon icon-name -1 "") + "" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "ip" "The ip on which to listen for requests") + (proc-arg 0 "port" "The port on which to listen for requests") + (proc-arg 4 "logfile" "The file to log server activity to")) + (proc-def "plug-in-script-fu-eval" 1 + "Evaluate scheme code" + "Evaluate the code under the scheme interpreter (primarily for batch mode)" + "Manish Singh" + "Manish Singh" + "1998" + "" + 0 + (icon icon-name -1 "") + "" + 2 0 + (proc-arg 0 "run-mode" "The run mode { RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "code" "The code to evaluate")) + (locale-def "gimp20-script-fu")) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/screenshot/screenshot" 1619534562 + (proc-def "plug-in-screenshot" 1 + "Create an image from an area of the screen" + "The plug-in takes screenshots of an interactively selected window or of the desktop, either the whole desktop or an interactively selected region. When called non-interactively, it may grab the root window or use the window-id passed as a parameter. The last four parameters are optional and can be used to specify the corners of the region to be grabbed.On Mac OS X or on gnome-shell, when called non-interactively, the plug-inonly can take screenshots of the entire root window.Grabbing a window or a region is not supportednon-interactively. To grab a region or a particularwindow, you need to use the interactive mode." + "Sven Neumann <sven@gimp.org>, Henrik Brix Andersen <brix@gimp.org>,Simone Karin Lehmann" + "1998 - 2008" + "v1.1 (2008/04)" + "_Screenshot..." + 1 + (menu-path "<Image>/File/Create/Acquire") + (icon inline-pixbuf 1606 "GdkP\0\0\6F\2\1\0\2\0\0\0X\0\0\0\26\0\0\0\26\213\0\0\0\0\1\242\242\242\5\203\242\242\242\31\221\0\0\0\0\2\27\27\26D\40\40\40\372\203\51\51\51\375\2\32\32\32\362\26\26\25\60\217\0\0\0\0\2\2\2\2\322\307\310\307\377\203\377\377\377\377\2\263\263\262\363\0\0\0\314\217\0\0\0\0\2\6\6\6\334\206\207\205\377\202\252\253\251\377\3\252\252\251\377ghe\376\1\1\1\320\217\0\0\0\0\2\11\11\11\346\56\57\55\345\202GHE\25\3JKH\32\60\61\57\364\5\5\5\333\212\0\0\0\0\17\26\26\25\31\26\26\25\60\26\26\25g\0\0\0\314\53\54\53\331LMK\375EFD\362ffe\347iig\346lmk\346RSQ\362\13\13\13\360\0\0\0\314\2\2\2\321\26\26\25V\203\0\0\0\0\43\26\26\25\31\26\26\25\60\26\26\25n\3\3\3\331\2\2\2\332JJI\355\215\215\215\372\246\246\246\347\267\270\266\362\177\202\176\377BC\77\377TUR\377\134\135Y\377gid\377\133\135X\377\204\206\204\374wxw\276\224\225\224\314LLK\343\26\26\25D\0\0\0\0\26\26\25D\3\3\3\341\17\17\17\373ghg\377\237\240\236\377\273\274\272\377\302\303\300\377\272\273\270\377\200\201\177\377zzz\377tws\377\220\223\217\377\221\225\221\377\224\227\223\377\202\226\232\226\377K\177\202\175\377xyu\377\217\221\215\377\226\227\226\365\0\0\0\371\0\0\0\0\2\2\2\330\257\261\257\377\275\276\273\377\262\263\260\377UWT\377QSP\377suq\377\135\136\133\377\304\304\304\377\303\303\303\377kmi\377MNJ\377WZX\377\133\140\137\377aeb\377gid\377\175\200\173\377SUQ\377FGE\377\200\201\200\377\12\12\12\357\0\0\0\0\4\4\4\345xyv\377\241\242\236\377\210\212\205\377vxt\377\220\222\217\377GIF\377\53\54\51\377\140\140\140\377jji\377UXV\377y\204\210\377\203\215\220\377\176\204\207\377flo\377PW\134\377SWU\377JLI\377\64\65\62\377tut\377\12\12\12\357\0\0\0\0\4\4\4\344opm\377\221\223\217\377\175\177\173\377\215\217\213\377\140b\137\377\50\51\47\377\52\53\51\377\67\70\65\377VXV\377u\176\202\377nsu\377VYZ\377OST\377OQS\377JOP\377\136cd\377\66\71\70\377\41\42\41\377llk\377\12\12\12\357\0\0\0\0\3\3\3\345npl\377\220\221\216\377\202UWS\377\24GIF\377\40\41\37\377\52\53\51\377\71\72\67\377\136ce\377NRT\377UXY\377\50\54\56\377\22\24\25\377\41\44\46\377ILM\377\70\75\77\377RVX\377\47\47\46\377klk\377\12\12\12\357\0\0\0\1\3\3\3\345nol\377\220\221\216\377\202UWS\377\24GIF\377\40\41\37\377\52\53\51\377\70\72\70\377TXY\377\62\70\71\377\23\25\26\377\16\16\16\377\1\1\1\377\2\2\2\377\24\25\25\377\56\63\64\377\62\70\71\377\60\61\61\377aa\140\377\11\11\11\360\0\0\0\3\3\3\3\345nol\377\204\205\202\377\202UWS\377\24GIF\377\40\41\37\377\52\53\51\377\77BA\377\62\70\72\377\34\40\41\377\31\32\32\377\377\377\377\377hhh\377\40\40\40\377\22\22\22\377\56\60\60\377\56\64\66\377\72\76\77\377\140a\140\377\11\11\10\361\0\0\0\7\3\3\3\345mok\377z\173x\377\202UWS\377\24GIF\377\40\41\37\377\52\53\51\377HJI\377\56\64\66\377\25\27\30\377\40\40\40\377hhh\377\232\232\232\377\175\175\175\377\47\47\47\377\71\73\73\377\57\65\67\377\65\71\71\377\140\140\137\377\11\11\10\362\0\0\0\15\3\3\3\345lnk\377rsp\377\202UWS\377\24GIF\377\40\41\37\377\54\55\52\377\76\100\76\377\56\64\66\377\35\37\40\377\1\1\1\377\70\70\70\377\214\214\214\377\213\213\213\377AAA\377JKK\377\57\65\67\377\66\72\73\377WXV\377\6\6\6\364\0\0\0\21\0\0\0\371\201\202\177\377mok\377\202UWS\377iGIF\377MNM\377RRR\372ghg\364\133\140b\377\53\57\60\377\17\17\17\377\42\42\42\377\47\47\47\377HHH\377\263\263\263\377SUU\377W\134\136\377CFF\374\74\74\74\376\20\20\17\317\0\0\0\20\24\24\23\135\4\4\4\353\177\177\176\375\174\175z\373\175\176\174\374hih\376\71\72\71\371\0\0\0\347\0\0\0\351\7\7\7\367\56\64\66\377\62\65\66\377\40\40\40\377\50\50\50\377\72\72\72\377\140ab\377\71\76\77\377\11\13\13\376\0\0\0\353\0\0\0\300\14\14\13H\0\0\0\15\0\0\0\4\23\23\22L\0\0\0\332\0\0\0\341\0\0\0\346\0\0\0\341\14\14\13\173\0\0\0V\0\0\0a\0\0\0l\10\11\11\371\134\136\137\377LOP\377ILL\377LOQ\377QUV\377\16\17\17\377\34\37\40\244\0\0\0\140\0\0\0\64\0\0\0\27\0\0\0\7\0\0\0\1\0\0\0\3\0\0\0\10\0\0\0\21\0\0\0\34\0\0\0\47\0\0\0\60\0\0\0\66\0\0\0\75\0\0\0A\0\0\0F\4\5\5\355\12\13\13\371\17\20\20\376\15\16\16\375\10\10\11\365\7\10\11j\0\0\0G\0\0\0\55\0\0\0\30\0\0\0\13\0\0\0\4\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\11\0\0\0\16\0\0\0\23\0\0\0\31\0\0\0\35\0\0\0\41\0\0\0\43\0\0\0\44\0\0\0\45\0\0\0\44\0\0\0\46\0\0\0\45\0\0\0\36\0\0\0\27\0\0\0\20\0\0\0\10\0\0\0\3\0\0\0\1\204\0\0\0\0\5\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\5\0\0\0\6\202\0\0\0\10\11\0\0\0\11\0\0\0\7\0\0\0\10\0\0\0\5\0\0\0\7\0\0\0\6\0\0\0\5\0\0\0\3\0\0\0\1\202\0\0\0\0") + "" + 7 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 0 "shoot-type" "The Shoot type { SHOOT-WINDOW (0), SHOOT-ROOT (1), SHOOT-REGION (2) }") + (proc-arg 0 "window-id" "Window id for SHOOT-WINDOW") + (proc-arg 0 "x1" "Region left x coord for SHOOT-REGION") + (proc-arg 0 "y1" "Region top y coord for SHOOT-REGION") + (proc-arg 0 "x2" "Region right x coord for SHOOT-REGION") + (proc-arg 0 "y2" "Region bottom y coord for SHOOT-REGION") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/sample-colorize/sample-colorize" 1619534562 + (proc-def "plug-in-sample-colorize" 1 + "Colorize image using a sample image as a guide" + "This plug-in colorizes the contents of the specified (gray) layer with the help of a sample (color) layer. It analyzes all colors in the sample layer. The sample colors are sorted by brightness (== intentisty) and amount and stored in a sample colortable (where brightness is the index) The pixels of the destination layer are remapped with the help of the sample colortable. If use_subcolors is TRUE, the remapping process uses all sample colors of the corresponding brightness-intensity and distributes the subcolors according to their amount in the sample (If the sample has 5 green, 3 yellow, and 1 red pixel of the intensity value 105, the destination pixels at intensity value 105 are randomly painted in green, yellow and red in a relation of 5:3:1 If use_subcolors is FALSE only one sample color per intensity is used. (green will be used in this example) The brightness intensity value is transformed at the remapping process according to the levels: out_lo, out_hi, in_lo, in_high and gamma The in_low / in_high levels specify an initial mapping of the intensity. The gamma value determines how intensities are interpolated between the in_lo and in_high levels. A gamma value of 1.0 results in linear interpolation. Higher gamma values results in more high-level intensities Lower gamma values results in more low-level intensities The out_low/out_high levels constrain the resulting intensity index The intensity index is used to pick the corresponding color in the sample colortable. If hold_inten is FALSE the picked color is used 1:1 as resulting remap_color. If hold_inten is TRUE The brightness of the picked color is adjusted back to the origial intensity value (only hue and saturation are taken from the picked sample color) (or to the input level, if orig_inten is set FALSE) Works on both Grayscale and RGB image with/without alpha channel. (the image with the dst_drawable is converted to RGB if necessary) The sample_drawable should be of type RGB or RGBA" + "Wolfgang Hofer" + "hof@hotbot.com" + "02/2000" + "_Sample Colorize..." + 1 + (menu-path "<Image>/Colors/Map") + (icon icon-name -1 "") + "RGB*, GRAY*" + 13 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "dst-drawable" "The drawable to be colorized (Type GRAY* or RGB*)") + (proc-arg 16 "sample-drawable" "Sample drawable (should be of Type RGB or RGBA)") + (proc-arg 0 "hold-inten" "hold brightness intensity levels (TRUE, FALSE)") + (proc-arg 0 "orig-inten" "TRUE: hold brightness of original intensity levels. FALSE: Hold Intensity of input levels") + (proc-arg 0 "rnd-subcolors" "TRUE: Use all subcolors of same intensity, FALSE: use only one color per intensity") + (proc-arg 0 "guess-missing" "TRUE: guess samplecolors for the missing intensity values FALSE: use only colors found in the sample") + (proc-arg 0 "in-low" "intensity of lowest input (0 <= in_low <= 254)") + (proc-arg 0 "in-high" "intensity of highest input (1 <= in_high <= 255)") + (proc-arg 3 "gamma" "gamma adjustment factor (0.1 <= gamma <= 10) where 1.0 is linear") + (proc-arg 0 "out-low" "lowest sample color intensity (0 <= out_low <= 254)") + (proc-arg 0 "out-high" "highest sample color intensity (1 <= out_high <= 255)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/qbist/qbist" 1619534562 + (proc-def "plug-in-qbist" 1 + "Generate a huge variety of abstract patterns" + "This Plug-in is based on an article by Jörn Loviscach (appeared in c't 10/95, page 326). It generates modern art pictures from a random genetic formula." + "Jörn Loviscach, Jens Ch. Restemeier" + "Jörn Loviscach, Jens Ch. Restemeier" + "January 2001, 1.12" + "_Qbist..." + 1 + (menu-path "<Image>/Filters/Render/Pattern") + (icon icon-name -1 "") + "RGB*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/procedure-browser/procedure-browser" 1619534562 + (proc-def "plug-in-dbbrowser" 1 + "List available procedures in the PDB" + "" + "Thomas Noel" + "Thomas Noel" + "23th june 1997" + "Procedure _Browser" + 1 + (menu-path "<Image>/Help/Programming") + (icon icon-name -1 "") + "" + 1 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/print/print" 1619534562 + (proc-def "file-print-gtk" 1 + "Print the image" + "Print the image using the GTK+ Print API." + "Bill Skaggs, Sven Neumann, Stefan Röllin" + "Bill Skaggs <weskaggs@primate.ucdavis.edu>" + "2006 - 2008" + "_Print..." + 1 + (menu-path "<Image>/File/Send") + (icon icon-name -1 "document-print") + "*" + 2 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Image to print"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/plugin-browser/plugin-browser" 1619534562 + (proc-def "plug-in-plug-in-details" 1 + "Display information about plug-ins" + "Allows one to browse the plug-in menus system. You can search for plug-in names, sort by name or menu location and you can view a tree representation of the plug-in menus. Can also be of help to find where new plug-ins have installed themselves in the menus." + "Andy Thomas" + "Andy Thomas" + "1999" + "_Plug-in Browser" + 1 + (menu-path "<Image>/Help/Programming") + (icon icon-name -1 "gimp-plugin") + "" + 1 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/photocopy/photocopy" 1619534562 + (proc-def "plug-in-photocopy" 1 + "Simulate color distortion produced by a copy machine" + "Propagates dark values in an image based on each pixel's relative darkness to a neighboring average. The idea behind this filter is to give the look of a photocopied version of the image, with toner transferred based on the relative darkness of a particular region. This is achieved by darkening areas of the image which are measured to be darker than a neighborhood average and setting other pixels to white. In this way, sufficiently large shifts in intensity are darkened to black. The rate at which they are darkened to black is determined by the second pct_black parameter. The mask_radius parameter controls the size of the pixel neighborhood over which the average intensity is computed and then compared to each pixel in the neighborhood to decide whether or not to darken it to black. Large values for mask_radius result in very thick black areas bordering the regions of white and much less detail for black areas everywhere including inside regions of color. Small values result in less toner overall and more detail everywhere. Small values for the pct_black make the blend from the white regions to the black border lines smoother and the toner regions themselves thinner and less noticeable; larger values achieve the opposite effect." + "Spencer Kimball" + "Bit Specialists, Inc." + "2001" + "_Photocopy (legacy)..." + 1 + (menu-path "<Image>/Filters/Artistic") + (icon icon-name -1 "") + "RGB*, GRAY*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "mask-radius" "Photocopy mask radius (radius of pixel neighborhood)") + (proc-arg 3 "sharpness" "Sharpness (detail level) (0.0 - 1.0)") + (proc-arg 3 "pct-black" "Percentage of darkened pixels to set to black (0.0 - 1.0)") + (proc-arg 3 "pct-white" "Percentage of non-darkened pixels left white (0.0 - 1.0)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/pagecurl/pagecurl" 1619534562 + (proc-def "plug-in-pagecurl" 1 + "Curl up one of the image corners" + "This plug-in creates a pagecurl-effect." + "Federico Mena Quintero and Simon Budig" + "Federico Mena Quintero and Simon Budig" + "July 2004, 1.0" + "_Pagecurl..." + 1 + (menu-path "<Image>/Filters/Distorts") + (icon icon-name -1 "") + "RGB*, GRAY*" + 7 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "colors" "FG- and BG-Color (0), Current gradient (1), Current gradient reversed (2)") + (proc-arg 0 "edge" "Edge to curl (1-4, clockwise, starting in the lower right edge)") + (proc-arg 0 "orientation" "Vertical (0), Horizontal (1)") + (proc-arg 0 "shade" "Shade the region under the curl (1) or not (0)") + (proc-arg 14 "curl-layer" "The new layer with the curl."))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/nl-filter/nl-filter" 1619534562 + (proc-def "plug-in-nlfilt" 1 + "Nonlinear swiss army knife filter" + "This is the pnmnlfilt, in gimp's clothing. See the pnmnlfilt manpage for details." + "Graeme W. Gill, gimp 0.99 plug-in by Eric L. Hernes" + "Graeme W. Gill, Eric L. Hernes" + "1997" + "_NL Filter..." + 1 + (menu-path "<Image>/Filters/Enhance") + (icon icon-name -1 "") + "RGB,GRAY" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "img" "The Image to Filter") + (proc-arg 16 "drw" "The Drawable") + (proc-arg 3 "alpha" "The amount of the filter to apply") + (proc-arg 3 "radius" "The filter radius") + (proc-arg 0 "filter" "The Filter to Run, 0 - alpha trimmed mean; 1 - optimal estimation (alpha controls noise variance); 2 - edge enhancement"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/metadata-viewer/metadata-viewer" 1619534562 + (proc-def "plug-in-metadata-viewer" 1 + "View metadata (Exif, IPTC, XMP)" + "View metadata information attached to the current image. This can include Exif, IPTC and/or XMP information." + "Hartmut Kuhse, Michael Natterer, Ben Touchette" + "Hartmut Kuhse, Michael Natterer, Ben Touchette" + "2013, 2017" + "_View Metadata" + 1 + (menu-path "<Image>/Image/Metadata") + (icon icon-name -1 "") + "*" + 2 0 + (proc-arg 0 "run-mode" "Run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/metadata-editor/metadata-editor" 1619534562 + (proc-def "plug-in-metadata-editor" 1 + "Edit metadata (IPTC, EXIF, XMP)" + "Edit metadata information attached to the current image. Some or all of this metadata will be saved in the file, depending on the output file format." + "Ben Touchette" + "Ben Touchette" + "2017" + "_Edit Metadata" + 1 + (menu-path "<Image>/Image/Metadata") + (icon icon-name -1 "") + "*" + 2 0 + (proc-arg 0 "run-mode" "Run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/max-rgb/max-rgb" 1619534562 + (proc-def "plug-in-max-rgb" 1 + "Reduce image to pure red, green, and blue" + "There's no help yet." + "Shuji Narazaki (narazaki@InetQ.or.jp)" + "Shuji Narazaki" + "May 2000" + "Maxim_um RGB..." + 0 + (icon icon-name -1 "") + "RGB*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (not used)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "max-p" "{ MINIMIZE (0), MAXIMIZE (1) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/map-object/map-object" 1619534562 + (proc-def "plug-in-map-object" 1 + "Map the image to an object (plane, sphere, box or cylinder)" + "No help yet" + "Tom Bech & Federico Mena Quintero" + "Tom Bech & Federico Mena Quintero" + "Version 1.2.0, July 16 1998" + "Map _Object..." + 1 + (menu-path "<Image>/Filters/Map") + (icon icon-name -1 "") + "RGB*" + 49 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "maptype" "Type of mapping (0=plane,1=sphere,2=box,3=cylinder)") + (proc-arg 3 "viewpoint-x" "Position of viewpoint (x,y,z)") + (proc-arg 3 "viewpoint-y" "Position of viewpoint (x,y,z)") + (proc-arg 3 "viewpoint-z" "Position of viewpoint (x,y,z)") + (proc-arg 3 "position-x" "Object position (x,y,z)") + (proc-arg 3 "position-y" "Object position (x,y,z)") + (proc-arg 3 "position-z" "Object position (x,y,z)") + (proc-arg 3 "firstaxis-x" "First axis of object [x,y,z]") + (proc-arg 3 "firstaxis-y" "First axis of object [x,y,z]") + (proc-arg 3 "firstaxis-z" "First axis of object [x,y,z]") + (proc-arg 3 "secondaxis-x" "Second axis of object [x,y,z]") + (proc-arg 3 "secondaxis-y" "Second axis of object [x,y,z]") + (proc-arg 3 "secondaxis-z" "Second axis of object [x,y,z]") + (proc-arg 3 "rotationangle-x" "Rotation about X axis in degrees") + (proc-arg 3 "rotationangle-y" "Rotation about Y axis in degrees") + (proc-arg 3 "rotationangle-z" "Rotation about Z axis in degrees") + (proc-arg 0 "lighttype" "Type of lightsource (0=point,1=directional,2=none)") + (proc-arg 10 "lightcolor" "Lightsource color (r,g,b)") + (proc-arg 3 "lightposition-x" "Lightsource position (x,y,z)") + (proc-arg 3 "lightposition-y" "Lightsource position (x,y,z)") + (proc-arg 3 "lightposition-z" "Lightsource position (x,y,z)") + (proc-arg 3 "lightdirection-x" "Lightsource direction [x,y,z]") + (proc-arg 3 "lightdirection-y" "Lightsource direction [x,y,z]") + (proc-arg 3 "lightdirection-z" "Lightsource direction [x,y,z]") + (proc-arg 3 "ambient-intensity" "Material ambient intensity (0..1)") + (proc-arg 3 "diffuse-intensity" "Material diffuse intensity (0..1)") + (proc-arg 3 "diffuse-reflectivity" "Material diffuse reflectivity (0..1)") + (proc-arg 3 "specular-reflectivity" "Material specular reflectivity (0..1)") + (proc-arg 3 "highlight" "Material highlight (0..->), note: it's exponential") + (proc-arg 0 "antialiasing" "Apply antialiasing (TRUE/FALSE)") + (proc-arg 0 "tiled" "Tile source image (TRUE/FALSE)") + (proc-arg 0 "newimage" "Create a new image (TRUE/FALSE)") + (proc-arg 0 "transparentbackground" "Make background transparent (TRUE/FALSE)") + (proc-arg 3 "radius" "Sphere/cylinder radius (only used when maptype=1 or 3)") + (proc-arg 3 "x-scale" "Box x size (0..->)") + (proc-arg 3 "y-scale" "Box y size (0..->)") + (proc-arg 3 "z-scale" "Box z size (0..->)") + (proc-arg 3 "cylinder-length" "Cylinder length (0..->)") + (proc-arg 16 "box-front-drawable" "Box front face (set these to -1 if not used)") + (proc-arg 16 "box-back-drawable" "Box back face") + (proc-arg 16 "box-top-drawable" "Box top face") + (proc-arg 16 "box-bottom-drawable" "Box bottom face") + (proc-arg 16 "box-left-drawable" "Box left face") + (proc-arg 16 "box-right-drawable" "Box right face") + (proc-arg 16 "cyl-top-drawable" "Cylinder top face (set these to -1 if not used)") + (proc-arg 16 "cyl-bottom-drawable" "Cylinder bottom face"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/mail/mail" 1619534562 + (proc-def "plug-in-mail-image" 1 + "Send the image by email" + "The preferred email composer is used to send emails and must be properly configured." + "Adrian Likins, Reagan Blundell" + "Adrian Likins, Reagan Blundell, Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "Send by E_mail..." + 1 + (menu-path "<Image>/File/Send") + (icon icon-name -1 "gtk-edit") + "*" + 9 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "to-address" "The email address to send to") + (proc-arg 4 "from-address" "The email address for the From: field") + (proc-arg 4 "subject" "The subject") + (proc-arg 4 "comment" "The Comment") + (proc-arg 0 "encapsulation" "ignored"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/lighting/lighting" 1619534562 + (proc-def "plug-in-lighting" 1 + "Apply various lighting effects to an image" + "No help yet" + "Tom Bech & Federico Mena Quintero" + "Tom Bech & Federico Mena Quintero" + "Version 0.2.0, March 15 1998" + "_Lighting Effects..." + 1 + (menu-path "<Image>/Filters/Light and Shadow/Light") + (icon icon-name -1 "") + "RGB*" + 24 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 16 "bumpdrawable" "Bumpmap drawable (set to 0 if disabled)") + (proc-arg 16 "envdrawable" "Environmentmap drawable (set to 0 if disabled)") + (proc-arg 0 "dobumpmap" "Enable bumpmapping (TRUE/FALSE)") + (proc-arg 0 "doenvmap" "Enable envmapping (TRUE/FALSE)") + (proc-arg 0 "bumpmaptype" "Type of mapping (0=linear,1=log, 2=sinusoidal, 3=spherical)") + (proc-arg 0 "lighttype" "Type of lightsource (0=point,1=directional,3=spot,4=none)") + (proc-arg 10 "lightcolor" "Lightsource color (r,g,b)") + (proc-arg 3 "lightposition-x" "Lightsource position (x,y,z)") + (proc-arg 3 "lightposition-y" "Lightsource position (x,y,z)") + (proc-arg 3 "lightposition-z" "Lightsource position (x,y,z)") + (proc-arg 3 "lightdirection-x" "Lightsource direction [x,y,z]") + (proc-arg 3 "lightdirection-y" "Lightsource direction [x,y,z]") + (proc-arg 3 "lightdirection-z" "Lightsource direction [x,y,z]") + (proc-arg 3 "ambient-intensity" "Material ambient intensity (0..1)") + (proc-arg 3 "diffuse-intensity" "Material diffuse intensity (0..1)") + (proc-arg 3 "diffuse-reflectivity" "Material diffuse reflectivity (0..1)") + (proc-arg 3 "specular-reflectivity" "Material specular reflectivity (0..1)") + (proc-arg 3 "highlight" "Material highlight (0..->), note: it's exponential") + (proc-arg 0 "antialiasing" "Apply antialiasing (TRUE/FALSE)") + (proc-arg 0 "newimage" "Create a new image (TRUE/FALSE)") + (proc-arg 0 "transparentbackground" "Make background transparent (TRUE/FALSE)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/jigsaw/jigsaw" 1619534562 + (proc-def "plug-in-jigsaw" 1 + "Add a jigsaw-puzzle pattern to the image" + "Jigsaw puzzle look" + "Nigel Wetten" + "Nigel Wetten" + "May 2000" + "_Jigsaw..." + 1 + (menu-path "<Image>/Filters/Render/Pattern") + (icon icon-name -1 "") + "RGB*" + 8 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "x" "Number of tiles across > 0") + (proc-arg 0 "y" "Number of tiles down > 0") + (proc-arg 0 "style" "The style/shape of the jigsaw puzzle { 0, 1 }") + (proc-arg 0 "blend-lines" "Number of lines for shading bevels >= 0") + (proc-arg 3 "blend-amount" "The power of the light highlights 0 =< 5"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/imagemap/imagemap" 1619534562 + (proc-def "plug-in-imagemap" 1 + "Create a clickable imagemap" + "" + "Maurits Rijk" + "Maurits Rijk" + "1998-2005" + "_Image Map..." + 1 + (menu-path "<Image>/Filters/Web") + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/ifs-compose/ifs-compose" 1619534562 + (proc-def "plug-in-ifscompose" 1 + "Create an Iterated Function System (IFS) fractal" + "Interactively create an Iterated Function System fractal. Use the window on the upper left to adjust the component transformations of the fractal. The operation that is performed is selected by the buttons underneath the window, or from a menu popped up by the right mouse button. The fractal will be rendered with a transparent background if the current image has an alpha channel." + "Owen Taylor" + "Owen Taylor" + "1997" + "_IFS Fractal..." + 1 + (menu-path "<Image>/Filters/Render/Fractals") + (icon icon-name -1 "") + "*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/hot/hot" 1619534562 + (proc-def "plug-in-hot" 1 + "Find and fix pixels that may be unsafely bright" + "hot scans an image for pixels that will give unsave values of chrominance or composite signale amplitude when encoded into an NTSC or PAL signal. Three actions can be performed on these ``hot'' pixels. (0) reduce luminance, (1) reduce saturation, or (2) Blacken." + "Eric L. Hernes, Alan Wm Paeth" + "Eric L. Hernes" + "1997" + "_Hot..." + 1 + (menu-path "<Image>/Colors/Modify") + (icon icon-name -1 "") + "RGB" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "The Image") + (proc-arg 16 "drawable" "The Drawable") + (proc-arg 0 "mode" "Mode { NTSC (0), PAL (1) }") + (proc-arg 0 "action" "The action to perform") + (proc-arg 0 "new-layer" "Create a new layer { TRUE, FALSE }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/help/help" 1619534562 + (proc-def "extension-gimp-help" 2 + "" + "" + "Sven Neumann <sven@gimp.org>, Michael Natterer <mitch@gimp.org>, Henrik Brix Andersen <brix@gimp.org>" + "Sven Neumann, Michael Natterer & Henrik Brix Andersen" + "1999-2008" + "" + 0 + (icon icon-name -1 "") + "" + 4 0 + (proc-arg 0 "num-domain-names" "") + (proc-arg 9 "domain-names" "") + (proc-arg 0 "num-domain-uris" "") + (proc-arg 9 "domain-uris" ""))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/guillotine/guillotine" 1619534562 + (proc-def "plug-in-guillotine" 1 + "Slice the image into subimages using guides" + "This function takes an image and slices it along its guides, creating new images. The original image is not modified." + "Adam D. Moss (adam@foxbox.org)" + "Adam D. Moss (adam@foxbox.org)" + "1998" + "Slice Using G_uides" + 1 + (menu-path "<Image>/Image/Crop") + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 3 2 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)") + (proc-arg 0 "image-count" "Number of images created") + (proc-arg 5 "image-ids" "Output images"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/grid/grid" 1619534562 + (proc-def "plug-in-grid" 1 + "Draw a grid on the image" + "Draws a grid using the specified colors. The grid origin is the upper left corner." + "Tim Newsome" + "Tim Newsome, Sven Neumann, Tom Rathborne, TC" + "1997 - 2000" + "_Grid (legacy)..." + 1 + (menu-path "<Image>/Filters/Render/Pattern") + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 18 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "hwidth" "Horizontal Width (>= 0)") + (proc-arg 0 "hspace" "Horizontal Spacing (>= 1)") + (proc-arg 0 "hoffset" "Horizontal Offset (>= 0)") + (proc-arg 10 "hcolor" "Horizontal Colour") + (proc-arg 2 "hopacity" "Horizontal Opacity (0...255)") + (proc-arg 0 "vwidth" "Vertical Width (>= 0)") + (proc-arg 0 "vspace" "Vertical Spacing (>= 1)") + (proc-arg 0 "voffset" "Vertical Offset (>= 0)") + (proc-arg 10 "vcolor" "Vertical Colour") + (proc-arg 2 "vopacity" "Vertical Opacity (0...255)") + (proc-arg 0 "iwidth" "Intersection Width (>= 0)") + (proc-arg 0 "ispace" "Intersection Spacing (>= 0)") + (proc-arg 0 "ioffset" "Intersection Offset (>= 0)") + (proc-arg 10 "icolor" "Intersection Colour") + (proc-arg 2 "iopacity" "Intersection Opacity (0...255)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/gradient-map/gradient-map" 1619534562 + (proc-def "plug-in-gradmap" 1 + "Recolor the image using colors from the active gradient" + "This plug-in maps the contents of the specified drawable with active gradient. It calculates luminosity of each pixel and replaces the pixel by the sample of active gradient at the position proportional to that luminosity. Complete black pixel becomes the leftmost color of the gradient, and complete white becomes the rightmost. Works on both Grayscale and RGB image with/without alpha channel." + "Eiichi Takamori" + "Eiichi Takamori" + "1997" + "_Gradient Map" + 1 + (menu-path "<Image>/Colors/Map") + (icon icon-name -1 "") + "RGB*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable")) + (proc-def "plug-in-palettemap" 1 + "Recolor the image using colors from the active palette" + "This plug-in maps the contents of the specified drawable with the active palette. It calculates luminosity of each pixel and replaces the pixel by the palette sample at the corresponding index. A complete black pixel becomes the lowest palette entry, and complete white becomes the highest. Works on both Grayscale and RGB image with/without alpha channel." + "Bill Skaggs" + "Bill Skaggs" + "2004" + "_Palette Map" + 1 + (menu-path "<Image>/Colors/Map") + (icon icon-name -1 "") + "RGB*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/gradient-flare/gradient-flare" 1619534562 + (proc-def "plug-in-gflare" 1 + "Produce a lense flare effect using gradients" + "This plug-in produces a lense flare effect using custom gradients. In interactive call, the user can edit his/her own favorite lense flare (GFlare) and render it. Edited gflare is saved automatically to the folder in gflare-path, if it is defined in gimprc. In non-interactive call, the user can only render one of GFlare which has been stored in gflare-path already." + "Eiichi Takamori" + "Eiichi Takamori, and a lot of GIMP people" + "1997" + "_Gradient Flare..." + 1 + (menu-path "<Image>/Filters/Light and Shadow/Light") + (icon icon-name -1 "") + "RGB*, GRAY*" + 14 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "gflare-name" "The name of GFlare") + (proc-arg 0 "xcenter" "X coordinate of center of GFlare") + (proc-arg 0 "ycenter" "Y coordinate of center of GFlare") + (proc-arg 3 "radius" "Radius of GFlare (pixel)") + (proc-arg 3 "rotation" "Rotation of GFlare (degree)") + (proc-arg 3 "hue" "Hue rotation of GFlare (degree)") + (proc-arg 3 "vangle" "Vector angle for second flares (degree)") + (proc-arg 3 "vlength" "Vector length for second flares (percentage to Radius)") + (proc-arg 0 "use-asupsample" "Whether it uses or not adaptive supersampling while rendering (boolean)") + (proc-arg 0 "asupsample-max-depth" "Max depth for adaptive supersampling") + (proc-arg 3 "asupsample-threshold" "Threshold for adaptive supersampling"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/goat-exercise/goat-exercise" 1619534562 + (proc-def "plug-in-goat-exercise" 1 + "Exercise a goat" + "takes a goat for a walk" + "Øyvind Kolås <pippin@gimp.org>" + "Øyvind Kolås <pippin@gimp.org>" + "21march 2012" + "Goat-e_xercise" + 1 + (menu-path "<Image>/Filters") + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/gimpressionist/gimpressionist" 1619534562 + (proc-def "plug-in-gimpressionist" 1 + "Performs various artistic operations" + "Performs various artistic operations on an image" + "Vidar Madsen <vidar@prosalg.no>" + "Vidar Madsen" + "v1.0, November 2003" + "_GIMPressionist..." + 1 + (menu-path "<Image>/Filters/Artistic") + (icon icon-name -1 "") + "RGB*, GRAY*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "preset" "Preset Name"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/gfig/gfig" 1619534562 + (proc-def "plug-in-gfig" 1 + "Create geometric shapes" + "Draw Vector Graphics and paint them onto your images. Gfig allows you to draw many types of objects including Lines, Circles, Ellipses, Curves, Polygons, pointed stars, Bezier curves, and Spirals. Objects can be painted using Brushes or other toolsor filled using colors or patterns. Gfig objects can also be used to create selections. " + "Andy Thomas" + "Andy Thomas" + "1997" + "_Gfig..." + 1 + (menu-path "<Image>/Filters/Render") + (icon icon-name -1 "") + "RGB*, GRAY*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "dummy" "dummy"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/fractal-trace/fractal-trace" 1619534562 + (proc-def "plug-in-fractal-trace" 1 + "Transform image with the Mandelbrot Fractal" + "transform image with the Mandelbrot Fractal" + "Hirotsuna Mizuno <s1041150@u-aizu.ac.jp>" + "Copyright (C) 1997 Hirotsuna Mizuno" + "v0.4 test version (Dec. 25 1997)" + "_Fractal Trace (legacy)..." + 1 + (menu-path "<Image>/Filters/Map") + (icon icon-name -1 "") + "RGB*, GRAY*" + 9 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "xmin" "xmin fractal image delimiter") + (proc-arg 3 "xmax" "xmax fractal image delimiter") + (proc-arg 3 "ymin" "ymin fractal image delimiter") + (proc-arg 3 "ymax" "ymax fractal image delimiter") + (proc-arg 0 "depth" "Trace depth") + (proc-arg 0 "outside-type" "Outside type { WRAP (0), TRANS (1), BLACK (2), WHITE (3) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/fractal-explorer/fractal-explorer" 1619534562 + (proc-def "plug-in-fractalexplorer" 1 + "Render fractal art" + "No help yet." + "Daniel Cotting (cotting@multimania.com, www.multimania.com/cotting)" + "Daniel Cotting (cotting@multimania.com, www.multimania.com/cotting)" + "December, 1998" + "_Fractal Explorer..." + 1 + (menu-path "<Image>/Filters/Render/Fractals") + (icon icon-name -1 "") + "RGB*, GRAY*" + 22 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 2 "fractaltype" "0: Mandelbrot; 1: Julia; 2: Barnsley 1; 3: Barnsley 2; 4: Barnsley 3; 5: Spider; 6: ManOWar; 7: Lambda; 8: Sierpinski") + (proc-arg 3 "xmin" "xmin fractal image delimiter") + (proc-arg 3 "xmax" "xmax fractal image delimiter") + (proc-arg 3 "ymin" "ymin fractal image delimiter") + (proc-arg 3 "ymax" "ymax fractal image delimiter") + (proc-arg 3 "iter" "Iteration value") + (proc-arg 3 "cx" "cx value ( only Julia)") + (proc-arg 3 "cy" "cy value ( only Julia)") + (proc-arg 2 "colormode" "0: Apply colormap as specified by the parameters below; 1: Apply active gradient to final image") + (proc-arg 3 "redstretch" "Red stretching factor") + (proc-arg 3 "greenstretch" "Green stretching factor") + (proc-arg 3 "bluestretch" "Blue stretching factor") + (proc-arg 2 "redmode" "Red application mode (0:SIN;1:COS;2:NONE)") + (proc-arg 2 "greenmode" "Green application mode (0:SIN;1:COS;2:NONE)") + (proc-arg 2 "bluemode" "Blue application mode (0:SIN;1:COS;2:NONE)") + (proc-arg 2 "redinvert" "Red inversion mode (1: enabled; 0: disabled)") + (proc-arg 2 "greeninvert" "Green inversion mode (1: enabled; 0: disabled)") + (proc-arg 2 "blueinvert" "Green inversion mode (1: enabled; 0: disabled)") + (proc-arg 0 "ncolors" "Number of Colors for mapping (2<=ncolors<=8192)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/flame/flame" 1619534562 + (proc-def "plug-in-flame" 1 + "Create cosmic recursive fractal flames" + "Create cosmic recursive fractal flames" + "Scott Draves" + "Scott Draves" + "1997" + "_Flame..." + 1 + (menu-path "<Image>/Filters/Render/Fractals") + (icon icon-name -1 "") + "RGB*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/filter-pack/filter-pack" 1619534562 + (proc-def "plug-in-filter-pack" 1 + "Interactively modify the image colors" + "Interactively modify the image colors." + "Pavel Grinfeld (pavel@ml.com)" + "Pavel Grinfeld (pavel@ml.com)" + "27th March 1997" + "_Filter Pack..." + 0 + (icon icon-name -1 "") + "RGB*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (used for indexed images)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/film/film" 1619534562 + (proc-def "plug-in-film" 1 + "Combine several images on a film strip" + "Compose several images to a roll film" + "Peter Kirchgessner" + "Peter Kirchgessner (peter@kirchgessner.net)" + "1997" + "_Filmstrip..." + 1 + (menu-path "<Image>/Filters/Combine") + (icon icon-name -1 "") + "INDEXED*, GRAY*, RGB*" + 12 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (only used as default image in interactive mode)") + (proc-arg 16 "drawable" "Input drawable (not used)") + (proc-arg 0 "film-height" "Height of film (0: fit to images)") + (proc-arg 10 "film-color" "Color of the film") + (proc-arg 0 "number-start" "Start index for numbering") + (proc-arg 4 "number-font" "Font for drawing numbers") + (proc-arg 10 "number-color" "Color for numbers") + (proc-arg 0 "at-top" "Flag for drawing numbers at top of film") + (proc-arg 0 "at-bottom" "Flag for drawing numbers at bottom of film") + (proc-arg 0 "num-images" "Number of images to be used for film") + (proc-arg 5 "image-ids" "num-images image IDs to be used for film") + (proc-arg 13 "new-image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-xwd/file-xwd" 1619534562 + (proc-def "file-xwd-load" 1 + "Loads files in the XWD (X Window Dump) format" + "Loads files in the XWD (X Window Dump) format. XWD image files are produced by the program xwd. Xwd is an X Window System window dumping utility." + "Peter Kirchgessner" + "Peter Kirchgessner" + "1996" + "X window dump" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xwd") + (magics "4,long,0x00000007") + (mime-types "image/x-xwindowdump")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-xwd-save" 1 + "Exports files in the XWD (X Window Dump) format" + "XWD exporting handles all image types except those with alpha channels." + "Peter Kirchgessner" + "Peter Kirchgessner" + "1996" + "X window dump" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xwd") + (mime-types "image/x-xwindowdump") + (handles-uri)) + "RGB, GRAY, INDEXED" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-xpm/file-xpm" 1619534562 + (proc-def "file-xpm-load" 1 + "Load files in XPM (X11 Pixmap) format." + "Load files in XPM (X11 Pixmap) format. XPM is a portable image format designed to be included in C source code. XLib provides utility functions to read this format. Newer code should however be using gdk-pixbuf-csource instead. XPM supports colored images, unlike the XBM format which XPM was designed to replace." + "Spencer Kimball & Peter Mattis & Ray Lehtiniemi" + "Spencer Kimball & Peter Mattis" + "1997" + "X PixMap image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xpm") + (magics "0, string,/*\\040XPM\\040*/") + (mime-types "image/x-xpixmap")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-xpm-save" 1 + "Export files in XPM (X11 Pixmap) format." + "Export files in XPM (X11 Pixmap) format. XPM is a portable image format designed to be included in C source code. XLib provides utility functions to read this format. Newer code should however be using gdk-pixbuf-csource instead. XPM supports colored images, unlike the XBM format which XPM was designed to replace." + "Spencer Kimball & Peter Mattis & Ray Lehtiniemi & Nathan Summers" + "Spencer Kimball & Peter Mattis" + "1997" + "X PixMap image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xpm") + (mime-types "image/x-xpixmap")) + "RGB*, GRAY*, INDEXED*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "threshold" "Alpha threshold (0-255)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-xmc/file-xmc" 1619534562 + (proc-def "file-xmc-load" 1 + "Loads files of X11 Mouse Cursor file format" + "This plug-in loads X11 Mouse Cursor (XMC) files." + "Takeshi Matsuyama <tksmashiw@gmail.com>" + "Takeshi Matsuyama" + "26 May 2009" + "X11 Mouse Cursor" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xmc") + (magics "0,string,Xcur") + (mime-types "image/x-xcursor") + (thumb-loader "file-xmc-load-thumb")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-xmc-load-thumb" 1 + "Loads only first frame of X11 Mouse Cursor's animation sequence which nominal size is the closest of thumb-size to be used as a thumbnail" + "" + "Takeshi Matsuyama <tksmashiw@gmail.com>" + "Takeshi Matsuyama" + "26 May 2009" + "" + 0 + (icon icon-name -1 "") + "" + 2 5 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "The width of image") + (proc-arg 0 "image-height" "The height of image") + (proc-arg 0 "image-type" "The color type of image") + (proc-arg 0 "image-num-layers" "The number of layeres")) + (proc-def "file-xmc-save" 1 + "Exports files of X11 cursor file" + "This plug-in exports X11 Mouse Cursor (XMC) files" + "Takeshi Matsuyama <tksmashiw@gmail.com>" + "Takeshi Matsuyama" + "26 May 2009" + "X11 Mouse Cursor" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xmc") + (mime-types "image/x-xcursor")) + "RGBA" + 15 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "x-hot" "X-coordinate of hot spot") + (proc-arg 0 "y-hot" "Y-coordinate of hot spot\nUse (-1, -1) to keep original hot spot.") + (proc-arg 0 "crop" "Auto-crop or not") + (proc-arg 0 "size" "Default nominal size") + (proc-arg 0 "size-replace" "Replace existent size or not.") + (proc-arg 0 "delay" "Default delay") + (proc-arg 0 "delay-replace" "Replace existent delay or not.") + (proc-arg 4 "copyright" "Copyright information.") + (proc-arg 4 "license" "License information.") + (proc-arg 4 "other" "Other comment.(taken from \"gimp-comment\" parasite)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-xbm/file-xbm" 1619534562 + (proc-def "file-xbm-load" 1 + "Load a file in X10 or X11 bitmap (XBM) file format" + "Load a file in X10 or X11 bitmap (XBM) file format. XBM is a lossless format for flat black-and-white (two color indexed) images." + "Gordon Matzigkeit" + "Gordon Matzigkeit" + "1998" + "X BitMap image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xbm,icon,bitmap") + (mime-types "image/x-xbitmap")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-xbm-save" 1 + "Export a file in X10 or X11 bitmap (XBM) file format" + "Export a file in X10 or X11 bitmap (XBM) file format. XBM is a lossless format for flat black-and-white (two color indexed) images." + "Gordon Matzigkeit" + "Gordon Matzigkeit" + "1998" + "X BitMap image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xbm,icon,bitmap") + (mime-types "image/x-xbitmap") + (handles-uri)) + "INDEXED" + 12 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 4 "comment" "Image description (maximum 72 bytes)") + (proc-arg 0 "x10" "Export in X10 format") + (proc-arg 0 "x-hot" "X coordinate of hotspot") + (proc-arg 0 "y-hot" "Y coordinate of hotspot") + (proc-arg 4 "prefix" "Identifier prefix [determined from filename]") + (proc-arg 0 "write-mask" "(0 = ignore, 1 = save as extra file)") + (proc-arg 4 "mask-extension" "Extension of the mask file"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-wmf/file-wmf" 1619534562 + (proc-def "file-wmf-load" 1 + "Loads files in the WMF file format" + "Loads files in the WMF file format" + "Dom Lachowicz <cinamod@hotmail.com>" + "Dom Lachowicz <cinamod@hotmail.com>" + "(c) 2003 - Version 0.3.0" + "Microsoft WMF file" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "wmf,apm") + (magics "0,string,\\327\\315\\306\\232,0,string,\\1\\0\\11\\0") + (mime-types "image/x-wmf") + (thumb-loader "file-wmf-load-thumb")) + "" + 6 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 3 "resolution" "Resolution to use for rendering the WMF (defaults to 72 dpi") + (proc-arg 0 "width" "Width (in pixels) to load the WMF in, 0 for original width") + (proc-arg 0 "height" "Height (in pixels) to load the WMF in, 0 for original height") + (proc-arg 13 "image" "Output image")) + (proc-def "file-wmf-load-thumb" 1 + "Loads a small preview from a WMF image" + "" + "Dom Lachowicz <cinamod@hotmail.com>" + "Dom Lachowicz <cinamod@hotmail.com>" + "(c) 2003 - Version 0.3.0" + "" + 0 + (icon icon-name -1 "") + "" + 2 3 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-webp/file-webp" 1619534562 + (proc-def "file-webp-load" 1 + "Loads images in the WebP file format" + "Loads images in the WebP file format" + "Nathan Osman, Ben Touchette" + "(C) 2015-2016 Nathan Osman, (C) 2016 Ben Touchette" + "2015,2016" + "WebP image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "webp") + (magics "8,string,WEBP") + (mime-types "image/webp")) + "" + 3 1 + (proc-arg 0 "run-mode" "Interactive, non-interactive") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-webp-save" 1 + "Saves files in the WebP image format" + "Saves files in the WebP image format" + "Nathan Osman, Ben Touchette" + "(C) 2015-2016 Nathan Osman, (C) 2016 Ben Touchette" + "2015,2016" + "WebP image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "webp") + (mime-types "image/webp")) + "RGB*, GRAY*, INDEXED*" + 18 0 + (proc-arg 0 "run-mode" "Interactive, non-interactive") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image to") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "preset" "preset (Default=0, Picture=1, Photo=2, Drawing=3, Icon=4, Text=5)") + (proc-arg 0 "lossless" "Use lossless encoding (0/1)") + (proc-arg 3 "quality" "Quality of the image (0 <= quality <= 100)") + (proc-arg 3 "alpha-quality" "Quality of the image's alpha channel (0 <= alpha-quality <= 100)") + (proc-arg 0 "animation" "Use layers for animation (0/1)") + (proc-arg 0 "anim-loop" "Loop animation infinitely (0/1)") + (proc-arg 0 "minimize-size" "Minimize animation size (0/1)") + (proc-arg 0 "kf-distance" "Maximum distance between key-frames (>=0)") + (proc-arg 0 "exif" "Toggle saving exif data (0/1)") + (proc-arg 0 "iptc" "Toggle saving iptc data (0/1)") + (proc-arg 0 "xmp" "Toggle saving xmp data (0/1)") + (proc-arg 0 "delay" "Delay to use when timestamps are not available or forced") + (proc-arg 0 "force-delay" "Force delay on all frames"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-tiff/file-tiff" 1619534562 + (proc-def "file-tiff-load" 1 + "loads files of the tiff file format" + "FIXME: write help for tiff_load" + "Spencer Kimball, Peter Mattis & Nick Lamb" + "Nick Lamb <njl195@zepler.org.uk>" + "1995-1996,1998-2003" + "TIFF image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "tif,tiff") + (magics "0,string,II*\\0,0,string,MM\\0*") + (mime-types "image/tiff") + (handles-uri)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-tiff-save" 1 + "saves files in the tiff file format" + "Saves files in the Tagged Image File Format. The value for the saved comment is taken from the 'gimp-comment' parasite." + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1995-1996,2000-2003" + "TIFF image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "tif,tiff") + (mime-types "image/tiff") + (handles-uri)) + "RGB*, GRAY*, INDEXED*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 0 "compression" "Compression type: { NONE (0), LZW (1), PACKBITS (2), DEFLATE (3), JPEG (4), CCITT G3 Fax (5), CCITT G4 Fax (6) }")) + (proc-def "file-tiff-save2" 1 + "saves files in the tiff file format" + "Saves files in the Tagged Image File Format. The value for the saved comment is taken from the 'gimp-comment' parasite." + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1995-1996,2000-2003" + "TIFF image" + 0 + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 0 "compression" "Compression type: { NONE (0), LZW (1), PACKBITS (2), DEFLATE (3), JPEG (4), CCITT G3 Fax (5), CCITT G4 Fax (6) }") + (proc-arg 0 "save-transp-pixels" "Keep the color data masked by an alpha channel intact (do not store premultiplied components)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-tga/file-tga" 1619534562 + (proc-def "file-tga-load" 1 + "Loads files of Targa file format" + "FIXME: write help for tga_load" + "Raphael FRANCOIS, Gordon Matzigkeit" + "Raphael FRANCOIS, Gordon Matzigkeit" + "1997,2000,2007" + "TarGA image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "tga,vda,icb,vst") + (magics "-18&,string,TRUEVISION-XFILE.,-1,byte,0") + (mime-types "image/x-tga")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-tga-save" 1 + "exports files in the Targa file format" + "FIXME: write help for tga_save" + "Raphael FRANCOIS, Gordon Matzigkeit" + "Raphael FRANCOIS, Gordon Matzigkeit" + "1997,2000" + "TarGA image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "tga") + (mime-types "image/x-tga")) + "RGB*, GRAY*, INDEXED*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "rle" "Use RLE compression") + (proc-arg 0 "origin" "Image origin (0 = top-left, 1 = bottom-left)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-svg/file-svg" 1619534562 + (proc-def "file-svg-load" 1 + "Loads files in the SVG file format" + "Renders SVG files to raster graphics using librsvg." + "Dom Lachowicz, Sven Neumann" + "Dom Lachowicz <cinamod@hotmail.com>" + "2.5.0" + "SVG image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "svg") + (magics "0,string,<?xml,0,string,<svg") + (mime-types "image/svg+xml") + (thumb-loader "file-svg-load-thumb")) + "" + 7 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 3 "resolution" "Resolution to use for rendering the SVG (defaults to 90 dpi)") + (proc-arg 0 "width" "Width (in pixels) to load the SVG in. (0 for original width, a negative width to specify a maximum width)") + (proc-arg 0 "height" "Height (in pixels) to load the SVG in. (0 for original height, a negative width to specify a maximum height)") + (proc-arg 0 "paths" "Whether to not import paths (0), import paths individually (1) or merge all imported paths (2)") + (proc-arg 13 "image" "Output image")) + (proc-def "file-svg-load-thumb" 1 + "Generates a thumbnail of an SVG image" + "Renders a thumbnail of an SVG file using librsvg." + "Dom Lachowicz, Sven Neumann" + "Dom Lachowicz <cinamod@hotmail.com>" + "2.5.0" + "" + 0 + (icon icon-name -1 "") + "" + 2 3 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-sunras/file-sunras" 1619534562 + (proc-def "file-sunras-load" 1 + "load file of the SunRaster file format" + "load file of the SunRaster file format" + "Peter Kirchgessner" + "Peter Kirchgessner" + "1996" + "SUN Rasterfile image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "im1,im8,im24,im32,rs,ras") + (magics "0,long,0x59a66a95") + (mime-types "image/x-sun-raster")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-sunras-save" 1 + "export file in the SunRaster file format" + "SUNRAS exporting handles all image types except those with alpha channels." + "Peter Kirchgessner" + "Peter Kirchgessner" + "1996" + "SUN Rasterfile image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "im1,im8,im24,im32,rs,ras") + (mime-types "image/x-sun-raster")) + "RGB, GRAY, INDEXED" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "rle" "Specify non-zero for rle output, zero for standard output"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-sgi/file-sgi" 1619534562 + (proc-def "file-sgi-load" 1 + "Loads files in SGI image file format" + "This plug-in loads SGI image files." + "Michael Sweet <mike@easysw.com>" + "Copyright 1997-1998 by Michael Sweet" + "1.1.1 - 17 May 1998" + "Silicon Graphics IRIS image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "sgi,rgb,rgba,bw,icon") + (magics "0,short,474") + (mime-types "image/x-sgi")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-sgi-save" 1 + "Exports files in SGI image file format" + "This plug-in exports SGI image files." + "Michael Sweet <mike@easysw.com>" + "Copyright 1997-1998 by Michael Sweet" + "1.1.1 - 17 May 1998" + "Silicon Graphics IRIS image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "sgi,rgb,rgba,bw,icon") + (mime-types "image/x-sgi")) + "RGB*, GRAY*, INDEXED*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "compression" "Compression level (0 = none, 1 = RLE, 2 = ARLE)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-raw-placeholder/file-raw-placeholder" 1619534562 + (proc-def "file-raw-placeholder-canon-load" 1 + "Load files in the Canon raw formats via raw-placeholder" + "This plug-in loads files in Canon's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Canon" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "cr2,crw,cr3") + (magics "0,string,II*\\0\\020\\0\\0\\0CR,0,string,II\\024\\0\\0\\0HEAPCCDR,4,string,ftypcrx ") + (mime-types "image/x-canon-cr2,image/x-canon-crw,image/x-canon-cr3") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-nikon-load" 1 + "Load files in the Nikon raw formats via raw-placeholder" + "This plug-in loads files in Nikon's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Nikon" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "nef,nrw") + (mime-types "image/x-nikon-nef,image/x-nikon-nrw") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-hasselblad-load" 1 + "Load files in the Hasselblad raw formats via raw-placeholder" + "This plug-in loads files in Hasselblad's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Hasselblad" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "3fr,fff") + (mime-types "image/x-hasselblad-3fr,image/x-hasselblad-fff") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-sony-load" 1 + "Load files in the Sony raw formats via raw-placeholder" + "This plug-in loads files in Sony's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Sony" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "arw,srf,sr2") + (mime-types "image/x-sony-arw,image/x-sony-srf,image/x-sony-sr2") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-bay-load" 1 + "Load files in the BAY raw format via raw-placeholder" + "This plug-in loads files in Casio's raw BAY format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Casio BAY" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "bay") + (mime-types "image/x-casio-bay") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-cine-load" 1 + "Load files in the CINE raw format via raw-placeholder" + "This plug-in loads files in Phantom Software's raw CINE format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Phantom Software CINE" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "cine,cin") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-sinar-load" 1 + "Load files in the Sinar raw formats via raw-placeholder" + "This plug-in loads files in Sinar's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Sinar" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "cs1,ia,sti") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-kodak-load" 1 + "Load files in the Kodak raw formats via raw-placeholder" + "This plug-in loads files in Kodak's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Kodak" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "dc2,dcr,kdc,k25,kc2") + (mime-types "image/x-kodak-dc2,image/x-kodak-dcr,image/x-kodak-kdc,image/x-kodak-k25,image/x-kodak-kc2") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-dng-load" 1 + "Load files in the DNG raw format via raw-placeholder" + "This plug-in loads files in the Adobe Digital Negative DNG format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Adobe DNG Digital Negative" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "dng") + (mime-types "image/x-adobe-dng") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-erf-load" 1 + "Load files in the ERF raw format via raw-placeholder" + "This plug-in loads files in Epson's raw ERF format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Epson ERF" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "erf") + (mime-types "image/x-epson-erf") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-phaseone-load" 1 + "Load files in the Phase One raw formats via raw-placeholder" + "This plug-in loads files in Phase One's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Phase One" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "cap,iiq") + (mime-types "image/x-phaseone-cap,image/x-phaseone-iiq") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-minolta-load" 1 + "Load files in the Minolta raw formats via raw-placeholder" + "This plug-in loads files in Minolta's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Minolta" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "mdc,mrw") + (mime-types "image/x-minolta-mdc,image/x-minolta-mrw") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-mef-load" 1 + "Load files in the MEF raw format via raw-placeholder" + "This plug-in loads files in Mamiya's raw MEF format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Mamiya MEF" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "mef") + (mime-types "image/x-mamiya-mef") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-mos-load" 1 + "Load files in the MOS raw format via raw-placeholder" + "This plug-in loads files in Leaf's raw MOS format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Leaf MOS" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "mos") + (mime-types "image/x-leaf-mos") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-orf-load" 1 + "Load files in the ORF raw format via raw-placeholder" + "This plug-in loads files in Olympus' raw ORF format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Olympus ORF" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "orf") + (magics "0,string,IIRO,0,string,MMOR,0,string,IIRS") + (mime-types "image/x-olympus-orf") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-pef-load" 1 + "Load files in the PEF raw format via raw-placeholder" + "This plug-in loads files in Pentax' raw PEF format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Pentax PEF" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "pef,raw") + (mime-types "image/x-pentax-pef,image/x-pentax-raw") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-pxn-load" 1 + "Load files in the PXN raw format via raw-placeholder" + "This plug-in loads files in Logitech's raw PXN format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Logitech PXN" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "pxn") + (mime-types "image/x-pxn") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-qtk-load" 1 + "Load files in the QTK raw format via raw-placeholder" + "This plug-in loads files in Apple's QuickTake QTK raw format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Apple QuickTake QTK" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "qtk") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-raf-load" 1 + "Load files in the RAF raw format via raw-placeholder" + "This plug-in loads files in Fujifilm's raw RAF format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Fujifilm RAF" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "raf") + (magics "0,string,FUJIFILMCCD-RAW") + (mime-types "image/x-fuji-raf") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-panasonic-load" 1 + "Load files in the Panasonic raw formats via raw-placeholder" + "This plug-in loads files in Panasonic's raw formats by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Panasonic" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "raw,rw2") + (magics "0,string,IIU\\0") + (mime-types "image/x-panasonic-raw,image/x-panasonic-rw2") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-rdc-load" 1 + "Load files in the RDC raw format via raw-placeholder" + "This plug-in loads files in Digital Foto Maker's raw RDC format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Digital Foto Maker RDC" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "rdc") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-rwl-load" 1 + "Load files in the RWL raw format via raw-placeholder" + "This plug-in loads files in Leica's raw RWL format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Leica RWL" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "rwl") + (mime-types "image/x-leica-rwl") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-srw-load" 1 + "Load files in the SRW raw format via raw-placeholder" + "This plug-in loads files in Samsung's raw SRW format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Samsung SRW" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "srw") + (mime-types "image/x-samsung-srw") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-x3f-load" 1 + "Load files in the X3F raw format via raw-placeholder" + "This plug-in loads files in Sigma's raw X3F format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Sigma X3F" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "x3f") + (magics "0,string,FOVb") + (mime-types "image/x-sigma-x3f") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-placeholder-ari-load" 1 + "Load files in the ARI raw format via raw-placeholder" + "This plug-in loads files in Arriflex' raw ARI format by calling raw-placeholder." + "Tobias Ellinghaus" + "Tobias Ellinghaus" + "2016" + "Raw Arriflex ARI" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "ari") + (handles-raw)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-raw-data/file-raw-data" 1619534562 + (proc-def "file-raw-load" 1 + "Load raw images, specifying image information" + "Load raw images, specifying image information" + "timecop, pg@futureware.at" + "timecop, pg@futureware.at" + "Aug 2004" + "Raw image data" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "data")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-hgt-load" 1 + "Load HGT data as images" + "Load Digital Elevation Model data in HGT format from the Shuttle Radar Topography Mission as images. Though the output image will be RGB, all colors are grayscale by default and the contrast will be quite low on most earth relief. Therefore You will likely want to remap elevation to colors as a second step, for instance with the \"Gradient Map\" plug-in." + "" + "" + "2017-12-09" + "Digital Elevation Model data" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "hgt")) + "" + 4 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "samplespacing" "The sample spacing of the data. Only supported values are 0, 1 and 3 (respectively auto-detect, SRTM-1 and SRTM-3 data)") + (proc-arg 13 "image" "Output image")) + (proc-def "file-raw-save" 1 + "Dump images to disk in raw format" + "This plug-in dumps images to disk in raw format, using the default settings stored as a parasite." + "timecop, pg@futureware.at" + "timecop, pg@futureware.at" + "Aug 2004" + "Raw image data" + 0 + (icon icon-name -1 "") + "INDEXED, GRAY, RGB, RGBA" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered")) + (proc-def "file-raw-save2" 1 + "Dump images to disk in raw format" + "Dump images to disk in raw format" + "Björn Kautler, Bjoern@Kautler.net" + "Björn Kautler, Bjoern@Kautler.net" + "April 2014" + "Raw image data" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "data,raw")) + "INDEXED, GRAY, RGB, RGBA" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "image-type" "The image type { RAW_RGB (0), RAW_PLANAR (3) }") + (proc-arg 0 "palette-type" "The palette type { RAW_PALETTE_RGB (0), RAW_PALETTE_BGR (1) }")) + (proc-def "file-raw-get-defaults" 1 + "Get the current set of defaults used by the raw image data dump plug-in" + "This procedure returns the current set of defaults stored as a parasite for the raw image data dump plug-in. These defaults are used to seed the UI, by the file_raw_save_defaults procedure, and by gimp_file_save when it detects to use RAW." + "Björn Kautler, Bjoern@Kautler.net" + "Björn Kautler, Bjoern@Kautler.net" + "April 2014" + "" + 0 + (icon icon-name -1 "") + "" + 0 2 + (proc-arg 0 "image-type" "The image type { RAW_RGB (0), RAW_PLANAR (3) }") + (proc-arg 0 "palette-type" "The palette type { RAW_PALETTE_RGB (0), RAW_PALETTE_BGR (1) }")) + (proc-def "file-raw-set-defaults" 1 + "Set the current set of defaults used by the raw image dump plug-in" + "This procedure sets the current set of defaults stored as a parasite for the raw image data dump plug-in. These defaults are used to seed the UI, by the file_raw_save_defaults procedure, and by gimp_file_save when it detects to use RAW." + "Björn Kautler, Bjoern@Kautler.net" + "Björn Kautler, Bjoern@Kautler.net" + "April 2014" + "" + 0 + (icon icon-name -1 "") + "" + 2 0 + (proc-arg 0 "image-type" "The image type { RAW_RGB (0), RAW_PLANAR (3) }") + (proc-arg 0 "palette-type" "The palette type { RAW_PALETTE_RGB (0), RAW_PALETTE_BGR (1) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-psp/file-psp" 1619534562 + (proc-def "file-psp-load" 1 + "loads images from the Paint Shop Pro PSP file format" + "This plug-in loads and exports images in Paint Shop Pro's native PSP format. Vector layers aren't handled. Exporting isn't yet implemented." + "Tor Lillqvist" + "Tor Lillqvist" + "1999" + "Paint Shop Pro image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "psp,tub,pspimage") + (magics "0,string,Paint\\040Shop\\040Pro\\040Image\\040File\n\032") + (mime-types "image/x-psp")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-psd/file-psd" 1619534562 + (proc-def "file-psd-load" 1 + "Loads images from the Photoshop PSD file format" + "This plug-in loads images in Adobe Photoshop (TM) native PSD format." + "John Marshall" + "John Marshall" + "2007" + "Photoshop image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "psd") + (magics "0,string,8BPS") + (mime-types "image/x-psd") + (thumb-loader "file-psd-load-thumb")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-psd-load-merged" 1 + "Loads merged images from the Photoshop PSD file format" + "This plug-in loads the merged image data in Adobe Photoshop (TM) native PSD format." + "Ell" + "Ell" + "2018" + "Photoshop image (merged)" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "psd") + (magics "0,string,8BPS") + (priority 1) + (mime-types "image/x-psd") + (priority 1)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-psd-load-thumb" 1 + "Loads thumbnails from the Photoshop PSD file format" + "This plug-in loads thumbnail images from Adobe Photoshop (TM) native PSD format files." + "John Marshall" + "John Marshall" + "2007" + "" + 0 + (icon icon-name -1 "") + "" + 2 3 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image")) + (proc-def "file-psd-save" 1 + "saves files in the Photoshop(tm) PSD file format" + "This filter saves files of Adobe Photoshop(tm) native PSD format. These files may be of any image type supported by GIMP, with or without layers, layer masks, aux channels and guides." + "Monigotes" + "Monigotes" + "2000" + "Photoshop image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "psd") + (mime-types "image/x-psd")) + "RGB*, GRAY*, INDEXED*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 0 "compression" "Compression type: { NONE (0), LZW (1), PACKBITS (2)") + (proc-arg 0 "fill-order" "Fill Order: { MSB to LSB (0), LSB to MSB (1)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-ps/file-ps" 1619534562 + (proc-def "file-ps-load" 1 + "load PostScript documents" + "load PostScript documents" + "Peter Kirchgessner <peter@kirchgessner.net>" + "Peter Kirchgessner" + "v1.17 19-Sep-2004" + "PostScript document" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "ps") + (magics "0,string,%!,0,long,0xc5d0d3c6") + (mime-types "application/postscript") + (thumb-loader "file-ps-load-thumb")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-eps-load" 1 + "load Encapsulated PostScript images" + "load Encapsulated PostScript images" + "Peter Kirchgessner <peter@kirchgessner.net>" + "Peter Kirchgessner" + "v1.17 19-Sep-2004" + "Encapsulated PostScript image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "eps") + (magics "0,string,%!,0,long,0xc5d0d3c6") + (mime-types "image/x-eps") + (thumb-loader "file-ps-load-thumb")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-ps-load-setargs" 1 + "set additional parameters for procedure file-ps-load" + "set additional parameters for procedure file-ps-load" + "Peter Kirchgessner <peter@kirchgessner.net>" + "Peter Kirchgessner" + "v1.17 19-Sep-2004" + "" + 0 + (icon icon-name -1 "") + "" + 8 0 + (proc-arg 0 "resolution" "Resolution to interpret image (dpi)") + (proc-arg 0 "width" "Desired width") + (proc-arg 0 "height" "Desired height") + (proc-arg 0 "check-bbox" "0: Use width/height, 1: Use BoundingBox") + (proc-arg 4 "pages" "Pages to load (e.g.: 1,3,5-7)") + (proc-arg 0 "coloring" "4: b/w, 5: grey, 6: color image, 7: automatic") + (proc-arg 0 "text-alpha-bits" "1, 2, or 4") + (proc-arg 0 "graphic-alpha-bits" "1, 2, or 4")) + (proc-def "file-ps-load-thumb" 1 + "Loads a small preview from a PostScript or PDF document" + "" + "Peter Kirchgessner <peter@kirchgessner.net>" + "Peter Kirchgessner" + "v1.17 19-Sep-2004" + "" + 0 + (icon icon-name -1 "") + "" + 2 1 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Output image")) + (proc-def "file-ps-save" 1 + "export image as PostScript document" + "PostScript exporting handles all image types except those with alpha channels." + "Peter Kirchgessner <peter@kirchgessner.net>" + "Peter Kirchgessner" + "v1.17 19-Sep-2004" + "PostScript document" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "ps") + (mime-types "application/postscript") + (handles-uri)) + "RGB, GRAY, INDEXED" + 15 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 3 "width" "Width of the image in PostScript file (0: use input image size)") + (proc-arg 3 "height" "Height of image in PostScript file (0: use input image size)") + (proc-arg 3 "x-offset" "X-offset to image from lower left corner") + (proc-arg 3 "y-offset" "Y-offset to image from lower left corner") + (proc-arg 0 "unit" "Unit for width/height/offset. 0: inches, 1: millimeters") + (proc-arg 0 "keep-ratio" "0: use width/height, 1: keep aspect ratio") + (proc-arg 0 "rotation" "0, 90, 180, 270") + (proc-arg 0 "eps-flag" "0: PostScript, 1: Encapsulated PostScript") + (proc-arg 0 "preview" "0: no preview, >0: max. size of preview") + (proc-arg 0 "level" "1: PostScript Level 1, 2: PostScript Level 2")) + (proc-def "file-eps-save" 1 + "export image as Encapsulated PostScript image" + "PostScript exporting handles all image types except those with alpha channels." + "Peter Kirchgessner <peter@kirchgessner.net>" + "Peter Kirchgessner" + "v1.17 19-Sep-2004" + "Encapsulated PostScript image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "eps") + (mime-types "application/x-eps") + (handles-uri)) + "RGB, GRAY, INDEXED" + 15 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 3 "width" "Width of the image in PostScript file (0: use input image size)") + (proc-arg 3 "height" "Height of image in PostScript file (0: use input image size)") + (proc-arg 3 "x-offset" "X-offset to image from lower left corner") + (proc-arg 3 "y-offset" "Y-offset to image from lower left corner") + (proc-arg 0 "unit" "Unit for width/height/offset. 0: inches, 1: millimeters") + (proc-arg 0 "keep-ratio" "0: use width/height, 1: keep aspect ratio") + (proc-arg 0 "rotation" "0, 90, 180, 270") + (proc-arg 0 "eps-flag" "0: PostScript, 1: Encapsulated PostScript") + (proc-arg 0 "preview" "0: no preview, >0: max. size of preview") + (proc-arg 0 "level" "1: PostScript Level 1, 2: PostScript Level 2"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-pnm/file-pnm" 1619534562 + (proc-def "file-pnm-load" 1 + "Loads files in the PNM file format" + "This plug-in loads files in the various Netpbm portable file formats." + "Erik Nygren" + "Erik Nygren" + "1996" + "PNM Image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "pnm,ppm,pgm,pbm,pfm") + (magics "0,string,P1,0,string,P2,0,string,P3,0,string,P4,0,string,P5,0,string,P6,0,string,PF,0,string,Pf") + (mime-types "image/x-portable-anymap") + (handles-uri)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-pnm-save" 1 + "Exports files in the PNM file format" + "PNM exporting handles all image types without transparency." + "Erik Nygren" + "Erik Nygren" + "1996" + "PNM image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pnm") + (mime-types "image/x-portable-anymap") + (handles-uri)) + "RGB, GRAY, INDEXED" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "raw" "TRUE for raw output, FALSE for ascii output")) + (proc-def "file-pbm-save" 1 + "Exports files in the PBM file format" + "PBM exporting produces mono images without transparency." + "Martin K Collins" + "Erik Nygren" + "2006" + "PBM image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pbm") + (mime-types "image/x-portable-bitmap") + (handles-uri)) + "RGB, GRAY, INDEXED" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "raw" "TRUE for raw output, FALSE for ascii output")) + (proc-def "file-pgm-save" 1 + "Exports files in the PGM file format" + "PGM exporting produces grayscale images without transparency." + "Erik Nygren" + "Erik Nygren" + "1996" + "PGM image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pgm") + (mime-types "image/x-portable-graymap") + (handles-uri)) + "RGB, GRAY, INDEXED" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "raw" "TRUE for raw output, FALSE for ascii output")) + (proc-def "file-ppm-save" 1 + "Exports files in the PPM file format" + "PPM exporting handles RGB images without transparency." + "Erik Nygren" + "Erik Nygren" + "1996" + "PPM image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "ppm") + (mime-types "image/x-portable-floatmap") + (handles-uri)) + "RGB, GRAY, INDEXED" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "raw" "TRUE for raw output, FALSE for ascii output")) + (proc-def "file-pfm-save" 1 + "Exports files in the PFM file format" + "PFM exporting handles all images without transparency." + "Mukund Sivaraman" + "Mukund Sivaraman" + "2015" + "PFM image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pfm") + (handles-uri)) + "RGB, GRAY, INDEXED" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-png/file-png" 1619534562 + (proc-def "file-png-load" 1 + "Loads files in PNG file format" + "This plug-in loads Portable Network Graphics (PNG) files." + "Michael Sweet <mike@easysw.com>, Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>" + "Michael Sweet <mike@easysw.com>, Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>, Nick Lamb <njl195@zepler.org.uk>" + "1.3.4 - 03 September 2002" + "PNG image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "png") + (magics "0,string,PNG\r\n\032\n") + (mime-types "image/png")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-png-save" 1 + "Exports files in PNG file format" + "This plug-in exports Portable Network Graphics (PNG) files." + "Michael Sweet <mike@easysw.com>, Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>" + "Michael Sweet <mike@easysw.com>, Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>, Nick Lamb <njl195@zepler.org.uk>" + "1.3.4 - 03 September 2002" + "PNG image" + 0 + (icon icon-name -1 "") + "RGB*,GRAY*,INDEXED*" + 12 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "interlace" "Use Adam7 interlacing?") + (proc-arg 0 "compression" "Deflate Compression factor (0--9)") + (proc-arg 0 "bkgd" "Write bKGD chunk?") + (proc-arg 0 "gama" "Write gAMA chunk?") + (proc-arg 0 "offs" "Write oFFs chunk?") + (proc-arg 0 "phys" "Write pHYs chunk?") + (proc-arg 0 "time" "Write tIME chunk?")) + (proc-def "file-png-save2" 1 + "Exports files in PNG file format" + "This plug-in exports Portable Network Graphics (PNG) files. This procedure adds 2 extra parameters to file-png-save that control whether image comments are saved and whether transparent pixels are saved or nullified." + "Michael Sweet <mike@easysw.com>, Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>" + "Michael Sweet <mike@easysw.com>, Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>, Nick Lamb <njl195@zepler.org.uk>" + "1.3.4 - 03 September 2002" + "PNG image" + 0 + (icon icon-name -1 "") + "RGB*,GRAY*,INDEXED*" + 14 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in") + (proc-arg 0 "interlace" "Use Adam7 interlacing?") + (proc-arg 0 "compression" "Deflate Compression factor (0--9)") + (proc-arg 0 "bkgd" "Write bKGD chunk?") + (proc-arg 0 "gama" "Write gAMA chunk?") + (proc-arg 0 "offs" "Write oFFs chunk?") + (proc-arg 0 "phys" "Write pHYs chunk?") + (proc-arg 0 "time" "Write tIME chunk?") + (proc-arg 0 "comment" "Write comment?") + (proc-arg 0 "svtrans" "Preserve color of transparent pixels?")) + (proc-def "file-png-save-defaults" 1 + "Exports files in PNG file format" + "This plug-in exports Portable Network Graphics (PNG) files, using the default settings stored as a parasite." + "Michael Sweet <mike@easysw.com>, Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>" + "Michael Sweet <mike@easysw.com>, Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>, Nick Lamb <njl195@zepler.org.uk>" + "1.3.4 - 03 September 2002" + "PNG image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "png") + (mime-types "image/png")) + "RGB*,GRAY*,INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in")) + (proc-def "file-png-get-defaults" 1 + "Get the current set of defaults used by the PNG file export plug-in" + "This procedure returns the current set of defaults stored as a parasite for the PNG export plug-in. These defaults are used to seed the UI, by the file_png_save_defaults procedure, and by gimp_file_save when it detects to use PNG." + "Michael Sweet <mike@easysw.com>, Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>" + "Michael Sweet <mike@easysw.com>, Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>, Nick Lamb <njl195@zepler.org.uk>" + "1.3.4 - 03 September 2002" + "" + 0 + (icon icon-name -1 "") + "" + 0 9 + (proc-arg 0 "interlace" "Use Adam7 interlacing?") + (proc-arg 0 "compression" "Deflate Compression factor (0--9)") + (proc-arg 0 "bkgd" "Write bKGD chunk?") + (proc-arg 0 "gama" "Write gAMA chunk?") + (proc-arg 0 "offs" "Write oFFs chunk?") + (proc-arg 0 "phys" "Write pHYs chunk?") + (proc-arg 0 "time" "Write tIME chunk?") + (proc-arg 0 "comment" "Write comment?") + (proc-arg 0 "svtrans" "Preserve color of transparent pixels?")) + (proc-def "file-png-set-defaults" 1 + "Set the current set of defaults used by the PNG file export plug-in" + "This procedure set the current set of defaults stored as a parasite for the PNG export plug-in. These defaults are used to seed the UI, by the file_png_save_defaults procedure, and by gimp_file_save when it detects to use PNG." + "Michael Sweet <mike@easysw.com>, Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>" + "Michael Sweet <mike@easysw.com>, Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>, Nick Lamb <njl195@zepler.org.uk>" + "1.3.4 - 03 September 2002" + "" + 0 + (icon icon-name -1 "") + "" + 9 0 + (proc-arg 0 "interlace" "Use Adam7 interlacing?") + (proc-arg 0 "compression" "Deflate Compression factor (0--9)") + (proc-arg 0 "bkgd" "Write bKGD chunk?") + (proc-arg 0 "gama" "Write gAMA chunk?") + (proc-arg 0 "offs" "Write oFFs chunk?") + (proc-arg 0 "phys" "Write pHYs chunk?") + (proc-arg 0 "time" "Write tIME chunk?") + (proc-arg 0 "comment" "Write comment?") + (proc-arg 0 "svtrans" "Preserve color of transparent pixels?"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-pix/file-pix" 1619534562 + (proc-def "file-pix-load" 1 + "loads files of the Alias|Wavefront Pix file format" + "loads files of the Alias|Wavefront Pix file format" + "Michael Taylor" + "Michael Taylor" + "1997" + "Alias Pix image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "pix,matte,mask,alpha,als") + (handles-uri)) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-pix-save" 1 + "export file in the Alias|Wavefront pix/matte file format" + "export file in the Alias|Wavefront pix/matte file format" + "Michael Taylor" + "Michael Taylor" + "1997" + "Alias Pix image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pix,matte,mask,alpha,als") + (handles-uri)) + "RGB*, GRAY*, INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-pdf-save/file-pdf-save" 1619534562 + (proc-def "file-pdf-save" 1 + "Save files in PDF format" + "Saves files in Adobe's Portable Document Format. PDF is designed to be easily processed by a variety of different platforms, and is a distant cousin of PostScript." + "Barak Itkin" + "Copyright Barak Itkin" + "August 2009" + "Portable Document Format" + 0 + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 8 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 0 "vectorize" "Convert bitmaps to vector graphics where possible. TRUE or FALSE") + (proc-arg 0 "ignore-hidden" "Omit hidden layers and layers with zero opacity. TRUE or FALSE") + (proc-arg 0 "apply-masks" "Apply layer masks before saving. TRUE or FALSE (Keeping them will not change the output)")) + (proc-def "file-pdf-save2" 1 + "Save files in PDF format" + "Saves files in Adobe's Portable Document Format. PDF is designed to be easily processed by a variety of different platforms, and is a distant cousin of PostScript.\nThis procedure adds an extra parameter to file-pdf-save to save layers as pages." + "Barak Itkin, Lionel N., Jehan" + "Copyright Barak Itkin, Lionel N., Jehan" + "August 2009, 2017" + "Portable Document Format" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pdf") + (mime-types "application/pdf")) + "RGB*, GRAY*, INDEXED*" + 10 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 0 "vectorize" "Convert bitmaps to vector graphics where possible. TRUE or FALSE") + (proc-arg 0 "ignore-hidden" "Omit hidden layers and layers with zero opacity. TRUE or FALSE") + (proc-arg 0 "apply-masks" "Apply layer masks before saving. TRUE or FALSE (Keeping them will not change the output)") + (proc-arg 0 "layers-as-pages" "Layers as pages (bottom layers first). TRUE or FALSE") + (proc-arg 0 "reverse-order" "Reverse the pages order (top layers first). TRUE or FALSE")) + (proc-def "file-pdf-save-multi" 1 + "Save files in PDF format" + "Saves files in Adobe's Portable Document Format. PDF is designed to be easily processed by a variety of different platforms, and is a distant cousin of PostScript." + "Barak Itkin" + "Copyright Barak Itkin" + "August 2009" + "_Create multipage PDF..." + 0 + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 8 0 + (proc-arg 0 "run-mode" "Run mode") + (proc-arg 0 "count" "The amount of images entered (This will be the amount of pages). 1 <= count <= MAX_PAGE_COUNT") + (proc-arg 5 "images" "Input image for each page (An image can appear more than once)") + (proc-arg 0 "vectorize" "Convert bitmaps to vector graphics where possible. TRUE or FALSE") + (proc-arg 0 "ignore-hidden" "Omit hidden layers and layers with zero opacity. TRUE or FALSE") + (proc-arg 0 "apply-masks" "Apply layer masks before saving. TRUE or FALSE (Keeping them will not change the output)") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-pdf-load/file-pdf-load" 1619534562 + (proc-def "file-pdf-load" 1 + "Load file in PDF format" + "Loads files in Adobe's Portable Document Format. PDF is designed to be easily processed by a variety of different platforms, and is a distant cousin of PostScript.\nIf the PDF document has multiple pages, only the first page will be loaded. Call file_pdf_load2() to load several pages as layers." + "Nathan Summers" + "Nathan Summers" + "2005" + "Portable Document Format" + 0 + (icon icon-name -1 "") + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-pdf-load2" 1 + "Load file in PDF format" + "Loads files in Adobe's Portable Document Format. PDF is designed to be easily processed by a variety of different platforms, and is a distant cousin of PostScript.\nThis procedure adds extra parameters to file-pdf-load to open encrypted PDF and to allow multiple page loading." + "Nathan Summers, Lionel N." + "Nathan Summers, Lionel N." + "2005, 2017" + "Portable Document Format" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "pdf") + (magics "0, string,%PDF-") + (mime-types "application/pdf") + (thumb-loader "file-pdf-load-thumb")) + "" + 6 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 4 "pdf-password" "The password to decrypt the encrypted PDF file") + (proc-arg 0 "n-pages" "Number of pages to load (0 for all)") + (proc-arg 5 "pages" "The pages to load in the expected order") + (proc-arg 13 "image" "Output image")) + (proc-def "file-pdf-load-thumb" 1 + "Loads a preview from a PDF file." + "Loads a small preview of the first page of the PDF format file. Uses the embedded thumbnail if present." + "Nathan Summers" + "Nathan Summers" + "2005" + "" + 0 + (icon icon-name -1 "") + "" + 2 5 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image") + (proc-arg 0 "image-type" "Image type") + (proc-arg 0 "num-layers" "Number of pages"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-pcx/file-pcx" 1619534562 + (proc-def "file-pcx-load" 1 + "Loads files in Zsoft PCX file format" + "FIXME: write help for pcx_load" + "Francisco Bustamante & Nick Lamb" + "Nick Lamb <njl195@zepler.org.uk>" + "January 1997" + "ZSoft PCX image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "pcx,pcc") + (magics "0&,byte,10,2&,byte,1,3&,byte,>0,3,byte,<9") + (mime-types "image/x-pcx")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-pcx-save" 1 + "Exports files in ZSoft PCX file format" + "FIXME: write help for pcx_save" + "Francisco Bustamante & Nick Lamb" + "Nick Lamb <njl195@zepler.org.uk>" + "January 1997" + "ZSoft PCX image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "pcx,pcc") + (mime-types "image/x-pcx")) + "INDEXED, RGB, GRAY" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name entered"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-pat/file-pat" 1619534562 + (proc-def "file-pat-save" 1 + "Exports Gimp pattern file (.PAT)" + "New Gimp patterns can be created by exporting them in the appropriate place with this plug-in." + "Tim Newsome" + "Tim Newsome" + "1997" + "GIMP pattern" + 0 + (icon icon-name -1 "gimp-pattern") + (save-proc + (extensions "pat") + (mime-types "image/x-gimp-pat") + (handles-uri)) + "RGB*, GRAY*, INDEXED*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "uri" "The URI of the file to export the image in") + (proc-arg 4 "raw-uri" "The URI of the file to export the image in") + (proc-arg 4 "description" "Short description of the pattern"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-mng/file-mng" 1619534562 + (proc-def "file-mng-save" 1 + "Saves images in the MNG file format" + "This plug-in saves images in the Multiple-image Network Graphics (MNG) format which can be used as a replacement for animated GIFs, and more." + "Mukund Sivaraman <muks@mukund.org>" + "Mukund Sivaraman <muks@mukund.org>" + "November 19, 2002" + "MNG animation" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "mng") + (mime-types "image/x-mng")) + "RGB*,GRAY*,INDEXED*" + 17 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 0 "interlace" "Use interlacing") + (proc-arg 0 "compression" "PNG deflate compression level (0 - 9)") + (proc-arg 3 "quality" "JPEG quality factor (0.00 - 1.00)") + (proc-arg 3 "smoothing" "JPEG smoothing factor (0.00 - 1.00)") + (proc-arg 0 "loop" "(ANIMATED MNG) Loop infinitely") + (proc-arg 0 "default-delay" "(ANIMATED MNG) Default delay between frames in milliseconds") + (proc-arg 0 "default-chunks" "(ANIMATED MNG) Default chunks type (0 = PNG + Delta PNG; 1 = JNG + Delta PNG; 2 = All PNG; 3 = All JNG)") + (proc-arg 0 "default-dispose" "(ANIMATED MNG) Default dispose type (0 = combine; 1 = replace)") + (proc-arg 0 "bkgd" "Write bKGD (background color) chunk") + (proc-arg 0 "gama" "Write gAMA (gamma) chunk") + (proc-arg 0 "phys" "Write pHYs (image resolution) chunk") + (proc-arg 0 "time" "Write tIME (creation time) chunk"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-jpeg/file-jpeg" 1619534562 + (proc-def "file-jpeg-load" 1 + "loads files in the JPEG file format" + "loads files in the JPEG file format" + "Spencer Kimball, Peter Mattis & others" + "Spencer Kimball & Peter Mattis" + "1995-2007" + "JPEG image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "jpg,jpeg,jpe") + (magics "0,string,") + (mime-types "image/jpeg") + (thumb-loader "file-jpeg-load-thumb")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-jpeg-load-thumb" 1 + "Loads a thumbnail from a JPEG image" + "Loads a thumbnail from a JPEG image (only if it exists)" + "Mukund Sivaraman <muks@mukund.org>, Sven Neumann <sven@gimp.org>" + "Mukund Sivaraman <muks@mukund.org>, Sven Neumann <sven@gimp.org>" + "November 15, 2004" + "" + 0 + (icon icon-name -1 "") + "" + 2 3 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image")) + (proc-def "file-jpeg-save" 1 + "saves files in the JPEG file format" + "saves files in the lossy, widely supported JPEG format" + "Spencer Kimball, Peter Mattis & others" + "Spencer Kimball & Peter Mattis" + "1995-2007" + "JPEG image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "jpg,jpeg,jpe") + (mime-types "image/jpeg")) + "RGB*, GRAY*" + 14 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in") + (proc-arg 3 "quality" "Quality of saved image (0 <= quality <= 1)") + (proc-arg 3 "smoothing" "Smoothing factor for saved image (0 <= smoothing <= 1)") + (proc-arg 0 "optimize" "Use optimized tables during Huffman coding (0/1)") + (proc-arg 0 "progressive" "Create progressive JPEG images (0/1)") + (proc-arg 4 "comment" "Image comment") + (proc-arg 0 "subsmp" "Sub-sampling type { 0, 1, 2, 3 } 0 == 4:2:0 (chroma quartered), 1 == 4:2:2 Horizontal (chroma halved), 2 == 4:4:4 (best quality), 3 == 4:2:2 Vertical (chroma halved)") + (proc-arg 0 "baseline" "Force creation of a baseline JPEG (non-baseline JPEGs can't be read by all decoders) (0/1)") + (proc-arg 0 "restart" "Interval of restart markers (in MCU rows, 0 = no restart markers)") + (proc-arg 0 "dct" "DCT method to use { INTEGER (0), FIXED (1), FLOAT (2) }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-jp2-load/file-jp2-load" 1619534562 + (proc-def "file-jp2-load" 1 + "Loads JPEG 2000 images." + "The JPEG 2000 image loader." + "Mukund Sivaraman" + "Mukund Sivaraman" + "2009" + "JPEG 2000 image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "jp2") + (magics "3,string,\fjP") + (mime-types "image/jp2")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-j2k-load" 1 + "Loads JPEG 2000 codestream." + "Loads JPEG 2000 codestream. If the color space is set to UNKNOWN (0), we will try to guess, which is only possible for few spaces (such as grayscale). Most such calls will fail. You are rather expected to know the color space of your data." + "Jehan" + "Jehan" + "2009" + "JPEG 2000 codestream" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "j2k,j2c,jpc") + (magics "0,string,OQ") + (mime-types "image/x-jp2-codestream")) + "" + 4 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "colorspace" "Color space { UNKNOWN (0), GRAYSCALE (1), RGB (2), CMYK (3), YCbCr (4), xvYCC (5) }") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-ico/file-ico" 1619534562 + (proc-def "file-ico-load" 1 + "Loads files of Windows ICO file format" + "Loads files of Windows ICO file format" + "Christian Kreibich <christian@whoop.org>" + "Christian Kreibich <christian@whoop.org>" + "2002" + "Microsoft Windows icon" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "ico") + (magics "0,string,\\000\\001\\000\\000,0,string,\\000\\002\\000\\000") + (mime-types "image/x-ico") + (thumb-loader "file-ico-load-thumb")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-ico-load-thumb" 1 + "Loads a preview from an Windows ICO file" + "" + "Dom Lachowicz, Sven Neumann" + "Sven Neumann <sven@gimp.org>" + "2005" + "" + 0 + (icon icon-name -1 "") + "" + 2 3 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Thumbnail image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image")) + (proc-def "file-ico-save" 1 + "Saves files in Windows ICO file format" + "Saves files in Windows ICO file format" + "Christian Kreibich <christian@whoop.org>" + "Christian Kreibich <christian@whoop.org>" + "2002" + "Microsoft Windows icon" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "ico") + (mime-types "image/x-ico")) + "*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-html-table/file-html-table" 1619534562 + (proc-def "file-gtm-save" 1 + "GIMP Table Magic" + "Allows you to draw an HTML table in GIMP. See help for more info." + "Daniel Dunbar" + "Daniel Dunbar" + "1998" + "HTML table" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "html,htm") + (mime-types "text/html") + (handles-uri)) + "RGB*, GRAY*, INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-heif/file-heif" 1619534562 + (has-init)) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-header/file-header" 1619534562 + (proc-def "file-header-save" 1 + "saves files as C unsigned character array" + "FIXME: write help" + "Spencer Kimball & Peter Mattis" + "Spencer Kimball & Peter Mattis" + "1997" + "C source code header" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "h") + (mime-types "text/x-chdr") + (handles-uri)) + "INDEXED, RGB" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-glob/file-glob" 1619534562 + (proc-def "file-glob" 1 + "Returns a list of matching filenames" + "This can be useful in scripts and other plug-ins (e.g., batch-conversion). See the glob(7) manpage for more info. Note however that this isn't a full-featured glob implementation. It only handles simple patterns like \"/home/foo/bar/*.jpg\"." + "Sven Neumann" + "Sven Neumann" + "2004" + "" + 0 + (icon icon-name -1 "") + "" + 2 2 + (proc-arg 4 "pattern" "The glob pattern (in UTF-8 encoding)") + (proc-arg 0 "encoding" "Encoding of the returned names: { UTF-8 (0), filename encoding (1) }") + (proc-arg 0 "num-files" "The number of returned names") + (proc-arg 9 "files" "The list of matching names"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-gih/file-gih" 1619534562 + (proc-def "file-gih-save" 1 + "exports images in GIMP brush pipe format" + "This plug-in exports an image in the GIMP brush pipe format. For a colored brush pipe, RGBA layers are used, otherwise the layers should be grayscale masks. The image can be multi-layered, and additionally the layers can be divided into a rectangular array of brushes." + "Tor Lillqvist" + "Tor Lillqvist" + "1999" + "GIMP brush (animated)" + 0 + (icon icon-name -1 "gimp-tool-paintbrush") + (save-proc + (extensions "gih") + (mime-types "image/x-gimp-gih") + (handles-uri)) + "RGB*, GRAY*" + 15 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "uri" "The URI of the file to export the brush pipe in") + (proc-arg 4 "raw-uri" "The URI of the file to export the brush pipe in") + (proc-arg 0 "spacing" "Spacing of the brush") + (proc-arg 4 "description" "Short description of the brush pipe") + (proc-arg 0 "cell-width" "Width of the brush cells") + (proc-arg 0 "cell-height" "Width of the brush cells") + (proc-arg 2 "display-cols" "Display column number") + (proc-arg 2 "display-rows" "Display row number") + (proc-arg 0 "dimension" "Dimension of the brush pipe") + (proc-arg 7 "rank" "Ranks of the dimensions") + (proc-arg 0 "dimension" "Dimension (again)") + (proc-arg 9 "sel" "Selection modes"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-gif-save/file-gif-save" 1619534562 + (proc-def "file-gif-save" 1 + "exports files in Compuserve GIF file format" + "Export a file in Compuserve GIF format, with possible animation, transparency, and comment. To export an animation, operate on a multi-layer file. The plug-in will interpret <50% alpha as transparent. When run non-interactively, the value for the comment is taken from the 'gimp-comment' parasite. " + "Spencer Kimball, Peter Mattis, Adam Moss, David Koblas" + "Spencer Kimball, Peter Mattis, Adam Moss, David Koblas" + "1995-1997" + "GIF image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "gif") + (mime-types "image/gif") + (handles-uri)) + "INDEXED*, GRAY*" + 9 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Image to export") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "uri" "The name of the URI to export the image in") + (proc-arg 4 "raw-uri" "The name of the URI to export the image in") + (proc-arg 0 "interlace" "Try to export as interlaced") + (proc-arg 0 "loop" "(animated gif) loop infinitely") + (proc-arg 0 "default-delay" "(animated gif) Default delay between frames in milliseconds") + (proc-arg 0 "default-dispose" "(animated gif) Default disposal type (0=`don't care`, 1=combine, 2=replace)")) + (proc-def "file-gif-save2" 1 + "exports files in Compuserve GIF file format" + "Export a file in Compuserve GIF format, with possible animation, transparency, and comment. To export an animation, operate on a multi-layer file and give the 'as-animation' parameter as TRUE. The plug-in will interpret <50% alpha as transparent. When run non-interactively, the value for the comment is taken from the 'gimp-comment' parasite. " + "Spencer Kimball, Peter Mattis, Adam Moss, David Koblas" + "Spencer Kimball, Peter Mattis, Adam Moss, David Koblas" + "1995-1997" + "GIF image" + 0 + (icon icon-name -1 "") + "INDEXED*, GRAY*" + 12 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Image to export") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "uri" "The name of the URI to export the image in") + (proc-arg 4 "raw-uri" "The name of the URI to export the image in") + (proc-arg 0 "interlace" "Try to export as interlaced") + (proc-arg 0 "loop" "(animated gif) loop infinitely") + (proc-arg 0 "default-delay" "(animated gif) Default delay between frames in milliseconds") + (proc-arg 0 "default-dispose" "(animated gif) Default disposal type (0=`don't care`, 1=combine, 2=replace)") + (proc-arg 0 "as-animation" "Export GIF as animation?") + (proc-arg 0 "force-delay" "(animated gif) Use specified delay for all frames?") + (proc-arg 0 "force-dispose" "(animated gif) Use specified disposal for all frames?"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-gif-load/file-gif-load" 1619534562 + (proc-def "file-gif-load" 1 + "Loads files of Compuserve GIF file format" + "FIXME: write help for gif_load" + "Spencer Kimball, Peter Mattis, Adam Moss, David Koblas" + "Spencer Kimball, Peter Mattis, Adam Moss, David Koblas" + "1995-2006" + "GIF image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "gif") + (magics "0,string,GIF8") + (mime-types "image/gif") + (thumb-loader "file-gif-load-thumb")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-gif-load-thumb" 1 + "Loads only the first frame of a GIF image, to be used as a thumbnail" + "" + "Sven Neumann" + "Sven Neumann" + "2006" + "" + 0 + (icon icon-name -1 "") + "" + 2 3 + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 0 "thumb-size" "Preferred thumbnail size") + (proc-arg 13 "image" "Output image") + (proc-arg 0 "image-width" "Width of full-sized image") + (proc-arg 0 "image-height" "Height of full-sized image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-gegl/file-gegl" 1619534562 + (proc-def "file-load-rgbe" 1 + "Load files in the RGBE file format" + "This procedure loads images in the RGBE format, using gegl:load" + "Simon Budig" + "Simon Budig" + "2012" + "Radiance RGBE" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "hdr") + (magics "0,string,?#") + (mime-types "image/vnd.radiance")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load.") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-save-rgbe" 1 + "Saves files in the RGBE file format" + "This procedure exports images in the RGBE format, using gegl:save" + "Simon Budig" + "Simon Budig" + "2012" + "Radiance RGBE" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "hdr") + (mime-types "image/vnd.radiance")) + "*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in")) + (proc-def "file-exr-save" 1 + "Saves files in the OpenEXR file format" + "This procedure saves images in the OpenEXR format, using gegl:save" + "Simon Budig" + "Simon Budig" + "2012" + "OpenEXR image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "exr") + (mime-types "image/x-exr")) + "*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-gbr/file-gbr" 1619534562 + (proc-def "file-gbr-save" 1 + "Exports files in the GIMP brush file format" + "Exports files in the GIMP brush file format" + "Tim Newsome, Jens Lautenbacher, Sven Neumann" + "Tim Newsome, Jens Lautenbacher, Sven Neumann" + "1997-2000" + "GIMP brush" + 0 + (icon icon-name -1 "gimp-tool-paintbrush") + (save-proc + (extensions "gbr") + (mime-types "image/x-gimp-gbr") + (handles-uri)) + "RGB*, GRAY*, INDEXED*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "uri" "The URI of the file to export the image in") + (proc-arg 4 "raw-uri" "The URI of the file to export the image in") + (proc-arg 0 "spacing" "Spacing of the brush") + (proc-arg 4 "description" "Short description of the brush"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-fli/file-fli" 1619534562 + (proc-def "file-fli-load" 1 + "load FLI-movies" + "This is an experimantal plug-in to handle FLI movies" + "Jens Ch. Restemeier" + "Jens Ch. Restemeier" + "1997" + "AutoDesk FLIC animation" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "fli,flc") + (mime-types "image/x-flic")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-fli-save" 1 + "export FLI-movies" + "This is an experimantal plug-in to handle FLI movies" + "Jens Ch. Restemeier" + "Jens Ch. Restemeier" + "1997" + "AutoDesk FLIC animation" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "fli,flc") + (mime-types "image/x-flic")) + "INDEXED,GRAY" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)") + (proc-arg 4 "filename" "The name of the file to export") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "from-frame" "Export beginning from this frame") + (proc-arg 0 "to-frame" "End exporting with this frame")) + (proc-def "file-fli-info" 1 + "Get information about a Fli movie" + "This is a experimantal plug-in to handle FLI movies" + "Jens Ch. Restemeier" + "Jens Ch. Restemeier" + "1997" + "" + 0 + (icon icon-name -1 "") + "" + 1 3 + (proc-arg 4 "filename" "The name of the file to get info") + (proc-arg 0 "width" "Width of one frame") + (proc-arg 0 "height" "Height of one frame") + (proc-arg 0 "frames" "Number of Frames"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-fits/file-fits" 1619534562 + (proc-def "file-fits-load" 1 + "load file of the FITS file format" + "load file of the FITS file format (Flexible Image Transport System)" + "Peter Kirchgessner" + "Peter Kirchgessner (peter@kirchgessner.net)" + "1997" + "Flexible Image Transport System" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "fit,fits") + (magics "0,string,SIMPLE") + (mime-types "image/x-fits")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-fits-save" 1 + "export file in the FITS file format" + "FITS exporting handles all image types except those with alpha channels." + "Peter Kirchgessner" + "Peter Kirchgessner (peter@kirchgessner.net)" + "1997" + "Flexible Image Transport System" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "fit,fits") + (mime-types "image/x-fits")) + "RGB, GRAY, INDEXED" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "The name of the file to export the image in") + (proc-arg 4 "raw-filename" "The name of the file to export the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-faxg3/file-faxg3" 1619534562 + (proc-def "file-faxg3-load" 1 + "loads g3 fax files" + "This plug-in loads Fax G3 Image files." + "Jochen Friedrich" + "Jochen Friedrich, Gert Doering, Spencer Kimball & Peter Mattis" + "0.6" + "G3 fax image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "g3") + (magics "4,string,Research") + (mime-types "image/g3-fax")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-exr/file-exr" 1619534562 + (proc-def "file-exr-load" 1 + "Loads files in the OpenEXR file format" + "This plug-in loads OpenEXR files. " + "Dominik Ernst <dernst@gmx.de>, Mukund Sivaraman <muks@banu.com>" + "Dominik Ernst <dernst@gmx.de>, Mukund Sivaraman <muks@banu.com>" + "0.0.0" + "OpenEXR image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "exr") + (magics "0,long,0x762f3101") + (mime-types "image/x-exr")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-dicom/file-dicom" 1619534562 + (proc-def "file-dicom-load" 1 + "loads files of the dicom file format" + "Load a file in the DICOM standard format.The standard is defined at http://medical.nema.org/. The plug-in currently only supports reading images with uncompressed pixel sections." + "Dov Grobgeld" + "Dov Grobgeld <dov@imagic.weizmann.ac.il>" + "2003" + "DICOM image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "dcm,dicom") + (magics "128,string,DICM") + (mime-types "image/x-dcm")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name of the file to load") + (proc-arg 13 "image" "Output image")) + (proc-def "file-dicom-save" 1 + "Save file in the DICOM file format" + "Save an image in the medical standard DICOM image formats. The standard is defined at http://medical.nema.org/. The file format is defined in section 10 of the standard. The files are saved uncompressed and the compulsory DICOM tags are filled with default dummy values." + "Dov Grobgeld" + "Dov Grobgeld <dov@imagic.weizmann.ac.il>" + "2003" + "Digital Imaging and Communications in Medicine image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "dcm,dicom") + (mime-types "image/x-dcm")) + "RGB, GRAY" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save") + (proc-arg 4 "raw-filename" "The name of the file to save"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-desktop-link/file-desktop-link" 1619534562 + (proc-def "file-desktop-link-load" 1 + "Follows a link to an image in a .desktop file" + "Opens a .desktop file and if it is a link, it asks GIMP to open the file the link points to." + "Sven Neumann" + "Sven Neumann" + "2006" + "Desktop Link" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "desktop")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-dds/file-dds" 1619534562 + (proc-def "file-dds-load" 1 + "Loads files in DDS image format" + "Loads files in DDS image format" + "Shawn Kirst" + "Shawn Kirst" + "2008" + "DDS image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "dds") + (magics "0,string,DDS") + (mime-types "image/dds")) + "" + 5 1 + (proc-arg 0 "run-mode" "Interactive, non-interactive") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "load-mipmaps" "Load mipmaps if present") + (proc-arg 0 "decode-images" "Decode YCoCg/AExp images when detected") + (proc-arg 13 "image" "Output image")) + (proc-def "file-dds-save" 1 + "Saves files in DDS image format" + "Saves files in DDS image format" + "Shawn Kirst" + "Shawn Kirst" + "2008" + "DDS image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "dds") + (mime-types "image/dds")) + "INDEXED, GRAY, RGB" + 18 0 + (proc-arg 0 "run-mode" "Interactive, non-interactive") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image as") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 0 "compression-format" "Compression format (0 = None, 1 = BC1/DXT1, 2 = BC2/DXT3, 3 = BC3/DXT5, 4 = BC3n/DXT5nm, 5 = BC4/ATI1N, 6 = BC5/ATI2N, 7 = RXGB (DXT5), 8 = Alpha Exponent (DXT5), 9 = YCoCg (DXT5), 10 = YCoCg scaled (DXT5))") + (proc-arg 0 "mipmaps" "How to handle mipmaps (0 = No mipmaps, 1 = Generate mipmaps, 2 = Use existing mipmaps (layers)") + (proc-arg 0 "savetype" "How to save the image (0 = selected layer, 1 = cube map, 2 = volume map, 3 = texture array") + (proc-arg 0 "format" "Custom pixel format (0 = default, 1 = R5G6B5, 2 = RGBA4, 3 = RGB5A1, 4 = RGB10A2)") + (proc-arg 0 "transparent-index" "Index of transparent color or -1 to disable (for indexed images only).") + (proc-arg 0 "mipmap-filter" "Filtering to use when generating mipmaps (0 = default, 1 = nearest, 2 = box, 3 = triangle, 4 = quadratic, 5 = bspline, 6 = mitchell, 7 = lanczos, 8 = kaiser)") + (proc-arg 0 "mipmap-wrap" "Wrap mode to use when generating mipmaps (0 = default, 1 = mirror, 2 = repeat, 3 = clamp)") + (proc-arg 0 "gamma-correct" "Use gamma correct mipmap filtering") + (proc-arg 0 "srgb" "Use sRGB colorspace for gamma correction") + (proc-arg 3 "gamma" "Gamma value to use for gamma correction (i.e. 2.2)") + (proc-arg 0 "perceptual-metric" "Use a perceptual error metric during compression") + (proc-arg 0 "preserve-alpha-coverage" "Preserve alpha test converage for alpha channel maps") + (proc-arg 3 "alpha-test-threshold" "Alpha test threshold value for which alpha test converage should be preserved"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-csource/file-csource" 1619534562 + (proc-def "file-csource-save" 1 + "Dump image data in RGB(A) format for C source" + "CSource cannot be run non-interactively." + "Tim Janik" + "Tim Janik" + "1999" + "C source code" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "c") + (mime-types "text/x-csrc") + (handles-uri)) + "*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name of the file to save the image in"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-compressor/file-compressor" 1619534562 + (proc-def "file-gz-load" 1 + "loads files compressed with gzip" + "This procedure loads files in the gzip compressed format." + "Daniel Risacher" + "Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "gzip archive" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xcf.gz,xcfgz") + (magics "0,string,\037") + (mime-types "application/x-gzip")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-gz-save" 1 + "saves files compressed with gzip" + "This procedure saves files in the gzip compressed format." + "Daniel Risacher" + "Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "gzip archive" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xcf.gz,xcfgz") + (mime-types "application/x-gzip")) + "RGB*, GRAY*, INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered")) + (proc-def "file-bz2-load" 1 + "loads files compressed with bzip2" + "This procedure loads files in the bzip2 compressed format." + "Daniel Risacher" + "Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "bzip archive" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xcf.bz2,xcfbz2") + (magics "0,string,BZh") + (mime-types "application/x-bzip")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-bz2-save" 1 + "saves files compressed with bzip2" + "This procedure saves files in the bzip2 compressed format." + "Daniel Risacher" + "Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "bzip archive" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xcf.bz2,xcfbz2") + (mime-types "application/x-bzip")) + "RGB*, GRAY*, INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered")) + (proc-def "file-xz-load" 1 + "loads files compressed with xz" + "This procedure loads files in the xz compressed format." + "Daniel Risacher" + "Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "xz archive" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "xcf.xz,xcfxz") + (magics "0,string,7zXZ") + (mime-types "application/x-xz")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-xz-save" 1 + "saves files compressed with xz" + "This procedure saves files in the xz compressed format." + "Daniel Risacher" + "Daniel Risacher, Spencer Kimball and Peter Mattis" + "1995-1997" + "xz archive" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "xcf.xz,xcfxz") + (mime-types "application/x-xz")) + "RGB*, GRAY*, INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-cel/file-cel" 1619534562 + (proc-def "file-cel-load" 1 + "Loads files in KISS CEL file format" + "This plug-in loads individual KISS cell files." + "Nick Lamb" + "Nick Lamb <njl195@zepler.org.uk>" + "May 1998" + "KISS CEL" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "cel") + (magics "0,string,KiSS\\040")) + "" + 4 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "Filename to load image from") + (proc-arg 4 "raw-filename" "Name entered") + (proc-arg 4 "palette-filename" "Filename to load palette from") + (proc-arg 13 "image" "Output image")) + (proc-def "file-cel-save" 1 + "Exports files in KISS CEL file format" + "This plug-in exports individual KISS cell files." + "Nick Lamb" + "Nick Lamb <njl195@zepler.org.uk>" + "May 1998" + "KISS CEL" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "cel") + (handles-uri)) + "RGB*, INDEXED*" + 6 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to export") + (proc-arg 4 "filename" "Filename to export image to") + (proc-arg 4 "raw-filename" "Name entered") + (proc-arg 4 "palette-filename" "Filename to save palette to"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/file-bmp/file-bmp" 1619534562 + (proc-def "file-bmp-load" 1 + "Loads files of Windows BMP file format" + "Loads files of Windows BMP file format" + "Alexander Schulz" + "Alexander Schulz" + "1997" + "Windows BMP image" + 0 + (icon icon-name -1 "") + (load-proc + (extensions "bmp") + (magics "0,string,BM") + (mime-types "image/bmp")) + "" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 4 "filename" "The name of the file to load") + (proc-arg 4 "raw-filename" "The name entered") + (proc-arg 13 "image" "Output image")) + (proc-def "file-bmp-save" 1 + "Saves files in Windows BMP file format" + "Saves files in Windows BMP file format" + "Alexander Schulz" + "Alexander Schulz" + "1997" + "Windows BMP image" + 0 + (icon icon-name -1 "") + (save-proc + (extensions "bmp") + (mime-types "image/bmp")) + "INDEXED, GRAY, RGB*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Drawable to save") + (proc-arg 4 "filename" "The name of the file to save the image in") + (proc-arg 4 "raw-filename" "The name entered"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/emboss/emboss" 1619534562 + (proc-def "plug-in-emboss" 1 + "Simulate an image created by embossing" + "Emboss or Bumpmap the given drawable, specifying the angle and elevation for the light source." + "Eric L. Hernes, John Schlag" + "Eric L. Hernes" + "1997" + "_Emboss (legacy)..." + 1 + (menu-path "<Image>/Filters/Distorts") + (icon icon-name -1 "") + "RGB*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "The Image") + (proc-arg 16 "drawable" "The Drawable") + (proc-arg 3 "azimuth" "The Light Angle (degrees)") + (proc-arg 3 "elevation" "The Elevation Angle (degrees)") + (proc-arg 0 "depth" "The Filter Width") + (proc-arg 0 "emboss" "Emboss or Bumpmap"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/edge-dog/edge-dog" 1619534562 + (proc-def "plug-in-dog" 1 + "Edge detection with control of edge thickness" + "Applies two Gaussian blurs to the drawable, and subtracts the results. This is robust and widely used method for detecting edges." + "Spencer Kimball, Peter Mattis, Sven Neumann, William Skaggs" + "Spencer Kimball, Peter Mattis, Sven Neumann, William Skaggs" + "1995-2004" + "_Difference of Gaussians (legacy)..." + 1 + (menu-path "<Image>/Filters/Edge-Detect") + (icon icon-name -1 "") + "RGB*, GRAY*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "inner" "Radius of inner gaussian blur (in pixels, > 0.0)") + (proc-arg 3 "outer" "Radius of outer gaussian blur (in pixels, > 0.0)") + (proc-arg 0 "normalize" "Normalize { TRUE, FALSE }") + (proc-arg 0 "invert" "Invert { TRUE, FALSE }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/destripe/destripe" 1619534562 + (proc-def "plug-in-destripe" 1 + "Remove vertical stripe artifacts from the image" + "This plug-in tries to remove vertical stripes from an image." + "Marc Lehmann <pcg@goof.com>" + "Marc Lehmann <pcg@goof.com>" + "0.2" + "Des_tripe..." + 1 + (menu-path "<Image>/Filters/Enhance") + (icon icon-name -1 "") + "RGB*, GRAY*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "avg-width" "Averaging filter width (default = 36)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/despeckle/despeckle" 1619534562 + (proc-def "plug-in-despeckle" 1 + "Remove speckle noise from the image" + "This plug-in selectively performs a median or adaptive box filter on an image." + "Michael Sweet <mike@easysw.com>" + "Copyright 1997-1998 by Michael Sweet" + "May 2010" + "Des_peckle..." + 1 + (menu-path "<Image>/Filters/Enhance") + (icon icon-name -1 "") + "RGB*, GRAY*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "radius" "Filter box radius (default = 3)") + (proc-arg 0 "type" "Filter type { MEDIAN (0), ADAPTIVE (1), RECURSIVE-MEDIAN (2), RECURSIVE-ADAPTIVE (3) }") + (proc-arg 0 "black" "Black level (-1 to 255)") + (proc-arg 0 "white" "White level (0 to 256)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/depth-merge/depth-merge" 1619534562 + (proc-def "plug-in-depth-merge" 1 + "Combine two images using depth maps (z-buffers)" + "Taking as input two full-color, full-alpha images and two corresponding grayscale depth maps, this plug-in combines the images based on which is closer (has a lower depth map value) at each point." + "Sean Cier" + "Sean Cier" + "August 1998" + "_Depth Merge..." + 1 + (menu-path "<Image>/Filters/Combine") + (icon icon-name -1 "") + "RGB*, GRAY*" + 11 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "result" "Result") + (proc-arg 16 "source1" "Source 1") + (proc-arg 16 "source2" "Source 2") + (proc-arg 16 "depthMap1" "Depth map 1") + (proc-arg 16 "depthMap2" "Depth map 2") + (proc-arg 3 "overlap" "Overlap") + (proc-arg 3 "offset" "Depth relative offset") + (proc-arg 3 "scale1" "Depth relative scale 1") + (proc-arg 3 "scale2" "Depth relative scale 2"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/decompose/decompose" 1619534562 + (proc-def "plug-in-decompose" 1 + "Decompose an image into separate colorspace components" + "This function creates new gray images with different channel information in each of them" + "Peter Kirchgessner" + "Peter Kirchgessner" + "1997" + "_Decompose..." + 0 + (icon icon-name -1 "") + "RGB*" + 5 4 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "decompose-type" "What to decompose: \"RGB\", \"RGBA\", \"Red\", \"Green\", \"Blue\", \"Alpha\", \"HSV\", \"Hue\", \"Saturation\", \"Value\", \"HSL\", \"Hue (HSL)\", \"Saturation (HSL)\", \"Lightness\", \"CMYK\", \"Cyan\", \"Magenta\", \"Yellow\", \"Black\", \"LAB\", \"LCH\", \"YCbCr_ITU_R470\", \"YCbCr_ITU_R470_256\", \"YCbCr_ITU_R709\", \"YCbCr_ITU_R709_256\"") + (proc-arg 0 "layers-mode" "Create channels as layers in a single image") + (proc-arg 13 "new-image" "Output gray image") + (proc-arg 13 "new-image" "Output gray image (N/A for single channel extract)") + (proc-arg 13 "new-image" "Output gray image (N/A for single channel extract)") + (proc-arg 13 "new-image" "Output gray image (N/A for single channel extract)")) + (proc-def "plug-in-decompose-registered" 1 + "Decompose an image into separate colorspace components" + "This function creates new gray images with different channel information in each of them. Pixels in the foreground color will appear black in all output images. This can be used for things like crop marks that have to show up on all channels." + "Peter Kirchgessner" + "Peter Kirchgessner, Clarence Risher" + "1997" + "_Decompose..." + 1 + (menu-path "<Image>/Colors/Components") + (icon icon-name -1 "") + "RGB*" + 5 4 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "decompose-type" "What to decompose: \"RGB\", \"RGBA\", \"Red\", \"Green\", \"Blue\", \"Alpha\", \"HSV\", \"Hue\", \"Saturation\", \"Value\", \"HSL\", \"Hue (HSL)\", \"Saturation (HSL)\", \"Lightness\", \"CMYK\", \"Cyan\", \"Magenta\", \"Yellow\", \"Black\", \"LAB\", \"LCH\", \"YCbCr_ITU_R470\", \"YCbCr_ITU_R470_256\", \"YCbCr_ITU_R709\", \"YCbCr_ITU_R709_256\"") + (proc-arg 0 "layers-mode" "Create channels as layers in a single image") + (proc-arg 13 "new-image" "Output gray image") + (proc-arg 13 "new-image" "Output gray image (N/A for single channel extract)") + (proc-arg 13 "new-image" "Output gray image (N/A for single channel extract)") + (proc-arg 13 "new-image" "Output gray image (N/A for single channel extract)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/curve-bend/curve-bend" 1619534562 + (proc-def "plug-in-curve-bend" 1 + "Bend the image using two control curves" + "This plug-in does bend the active layer If there is a current selection it is copied to floating selection and the curve_bend distortion is done on the floating selection. If work_on_copy parameter is TRUE, the curve_bend distortion is done on a copy of the active layer (or floating selection). The upper and lower edges are bent in shape of 2 spline curves. both (upper and lower) curves are determined by upto 17 points or by 256 Y-Values if curve_type == 1 (freehand mode) If rotation is not 0, the layer is rotated before and rotated back after the bend operation. This enables bending in other directions than vertical. bending usually changes the size of the handled layer. this plug-in sets the offsets of the handled layer to keep its center at the same position" + "Wolfgang Hofer (hof@hotbot.com)" + "Wolfgang Hofer" + "v1.3.18 (2003/08/26)" + "_Curve Bend..." + 1 + (menu-path "<Image>/Filters/Distorts") + (icon icon-name -1 "") + "RGB*, GRAY*" + 20 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (must be a layer without layermask)") + (proc-arg 3 "rotation" "Direction {angle 0 to 360 degree } of the bend effect") + (proc-arg 0 "smoothing" "Smoothing { TRUE, FALSE }") + (proc-arg 0 "antialias" "Antialias { TRUE, FALSE }") + (proc-arg 0 "work-on-copy" "{ TRUE, FALSE } TRUE: copy the drawable and bend the copy") + (proc-arg 0 "curve-type" " { 0, 1 } 0 == smooth (use 17 points), 1 == freehand (use 256 val_y) ") + (proc-arg 0 "argc-upper-point-x" "{2 <= argc <= 17} ") + (proc-arg 8 "upper-point-x" "array of 17 x point_koords { 0.0 <= x <= 1.0 or -1 for unused point }") + (proc-arg 0 "argc-upper-point-y" "{2 <= argc <= 17} ") + (proc-arg 8 "upper-point-y" "array of 17 y point_koords { 0.0 <= y <= 1.0 or -1 for unused point }") + (proc-arg 0 "argc-lower-point-x" "{2 <= argc <= 17} ") + (proc-arg 8 "lower-point-x" "array of 17 x point_koords { 0.0 <= x <= 1.0 or -1 for unused point }") + (proc-arg 0 "argc-lower-point-y" "{2 <= argc <= 17} ") + (proc-arg 8 "lower-point-y" "array of 17 y point_koords { 0.0 <= y <= 1.0 or -1 for unused point }") + (proc-arg 0 "argc-upper-val-y" "{ 256 } ") + (proc-arg 7 "upper-val-y" "array of 256 y freehand koord { 0 <= y <= 255 }") + (proc-arg 0 "argc-lower-val-y" "{ 256 } ") + (proc-arg 7 "lower-val-y" "array of 256 y freehand koord { 0 <= y <= 255 }") + (proc-arg 14 "bent-layer" "the handled layer")) + (proc-def "plug_in_curve_bend_Iterator" 1 + "This procedure calculates the modified values for one iterationstep for the call of plug_in_curve_bend" + "" + "Wolfgang Hofer (hof@hotbot.com)" + "Wolfgang Hofer" + "v1.3.18 (2003/08/26)" + "" + 0 + (icon icon-name -1 "") + "" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-NONINTERACTIVE (1) }") + (proc-arg 0 "total-steps" "total number of steps (# of layers-1 to apply the related plug-in)") + (proc-arg 3 "current-step" "current (for linear iterations this is the layerstack position, otherwise some value in between)") + (proc-arg 0 "len-struct" "length of stored data structure with id is equal to the plug_in proc_name"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/crop-zealous/crop-zealous" 1619534562 + (proc-def "plug-in-zealouscrop" 1 + "Autocrop unused space from edges and middle" + "" + "Adam D. Moss" + "Adam D. Moss" + "1997" + "_Zealous Crop" + 1 + (menu-path "<Image>/Image/Crop") + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/contrast-retinex/contrast-retinex" 1619534562 + (proc-def "plug-in-retinex" 1 + "Enhance contrast using the Retinex method" + "The Retinex Image Enhancement Algorithm is an automatic image enhancement method that enhances a digital image in terms of dynamic range compression, color independence from the spectral distribution of the scene illuminant, and color/lightness rendition." + "Fabien Pelisson" + "Fabien Pelisson" + "2003" + "Retine_x..." + 1 + (menu-path "<Image>/Colors/Tone Mapping") + (icon icon-name -1 "") + "RGB*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "scale" "Biggest scale value") + (proc-arg 0 "nscales" "Number of scales") + (proc-arg 0 "scales-mode" "Retinex distribution through scales") + (proc-arg 3 "cvar" "Variance value"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/compose/compose" 1619534562 + (proc-def "plug-in-compose" 1 + "Create an image using multiple gray images as color channels" + "This function creates a new image from multiple gray images" + "Peter Kirchgessner" + "Peter Kirchgessner (peter@kirchgessner.net)" + "1997" + "C_ompose..." + 1 + (menu-path "<Image>/Colors/Components") + (icon icon-name -1 "") + "GRAY*" + 7 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image1" "First input image") + (proc-arg 16 "drawable" "Input drawable (not used)") + (proc-arg 13 "image2" "Second input image") + (proc-arg 13 "image3" "Third input image") + (proc-arg 13 "image4" "Fourth input image") + (proc-arg 4 "compose-type" "What to compose: \"RGB\", \"RGBA\", \"HSV\", \"HSL\", \"CMYK\", \"LAB\", \"LCH\", \"YCbCr_ITU_R470\", \"YCbCr_ITU_R709\", \"YCbCr_ITU_R470_256\", \"YCbCr_ITU_R709_256\"") + (proc-arg 13 "new-image" "Output image")) + (proc-def "plug-in-drawable-compose" 1 + "Compose an image from multiple drawables of gray images" + "This function creates a new image from multiple drawables of gray images" + "Peter Kirchgessner" + "Peter Kirchgessner (peter@kirchgessner.net)" + "1998" + "" + 0 + (icon icon-name -1 "") + "GRAY*" + 7 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image1" "First input image (not used)") + (proc-arg 16 "drawable1" "First input drawable") + (proc-arg 16 "drawable2" "Second input drawable") + (proc-arg 16 "drawable3" "Third input drawable") + (proc-arg 16 "drawable4" "Fourth input drawable") + (proc-arg 4 "compose-type" "What to compose: \"RGB\", \"RGBA\", \"HSV\", \"HSL\", \"CMYK\", \"LAB\", \"LCH\", \"YCbCr_ITU_R470\", \"YCbCr_ITU_R709\", \"YCbCr_ITU_R470_256\", \"YCbCr_ITU_R709_256\"") + (proc-arg 13 "new-image" "Output image")) + (proc-def "plug-in-recompose" 1 + "Recompose an image that was previously decomposed" + "This function recombines the grayscale layers produced by Decompose into a single RGB or RGBA layer, and replaces the originally decomposed layer with the result." + "Bill Skaggs" + "Bill Skaggs" + "2004" + "R_ecompose" + 1 + (menu-path "<Image>/Colors/Components") + (icon icon-name -1 "") + "GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Image to recompose from") + (proc-arg 16 "drawable" "Not used"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/colormap-remap/colormap-remap" 1619534562 + (proc-def "plug-in-colormap-remap" 1 + "Rearrange the colormap" + "This procedure takes an indexed image and lets you alter the positions of colors in the colormap without visually changing the image." + "Mukund Sivaraman <muks@mukund.org>" + "Mukund Sivaraman <muks@mukund.org>" + "June 2006" + "R_earrange Colormap..." + 2 + (menu-path "<Image>/Colors/Map/Colormap") + (menu-path "<Colormap>") + (icon icon-name -1 "gimp-colormap") + "INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "num-colors" "Length of 'map' argument (should be equal to colormap size)") + (proc-arg 7 "map" "Remap array for the colormap")) + (proc-def "plug-in-colormap-swap" 1 + "Swap two colors in the colormap" + "This procedure takes an indexed image and lets you swap the positions of two colors in the colormap without visually changing the image." + "Mukund Sivaraman <muks@mukund.org>" + "Mukund Sivaraman <muks@mukund.org>" + "June 2006" + "_Swap Colors" + 0 + (icon icon-name -1 "") + "INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 2 "index1" "First index in the colormap") + (proc-arg 2 "index2" "Second (other) index in the colormap"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/colorify/colorify" 1619534562 + (proc-def "plug-in-colorify" 1 + "Replace all colors with shades of a specified color" + "Makes an average of the RGB channels and uses it to set the color" + "Francisco Bustamante" + "Francisco Bustamante" + "1.1" + "Colorif_y..." + 0 + (icon icon-name -1 "") + "RGB*" + 4 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 10 "color" "Color to apply"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/color-enhance/color-enhance" 1619534562 + (proc-def "plug-in-color-enhance" 1 + "Stretch color saturation to cover maximum possible range" + "This simple plug-in does an automatic saturation stretch. For each channel in the image, it finds the minimum and maximum values... it uses those values to stretch the individual histograms to the full range. For some images it may do just what you want; for others it may not work that well. This version differs from Contrast Autostretch in that it works in HSV space, and preserves hue." + "Martin Weber" + "Martin Weber" + "1997" + "_Color Enhance (legacy)" + 1 + (menu-path "<Image>/Colors/Auto") + (icon icon-name -1 "") + "RGB*, INDEXED*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/color-cube-analyze/color-cube-analyze" 1619534562 + (proc-def "plug-in-ccanalyze" 1 + "Analyze the set of colors in the image" + "Analyze colorcube and print some information about the current image (also displays a color-histogram)" + "robert@experimental.net" + "robert@experimental.net" + "June 20th, 1997" + "Colorcube A_nalysis..." + 1 + (menu-path "<Image>/Colors/Info") + (icon icon-name -1 "") + "RGB*, GRAY*, INDEXED*" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "num-colors" "Number of colors in the image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/cml-explorer/cml-explorer" 1619534562 + (proc-def "plug-in-cml-explorer" 1 + "Create abstract Coupled-Map Lattice patterns" + "Make an image of Coupled-Map Lattice (CML). CML is a kind of Cellula Automata on continuous (value) domain. In GIMP_RUN_NONINTERACTIVE, the name of a parameter file is passed as the 4th arg. You can control CML_explorer via parameter file." + "Shuji Narazaki (narazaki@InetQ.or.jp); http://www.inetq.or.jp/~narazaki/TheGIMP/" + "Shuji Narazaki" + "1997" + "CML _Explorer..." + 1 + (menu-path "<Image>/Filters/Render/Pattern") + (icon icon-name -1 "") + "RGB*, GRAY*" + 4 0 + (proc-arg 0 "ru--mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (not used)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 4 "parameter-filename" "The name of parameter file. CML_explorer makes an image with its settings."))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/checkerboard/checkerboard" 1619534562 + (proc-def "plug-in-checkerboard" 1 + "Create a checkerboard pattern" + "More here later" + "Brent Burton & the Edward Blevins" + "Brent Burton & the Edward Blevins" + "1997" + "_Checkerboard (legacy)..." + 1 + (menu-path "<Image>/Filters/Render/Pattern") + (icon icon-name -1 "") + "RGB*, GRAY*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "check-mode" "Check mode { REGULAR (0), PSYCHOBILY (1) }") + (proc-arg 0 "check-size" "Size of the checks"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/cartoon/cartoon" 1619534562 + (proc-def "plug-in-cartoon" 1 + "Simulate a cartoon by enhancing edges" + "Propagates dark values in an image based on each pixel's relative darkness to a neighboring average. The idea behind this filter is to give the look of a black felt pen drawing subsequently shaded with color. This is achieved by darkening areas of the image which are measured to be darker than a neighborhood average. In this way, sufficiently large shifts in intensity are darkened to black. The rate at which they are darkened to black is determined by the second pct_black parameter. The mask_radius parameter controls the size of the pixel neighborhood over which the average intensity is computed and then compared to each pixel in the neighborhood to decide whether or not to darken it to black. Large values for mask_radius result in very thick black areas bordering the shaded regions of color and much less detail for black areas everywhere including inside regions of color. Small values result in more subtle pen strokes and detail everywhere. Small values for the pct_black make the blend from the color regions to the black border lines smoother and the lines themselves thinner and less noticeable; larger values achieve the opposite effect." + "Spencer Kimball" + "Bit Specialists, Inc." + "2001" + "Ca_rtoon (legacy)..." + 1 + (menu-path "<Image>/Filters/Artistic") + (icon icon-name -1 "") + "RGB*, GRAY*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 3 "mask-radius" "Cartoon mask radius (radius of pixel neighborhood)") + (proc-arg 3 "pct-black" "Percentage of darkened pixels to set to black (0.0 - 1.0)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/busy-dialog/busy-dialog" 1619534562 + (proc-def "plug-in-busy-dialog" 1 + "Show a dialog while waiting for an operation to finish" + "Used by GIMP to display a dialog, containing a spinner and a custom message, while waiting for an ongoing operation to finish. Optionally, the dialog may provide a \"Cancel\" button, which can be used to cancel the operation." + "Ell" + "Ell" + "2018" + "" + 0 + (icon icon-name -1 "") + "" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0) }") + (proc-arg 0 "read-fd" "The read file descriptor") + (proc-arg 0 "write-fd" "The write file descriptor") + (proc-arg 4 "message" "The message") + (proc-arg 0 "cancelable" "Whether the dialog is cancelable (TRUE or FALSE)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/border-average/border-average" 1619534562 + (proc-def "plug-in-borderaverage" 1 + "Set foreground to the average color of the image border" + "" + "Philipp Klaus" + "Internet Access AG" + "1998" + "_Border Average..." + 1 + (menu-path "<Image>/Colors/Info") + (icon icon-name -1 "") + "RGB*" + 5 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "thickness" "Border size to take in count") + (proc-arg 0 "bucket-exponent" "Bits for bucket size (default=4: 16 Levels)") + (proc-arg 10 "borderaverage" "The average color of the specified border."))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/blur/blur" 1619534562 + (proc-def "plug-in-blur" 1 + "Simple blur, fast but not very strong" + "This plug-in blurs the specified drawable, using a 3x3 blur. Indexed images are not supported." + "Miles O'Neal <meo@rru.com>" + "Miles O'Neal, Spencer Kimball, Peter Mattis, Torsten Martinsen, Brian Degenhardt, Federico Mena Quintero, Stephen Norris, Daniel Cotting" + "1995-1998" + "_Blur" + 0 + (icon icon-name -1 "") + "RGB*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/blinds/blinds" 1619534562 + (proc-def "plug-in-blinds" 1 + "Simulate an image painted on window blinds" + "More here later" + "Andy Thomas" + "Andy Thomas" + "1997" + "_Blinds..." + 0 + (icon icon-name -1 "") + "RGB*, GRAY*" + 7 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image (unused)") + (proc-arg 16 "drawable" "Input drawable") + (proc-arg 0 "angle-dsp" "Angle of Displacement") + (proc-arg 0 "num-segments" "Number of segments in blinds") + (proc-arg 0 "orientation" "The orientation { ORIENTATION-HORIZONTAL (0), ORIENTATION-VERTICAL (1) }") + (proc-arg 0 "bg-transparent" "Background transparent { FALSE, TRUE }"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/animation-play/animation-play" 1619534562 + (proc-def "plug-in-animationplay" 1 + "Preview a GIMP layer-based animation" + "" + "Adam D. Moss <adam@gimp.org>" + "Adam D. Moss <adam@gimp.org>" + "1997, 1998..." + "_Playback..." + 1 + (menu-path "<Image>/Filters/Animation") + (icon icon-name -1 "media-playback-start") + "RGB*, INDEXED*, GRAY*" + 3 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/animation-optimize/animation-optimize" 1619534562 + (proc-def "plug-in-animationoptimize" 1 + "Modify image to reduce size when saved as GIF animation" + "This procedure applies various optimizations to a GIMP layer-based animation in an attempt to reduce the final file size. If a frame of the animation can use the 'combine' mode, this procedure attempts to maximize the number of ajdacent pixels having the same color, which improves the compression for some image formats such as GIF or MNG." + "Adam D. Moss <adam@gimp.org>" + "Adam D. Moss <adam@gimp.org>" + "1997-2003" + "Optimize (for _GIF)" + 1 + (menu-path "<Image>/Filters/Animation") + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)") + (proc-arg 13 "result" "Resulting image")) + (proc-def "plug-in-animationoptimize-diff" 1 + "Reduce file size where combining layers is possible" + "This procedure applies various optimizations to a GIMP layer-based animation in an attempt to reduce the final file size. If a frame of the animation can use the 'combine' mode, this procedure uses a simple difference between the frames." + "Adam D. Moss <adam@gimp.org>" + "Adam D. Moss <adam@gimp.org>" + "1997-2001" + "_Optimize (Difference)" + 1 + (menu-path "<Image>/Filters/Animation") + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)") + (proc-arg 13 "result" "Resulting image")) + (proc-def "plug-in-animationunoptimize" 1 + "Remove optimization to make editing easier" + "This procedure 'simplifies' a GIMP layer-based animation that has been optimized for animation. This makes editing the animation much easier." + "Adam D. Moss <adam@gimp.org>" + "Adam D. Moss <adam@gimp.org>" + "1997-2001" + "_Unoptimize" + 1 + (menu-path "<Image>/Filters/Animation") + (icon icon-name -1 "") + "RGB*, INDEXED*, GRAY*" + 3 1 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (unused)") + (proc-arg 13 "result" "Resulting image"))) +(plug-in-def "${gimp_plug_in_dir}/plug-ins/align-layers/align-layers" 1619534562 + (proc-def "plug-in-align-layers" 1 + "Align all visible layers of the image" + "Align visible layers" + "Shuji Narazaki <narazaki@InetQ.or.jp>" + "Shuji Narazaki" + "1997" + "Align Visi_ble Layers..." + 1 + (menu-path "<Image>/Image/Arrange") + (icon icon-name -1 "") + "RGB*,GRAY*,INDEXED*" + 5 0 + (proc-arg 0 "run-mode" "The run mode { RUN-INTERACTIVE (0), RUN-NONINTERACTIVE (1) }") + (proc-arg 13 "image" "Input image") + (proc-arg 16 "drawable" "Input drawable (not used)") + (proc-arg 0 "link-after-alignment" "Link the visible layers after alignment { TRUE, FALSE }") + (proc-arg 0 "use-bottom" "use the bottom layer as the base of alignment { TRUE, FALSE }"))) + +# end of pluginrc diff --git a/GIMP/2.10/sessionrc b/GIMP/2.10/sessionrc new file mode 100755 index 0000000..302e192 --- /dev/null +++ b/GIMP/2.10/sessionrc @@ -0,0 +1,110 @@ +# GIMP sessionrc +# +# This file takes session-specific info (that is info, you want to keep +# between two GIMP sessions). You are not supposed to edit it manually, but +# of course you can do. The sessionrc will be entirely rewritten every time +# you quit GIMP. If this file isn't found, defaults are used. + +(session-info "toplevel" + (factory-entry "gimp-empty-image-window") + (position 410 370) + (size 620 200)) +(session-info "toplevel" + (factory-entry "gimp-single-image-window") + (position 0 21) + (size 1920 1059) + (open-on-exit) + (aux-info + (left-docks-width "44") + (right-docks-width "350") + (maximized "no")) + (gimp-toolbox + (side left)) + (gimp-dock + (side right) + (book + (current-page 0) + (dockable "gimp-tool-options" + (tab-style automatic) + (aux-info + (show-button-bar "true"))) + (dockable "gimp-font-list" + (tab-style automatic) + (aux-info + (show-button-bar "true")))) + (book + (position 631) + (current-page 0) + (dockable "gimp-layer-list" + (tab-style automatic) + (preview-size 32) + (aux-info + (show-button-bar "true"))) + (dockable "gimp-channel-list" + (tab-style automatic) + (preview-size 32) + (aux-info + (show-button-bar "true")))))) +(session-info "toplevel" + (factory-entry "gimp-image-new-dialog") + (position 884 278)) +(session-info "toplevel" + (factory-entry "gimp-keyboard-shortcuts-dialog") + (position 1431 198) + (size 929 676)) +(session-info "toplevel" + (factory-entry "gimp-input-devices-dialog") + (position 0 497)) +(session-info "toplevel" + (factory-entry "gimp-preferences-dialog") + (position 459 195) + (size 1008 692)) +(session-info "toplevel" + (factory-entry "gimp-file-save-dialog") + (position 115 141) + (size 840 752)) +(session-info "toplevel" + (factory-entry "gimp-file-open-dialog") + (position 278 100) + (size 840 752)) +(session-info "toplevel" + (factory-entry "gimp-file-export-dialog") + (position 823 255) + (size 840 752)) +(session-info "toplevel" + (factory-entry "gimp-module-dialog") + (position 268 330) + (size 671 476)) +(session-info "toplevel" + (factory-entry "gimp-toolbox-color-dialog") + (position 0 0)) +(session-info "toplevel" + (factory-entry "gimp-operation-tool-dialog") + (position 1518 93)) +(session-info "toplevel" + (factory-entry "gimp-threshold-tool-dialog") + (position 467 474)) +(session-info "toplevel" + (factory-entry "gimp-curves-tool-dialog") + (position 1849 92) + (size 446 605)) +(session-info "toplevel" + (factory-entry "gimp-action-search-dialog") + (position 812 260) + (size 983 540) + (monitor 1)) +(session-info "toplevel" + (factory-entry "gimp-levels-tool-dialog") + (position 1635 99) + (size 462 593)) +(session-info "toplevel" + (factory-entry "gimp-brightness-contrast-tool-dialog") + (position 727 139)) + +(hide-docks no) +(single-window-mode yes) +(show-tabs yes) +(tabs-position 0) +(last-tip-shown 0) + +# end of sessionrc diff --git a/GIMP/2.10/tags.xml b/GIMP/2.10/tags.xml new file mode 100755 index 0000000..ad2cb62 --- /dev/null +++ b/GIMP/2.10/tags.xml @@ -0,0 +1,3816 @@ +<?xml version='1.0' encoding='UTF-8'?> +<tags> + + <resource identifier="${gimp_data_dir}/brushes/Round.vbr" checksum="a7f02530d3bc7484c8f9240cbe9c65b1"> + <tag>redondo</tag> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Round-Fuzzy.vbr" checksum="f8cb2466841104a55e42afce4568d103"> + <tag>difuso</tag> + <tag>redondo</tag> + </resource> + + <resource identifier="gimp-brush-clipboard-image" checksum="157dcef48665ab465439cfaf10d6feeb"> + </resource> + + <resource identifier="gimp-brush-clipboard-mask" checksum="157dcef48665ab465439cfaf10d6feeb"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Basic/1-pixel.vbr" checksum="c84494b4a904a7c1a3548e564b073ca3"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Basic/Block-01.vbr" checksum="11dc53930c1fb124f5502d3e2dba4c8e"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Basic/Block-02.vbr" checksum="23b547a4b3ac156c4efba20bbb91a662"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Basic/Block-03.vbr" checksum="678860176ea362c2d3db787b8b0710fa"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Basic/Hardness-025.vbr" checksum="24f599a94c72395b1733a8cf64bf4527"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Basic/Hardness-050.vbr" checksum="22550538bb856626930902cb0c398f74"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Basic/Hardness-075.vbr" checksum="c196ef1b139d8f2744e6519c7a220cf1"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Basic/Hardness-100.vbr" checksum="22b8f688f7cd7d6139c56dfc33b14bfd"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Basic/Star.vbr" checksum="fdd1163d5fdf7371df2dd7896e79231a"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Media/Acrylic-01.gih" checksum="9ec0779f4c84fb3d0844bcdb069c8e0a"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Media/Acrylic-02.gih" checksum="da0b21c73078882a59430ce68e8860b9"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Media/Acrylic-03.gih" checksum="46c0656093b556418dbcd24de48a2596"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Media/Acrylic-04.gih" checksum="11311bde958533f3b7ada598af5c6d46"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Media/Acrylic-05.gih" checksum="50cfa85464d38b04c719770e045f4e3c"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Legacy/confetti.gih" checksum="d136b60fdd9cf41693a485a329b32e95"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Media/Bristles-01.gbr" checksum="fdb59dabc3b9fc9716bd87cfe225ba3b"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Media/Bristles-02.gbr" checksum="6432476cb5cb5b5642433465e23f7402"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Media/Bristles-03.gbr" checksum="6162ce91b1218ec8f0f98bfab930d5bf"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Cell-01.gbr" checksum="4814485c0f5974fa193eb15f710c3d1c"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Cell-02.gbr" checksum="e5ce74dd25bdd3fc05ab8d930c6f9e44"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Sketch/Chalk-01.gih" checksum="832186dc1b71adbcb2f1a6ba08ce302f"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Sketch/Chalk-02.gih" checksum="27729bcad9c20129add5833bfcba2da8"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Sketch/Chalk-03.gih" checksum="6d195118ceb4102d508eb3faedcf6dcc"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Sketch/Charcoal-01.gbr" checksum="1cd3f9664c688103f0b230299dcf6987"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Sketch/Charcoal-02.gbr" checksum="e77611c1661ab0d3bf4503d3238a5644"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Sketch/Charcoal-03.gih" checksum="2be01e62b00a1c1fdc13aa92a7a91a6a"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Legacy/confetti.gbr" checksum="ba5a4759cb321b81e232bba3f33dce76"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Fun/GEGL-goat.gih" checksum="7a80114d08663b04b3825b92db7e98c4"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Grass.gih" checksum="81d3c86640806e7ad40f5e0c93d941ef"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Splatters/Grunge-01.gih" checksum="c9997d3cd91fccddfac507856b7dc17b"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Hatch-Pen-01.gbr" checksum="97bc16ea1390946dc8f2c626294af921"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Media/Oils-01.gbr" checksum="31ae0d62365e54402dcfe80784c6d691"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Media/Oils-02.gbr" checksum="21f2ec5f7d414a2f3fffa97752675f55"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Media/Oils-03.gbr" checksum="0128fe2fd4bdf5894c52c787f742b587"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Sketch/Pencil-01.gih" checksum="775f1ee9e24fd5b71433472a5bf168ef"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Sketch/Pencil-02.gih" checksum="1f5cae22c8f8d30e027ade099c69d34c"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Sketch/Pencil-03.gih" checksum="60089770c393b8f84c0b1238b2d818cc"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Sketch/Pencil-Scratch.gbr" checksum="4213a17b290fd39a5c6c72d75b1aa4ac"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Basic/pixel.gbr" checksum="ce0705096e61dc0645b2c13a122d8e8f"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Smoke.gbr" checksum="eb1577def9f3a209b3457a9c99333dd9"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Splatters/Sparks-Hose.gih" checksum="50faf43769ea9c6986fa38839e348b77"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Splatters/Splats-01.gih" checksum="5ce135cbb844ce745db15150c15acde9"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Splatters/Splats-02.gih" checksum="e2352e2b26137b13161a859209e89b95"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Splatters/Sponge-01.gbr" checksum="355cc39ffe2d0fb382a51eb0a806f2bb"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Splatters/Sponge-02.gbr" checksum="4c0798a6621eef155dc86a79fe5df810"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Stone-Work-01.gih" checksum="8f1a964051f81e166def5b00fce15e27"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Texture-01.gbr" checksum="6c41a55e3cfaf5dc03988f05be6106f8"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Texture-02.gbr" checksum="a2459f434c81d8eefeb063c005db9d80"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Texture-Hose-01.gih" checksum="c36845a56879e601fbfeada31f5b414b"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Texture-Hose-02.gih" checksum="bfd5be7b42a28d038930f1aef897320d"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Texture-Hose-03.gih" checksum="d2818e2a9346edf7c76aeea5a215f5ca"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Vegetation-01.gbr" checksum="5f180b3d17ee11a9367489f2a597a451"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Texture/Vegetation-02.gih" checksum="6ce358a6a63479e729469f64bc77e361"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Legacy/vine.gih" checksum="3963e1de9cf5ead1f8cb6332b9351c6f"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Fun/Wilber.gih" checksum="1525d51a45fc9c0fea1cc1a0bf4d5b2a"> + </resource> + + <resource identifier="${gimp_data_dir}/brushes/Fun/pepper.gbr" checksum="de818baf36685bdd260055a3e0204d57"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Basic-Dynamics.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Basic/Basic-Simple.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Color-From-Gradient.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/FX/Confetti.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Dynamics-Off.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Basic/Dynamics-Random.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Fade-Tapering.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Basic/Negative-Size-Pressure.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Basic/Pen-Generic.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Basic/Pencil-Generic.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Basic/Pencil-Shader.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/FX/Perspective.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Basic/Pressure-Opacity.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Basic/Pressure-Size.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Random-Color.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/FX/Speed_Size_Opacity.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Tilt-Angle.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Track-Direction.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/dynamics/Velocity-Tapering.gdyn" checksum="(null)"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/100%_Opaque.myb" checksum="dba34eb70ff72295b544e5ded94d1315"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/1pixel.myb" checksum="edc5df19469776f35d08d24f9248c406"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/2B_pencil.myb" checksum="abaa73df608d192d62bd3a33636cf1ba"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/2B_pencil.myb" checksum="7136280b33d2f2cb27c2cfcc96c57ce4"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/4H_pencil.myb" checksum="2718434e495370fb4d96d217a3c524c2"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/Airbrush_a.myb" checksum="a1452f0bb3cb9b12bb675217f6bd9e35"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/B-pencil.myb" checksum="2988d540b16ef2e32d500e6b7af6d3cd"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Beamlight.myb" checksum="91a10104dfd5bfdf6bca31b00936d6f0"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/BigAirbrush.myb" checksum="faa4428842e786fffb727376c7cffa8b"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Blur_Fast.myb" checksum="3e14060e7440e0f8447f3fbb5c6710d6"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Classic_Paint.myb" checksum="652661a003f0969a8d63c5276c21af3b"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Clouds.myb" checksum="7fa3079c18b44060670420deec6861b2"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/DNA_brush.myb" checksum="e20d591640ba2295d68f2b358a118fae"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Delayed_.myb" checksum="2e4d57acffc5f5a229a616b10d3cc533"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Dirty_Noise.myb" checksum="d355916cb8aca79117279ad6319be40c"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/Dirty_Transparent_sk.myb" checksum="9700636c03eb486931da7b04bd9db1b7"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Glow_Airbrush.myb" checksum="df630083203326bda3748adbba905cb9"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Grain.myb" checksum="bde2dbc003d0628150e8b1851d17abe4"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Hard_Eraser.myb" checksum="524ee86e69183e91afdf94ce5a39365c"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Knife.myb" checksum="38ba0f2a7d41814354e53dd1676422fc"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Marker.myb" checksum="6dfbee4cd93bdee3bdd680a27c1ca5af"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/P._Shade.myb" checksum="a6b44ee613ffdd5b6d4ce6050838bbc5"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Pastel_1.myb" checksum="81db0eecb92781466b76b2a4066c1e33"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Pen.myb" checksum="b956254c3a665805448802fa1275b56a"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/PenBrush.myb" checksum="a2cb08ec273ec224df7217655de5fb19"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/RS_blendOP.myb" checksum="3c5a04b5775e9019cd3a94ad8c079164"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Round.myb" checksum="9a20f0b34a0d0eac9463e934699b4e76"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Round_Bl.myb" checksum="b4ebd4e616bb56bee49cc05a3c47676f"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Sketch_1.myb" checksum="40729d50c3623a8cac0ee1778debef65"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/Sketcher2_sk.myb" checksum="9f3192960ab6a09d560883f84bb8fbe1"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Smear.myb" checksum="b75b209217e7a5304177d5a94a97b0c8"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/Smear_sm.myb" checksum="3f5b61c4a3794ac0163b52a021f48a9d"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Soft_Eraser.myb" checksum="09e37d4660c215624747193a2bff2f74"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Thin_Pen.myb" checksum="a7461645815a188c87ef930138df87ee"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/Wet_Direction.myb" checksum="11f4daa12dabb83908ecca48ffb81383"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/acrylic-03-only-water.myb" checksum="8e76d58e5779a6d3938bace274dfe2b8"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/acrylic-03-paint.myb" checksum="ddeb904dbe98e0ada934917c4631764b"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/acrylic-03-with-water.myb" checksum="47632d223f219632c8bab7aff8b11e21"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/acrylic-04-only-water.myb" checksum="d1e977c6b6ad2e92ea09902e8eb05ccd"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/acrylic-04-paint.myb" checksum="1cb3f8a8f3a93655b422e85fb8d4dcd5"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/acrylic-04-with-water.myb" checksum="8a1fcc64cbda6bad185b605dda7734c2"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/acrylic-05-only-water.myb" checksum="8ea7d1f42d276b4cc007c78d9f466613"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/acrylic-05-paint.myb" checksum="93a2862e570f020f90dd0652f1637227"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/acrylic-05-with-water.myb" checksum="c443fe3272da444032d7a8230d1124a2"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/airbruch_press_a.myb" checksum="2124811bb2fc34a7e513eab2b83c04ab"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/airbrush.myb" checksum="e0a42db004a2031d79bbad9cf7932fbb"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/airsmudge_a.myb" checksum="dc8fa0d02e617af4edf1cf6c55e4b530"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/airsmudgeultimate_sk.myb" checksum="0d171b9a901deff13618681583ca6516"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/ballpen.myb" checksum="0df9565cf6dad98cb80e809346d0bda7"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/basic.myb" checksum="92832b48532ab5e997843216d34c173a"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/basic_digital_brush.myb" checksum="ea4b32f5e0f096850bf8a324a5430485"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/basic_digital_brush_smudging.myb" checksum="db84aa0c3a872ac3a28cfea64820f78b"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/basic_digital_knife.myb" checksum="487dcbc1afac31f23c06f14cc97d679a"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/basic_digital_knife_smudging.myb" checksum="62b21082fa2492e916825df3f820f8b2"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/blend+paint.myb" checksum="bce3bd91fc31fadc39dafa95e33d9614"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/blending.myb" checksum="d90f949c9a06e542e7cf6300475d23c5"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/blending_knife.myb" checksum="1ce38e00da76b3ae3250dc093283964b"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/blur.myb" checksum="a8e7e042ec22897b8107f5ae2822c07f"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/brush.myb" checksum="edcc0d95df5c1e1388bd9a0216d46acb"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/brush.myb" checksum="08853a92bb7d6536cfbacaff07ac845f"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/bubble.myb" checksum="711d645b1d9bf7389fcc186ecd6ed1ad"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/bulk.myb" checksum="e44e2dbadcd1335160a29e46322c6356"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/calligraphy.myb" checksum="cc8fc9608de7f74ed40d458681de8d91"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/chalk.myb" checksum="5a0e5c2a87ce94752cef6fc126ac709f"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/charcoal.myb" checksum="c9b07a3269e570b8cb49ffc64cd6f43f"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/charcoal-01.myb" checksum="b34b9dd07c266b80d8cae0c076005602"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/charcoal-03.myb" checksum="68d84dbfa6cfcf9e7033aa4cf9ba04ba"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/charcoal-04.myb" checksum="acce970670cc73538b5916a220986b11"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/charcoal-blur1.myb" checksum="c8b7b28b8478b554f42d4e4a63796a11"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/classic_sk.myb" checksum="9bd31cfe236ff595d72278dc9245c47e"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/classicroundblock_static_c.myb" checksum="8a302c6160d1d033b13a4f4cd78f0646"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/coarse_bulk_1.myb" checksum="107f3a882b4b5edc19542a76a41c2c88"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/coarse_bulk_2.myb" checksum="e321e31fc53a0c9f814f8df66704d2e5"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/coarse_bulk_3.myb" checksum="f5faa729b0913a15aeec4f002b4705da"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/detail_brush_large.myb" checksum="3ffe0b0d29fba957ea737215b62e1081"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/detail_brush_large_glazing.myb" checksum="628f35314cffb97af90636d67be8a87a"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/detail_brush_thin.myb" checksum="63cee845bed60394db7627c2184da65b"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/detail_brush_thin_glazing.myb" checksum="d6ae174de6b77f2e6a3ccbf38396d1b6"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/dry_brush.myb" checksum="e2bc50ed4427d22dbc8a494363e75ff4"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/extreme_round_l.myb" checksum="9f2837c8244d179789c7b606cf6f4236"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/fill.myb" checksum="b18ce179795fb8d8c2e806264ca5d17e"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/fill_c.myb" checksum="1459723aa5bcc9da6759b15a42214a5e"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/flat_bar_l.myb" checksum="df8f3310705e8427710378cb7247f877"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/fur.myb" checksum="6366d5dfb337accd64bcdef2105107fd"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/glow.myb" checksum="2ae5b11c9fb61b057d171e4551787024"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/grainy_blending.myb" checksum="df5602fd713114eee5c59fdcbaeddb1f"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/hard_blot.myb" checksum="e412f824afaeab8d3fcfa3a69cb0a820"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/hard_sting.myb" checksum="51967351a9eec6cf6e6296f813d8c60e"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/imp_blending.myb" checksum="1e9384e21aa7bf56fc0042ef2e7efa30"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/imp_details.myb" checksum="3c577a52249933cc97721f7146ca2c2b"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/impressionism.myb" checksum="08403e2c69074fc8a2fb0c1a4ef36ccd"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/ink_blot.myb" checksum="bfdaf640cdfd8ac21aa7755c86b6b211"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/ink_eraser.myb" checksum="2a9f9d4fc333a98c66b24bd3bf61bbf4"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/ink_slow_s.myb" checksum="142431dd853cbaea246b5ef55d861218"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/ink-slowline_s.myb" checksum="bdb4cc8434a37f470b8caad86e678c9e"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/inkster_l.myb" checksum="34184247174bf95343a4fe85240789f1"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/irregular_ink.myb" checksum="5441209fff5e03048d2c76a536167407"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/kabura.myb" checksum="b8ddf48a52f62c671d4081738b376644"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/kneaded_eraser.myb" checksum="11657422b577a2cc450525f4547664c4"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/kneaded_eraser_large.myb" checksum="89aa5a7b495a35d1da66858272ad8441"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/knife.myb" checksum="ae918f91195757c1869c1f014c565c2e"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/large_hard_eraser.myb" checksum="c0ba64637a3ed672f9933cc54a2ec2da"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/large_watercolor_fringe.myb" checksum="e4a58bec344ca0f797548a065a380af8"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/leaves.myb" checksum="5756034d30b5b54e1cde81a2492aec26"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/liner.myb" checksum="8803be1a13ac340a75ac8dd3bb9ba2c7"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/long_grass.myb" checksum="0a9f9091c733fa38dcedcb84e999b375"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/marker-01.myb" checksum="d7063a780f422102fffc2feb618873be"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/marker-05.myb" checksum="9bfdcdadfd47b24649a66ec5ebe763df"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/marker_fat.myb" checksum="1a6c0d46be5b44dab9a14699d031a5bc"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/marker_small.myb" checksum="8cde245c0711668e6ea1c0c37660f710"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/modelling.myb" checksum="a3de139d4776f4037d96c388adc33ca0"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/modelling2.myb" checksum="4180f9d0d99c30b69fcaf19cb829c056"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/oil-01-clean.myb" checksum="6ab4217bf9b50175fc007f8386744f8d"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/oil-01-paint.myb" checksum="7f1c347156dfdf585ebcd63f3655ece3"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/oil-03-clean.myb" checksum="8ccb0b5b146a69d03c8de439b39ee75e"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/oil-03-paint.myb" checksum="caa31442c820142f1b9d8e3dab0eba67"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/oil-06-clean.myb" checksum="5bd86ea7c601f4cce3e315d18a0db1b1"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/oil-06-paint.myb" checksum="5d9a2723af33739c1c8fe150e5e0719d"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/oil-mop.myb" checksum="1b59c769e486827fe1ba1fa074f4a437"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/only_water_fringe.myb" checksum="96d556d137c3bfec7dbc3ce0745c0e01"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/paint_barrr_sm.myb" checksum="267761c0eb7ddd9ef19c139ba2367c87"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/paint_radius_2_sm.myb" checksum="1725f2b5c73326c247c89e20b4df8417"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/paint_sm.myb" checksum="e19eb1af0f70d2494322ccf4c30d359b"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/particules_3.myb" checksum="dcaac293237f3b7c0ebd58230b90995a"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/particules_eraser.myb" checksum="192f5067106dcb3f605490e4495c2fa7"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/pen.myb" checksum="3bb7024548f46c8681a37593ee834d18"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/pen.myb" checksum="f153b2d8987efdb2be18b8813a47bf54"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/pen-note.myb" checksum="53c28c28967a1b373f58010d4e2883f2"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/pencil.myb" checksum="21a17d4c4fce369e8b74d0e632962530"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/pencil-2b.myb" checksum="1bac673cb02a524cf100df0385099f78"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/pencil-8b.myb" checksum="45b873e55578e2287a2ab2ad73fbc461"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/pick_and_drag.myb" checksum="c2f441d54d7a8f2097c96087717e22ac"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/pixel_hardink.myb" checksum="cc53998efab5d3cd5064e46bda62800c"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/pixelblocking.myb" checksum="be6506b5fbef99d305c8b973cb7b14c3"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/pointy_ink.myb" checksum="ab81789cd3584926f103b7a4ed452d65"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/puantilism.myb" checksum="d05c2b445f6c4e69886143ceb07adba0"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/puantilism2.myb" checksum="3272ec1f21f5060de1ad20ba9bbb219f"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/rigger_brush.myb" checksum="d237cf7255c86f35be825404c11aef78"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/rigger_brush_thin.myb" checksum="781e420d287e11edf49a8b61c138f91d"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/rough.myb" checksum="0498848831b2fb431b83f7691a844295"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/rounded.myb" checksum="e3b3e38a6470df5fec0be391bbbf724c"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/sewing.myb" checksum="2987134ec9d4cd588a9b7246f7337738"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/short_grass.myb" checksum="0ec71dc5e66510177da72238274ca852"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/slow_ink.myb" checksum="8f066598527f37508a61e1ee3e622d97"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/small_blot.myb" checksum="35249200497c58ecb7d1cd066d2c7764"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/smudge.myb" checksum="3a9883b06c2a1116783a94392616f8e8"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/smudge_ink(0.7)_sm.myb" checksum="cee7a29b729822d576f9a41cb39563a0"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/smudge+paint.myb" checksum="b1d0170c49df00643e98704fbb01b3ab"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/soft.myb" checksum="6b236315fce5025fefe96b72482f1518"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/soft-dip-pen.myb" checksum="9eacd9038516a9119086f18c561666b9"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/soft_irregular.myb" checksum="396a9cc241a1e1fee1b681300de22295"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/spaced-blot.myb" checksum="b4e870b6729cc738629247a89e31fe7e"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/speed_blot.myb" checksum="65147619278f66bfaf16cbe03fcd8f23"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/splatter-02.myb" checksum="1756c8061232f11607c704a22ec99f67"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/splatter-04.myb" checksum="d3c132e9760ea5e5c4034c4d556fd751"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/sponge_smudging.myb" checksum="678ffbd251578f30a1966849a766cb9d"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/spray.myb" checksum="11f27a3b00a53495f417e7d4b69be23f"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/spray2.myb" checksum="1ecd1f9bd6fd3c608cf626049e944430"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/subtle_pencil.myb" checksum="5249633fdf8574c977fb603329f8287a"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/texture-03.myb" checksum="948838b0cf317505137c30cd5b7e03fe"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/texture-06.myb" checksum="06a1ef0e4c7cdeb579821679fcdd9dce"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/texture-12.myb" checksum="7f87328f6bda2dd48b824c98ab9190ed"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/textured_ink.myb" checksum="ed8c38994392cecbda553cef899088e4"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/thin_hard_eraser.myb" checksum="cf2157f66a1e667648969e076766de28"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/thin_watercolor.myb" checksum="8f873aaeb3794d515fa3b4d6bf37df40"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/experimental/track.myb" checksum="bac55dc82b732252ed3a6729c75ff063"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/water-01.myb" checksum="4a080d825f76d8e720c8f900174dbf6f"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/water-02.myb" checksum="e11feabc7497a2990ba51bb8b37b1fc7"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/water-05.myb" checksum="088dc0efbaf0e6f897469e611549a9c9"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/water-06.myb" checksum="a852e64381d5a2c14e082071b271609e"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/watercolor-02-paint.myb" checksum="9a8953419ce0a010d54c4bec29cc2038"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/tanda/watercolor-02-water.myb" checksum="3fe94ba21c0729047c5254ad197984c6"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/watercolor_expressive.myb" checksum="9b77a488ca897ad8a1e0e18e9ac2a5fb"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/deevad/watercolor_glazing.myb" checksum="29d89e504a80fd714a6b817f8a6639b5"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/classic/wet_knife.myb" checksum="3a5b2a816f8a21e78b8c014189bac0c3"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/kaerhon_v1/wet_paint_sm.myb" checksum="93952a21d06794ba495c04cfa88cd7cb"> + </resource> + + <resource identifier="${mypaint_brushes_dir}/ramon/wet_round.myb" checksum="038abfe33947692f773e0244d2ac7fc1"> + </resource> + + <resource identifier="gimp-pattern-clipboard-image" checksum="eff9598f9f61c1dc78d842f1798c2ab8"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/3dgreen.pat" checksum="00052731f14a5bc614daece969b368bc"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/amethyst.pat" checksum="ac004a0215ba837c01964226611635c0"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/blue.pat" checksum="9505c5e2df62d486dfd110eb08d9c022"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/bluegrid.pat" checksum="3ae3c2b4b499381174ccf8a49b8c205f"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/bluesquares.pat" checksum="6ae618f4f9833a1030fbf58c149c7241"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/blueweb.pat" checksum="b737ccf05a59c87cd120cc7a017224e7"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/brick.pat" checksum="1f241d71810da697b596525c50054ee7"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Fabric/burlap.pat" checksum="6046ce5617773e56cbc602842cd55124"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/burlwood.pat" checksum="3362a830595ec24c532d25fca6e82841"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Food/choc_swirl.pat" checksum="8f00b531d09279a0f7aa0c3208e26206"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/corkboard.pat" checksum="e0e344790d5425d5afe695b9b67b9a51"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/cracked.pat" checksum="31e59d7417cb4ef2dddd53cf2e136b2d"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/Craters.pat" checksum="6286edd005a095e1d20209bd8c63c130"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Paper/crinklepaper.pat" checksum="b53d9e73d9c352e6cc4c94be921ba4d2"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/ground1.pat" checksum="00f690561e89d65d4b1257f0823b9977"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Water/electric.pat" checksum="c81aa3894d24289215497524598da855"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/fibers.pat" checksum="2830a6fc5f66e85493efedb4d4c6a84c"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/granite1.pat" checksum="c6220b4ee84951282053d96da7c0df91"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Water/ice.pat" checksum="3248a69c033c15e46356a9ecb996c652"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Food/java.pat" checksum="e66740db4790b501508b84b780a4158b"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Animal/leather.pat" checksum="18fae1b0cb726162fda4c8a850ce6665"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Animal/leopard.pat" checksum="e8518a613d2df2bfa1ce16c6f19380c0"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Sky/lightning.pat" checksum="e53b923bdeccd742866cc836127b53cb"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Plant/leaves.pat" checksum="991d0263a630f7d9379f3181cc5cf4dd"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/marble1.pat" checksum="7cca1d947b97e995440affa1a70e7afb"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/marble2.pat" checksum="b703250ff7bf9a13e0bf1cc7b951e8b4"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/marble3.pat" checksum="188e4483a8ad8d7adad18cb7475f2d4c"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/nops.pat" checksum="8e398be1aaa1b1ac6392ebb5a8dd5831"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/Moonfoot.pat" checksum="690271aaafee910dfc7b3fe2888c65cd"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Paper/paper.pat" checksum="460447543ed49484ecf388d14d123eb8"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/parque1.pat" checksum="f7d5acd98b59f7830ea3b1afe92d29e6"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/parque2.pat" checksum="0b6e61665a81c96478faa1e4fe0af354"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/parque3.pat" checksum="a99fdcc9bc2814e7d51e05faeb07ec85"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/pastel.pat" checksum="9173341213573b8c87467733c34078ba"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/pine.pat" checksum="52fc540af9e485c532b96f3b2724ad74"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/wood2.pat" checksum="615a4ea243b717b73605569459aed362"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/pink_marble.pat" checksum="51a9ca43d2baf5243cb79d8a2f4db20f"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Water/pool.pat" checksum="b4f48469ab59632276d2b4d9af9dbde8"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/qube1.pat" checksum="3b96b82e490bea730e17dd752ffb7bc9"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Water/rain.pat" checksum="8babfb520276b39f918aa059ca1594be"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/redcube.pat" checksum="f64dee0efbc2fa301d7b4f3903a68308"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/rock.pat" checksum="93bc028e503811f0908f4de70681b733"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Sky/sky.pat" checksum="78ffe7ed45f4cd89859a653debebc84c"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/slate.pat" checksum="fb10d3127362b61330e77ced0edddd7e"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/sm_squares.pat" checksum="4ba7d3135d74ec48bca8ee42c9645866"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Sky/starfield.pat" checksum="b21a6bc688e62e02d16150fd5c2a3afe"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/stone33.pat" checksum="002ee5669bd46d09a642853bfd3a543f"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/Stripes2px.pat" checksum="7a5292735452fc15bf789fa3ea064ad2"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/Stripes1px.pat" checksum="7343d6b31434a2e736de3c5ab5197424"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Stone/terra.pat" checksum="45c52055d10cc53a7a280777e6b76382"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/bark.pat" checksum="3d9dffc8833fe742b90c1a1f2f87e76c"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/walnut.pat" checksum="56b154ad68b400a4b62c62f314e278d4"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/warning.pat" checksum="bacf4a9e22fb7e97d705739ebf1aa205"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/wood5.pat" checksum="9a3b13cfc2d4a3b18bd7754506fe9ac6"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/wood3.pat" checksum="08109cffa79e14773e39e2390af5bc40"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/wood4.pat" checksum="2040255fdf70572e7d79395a7b191dd6"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Wood/wood1.pat" checksum="0c055f250ddbccc1b32d05f8c0ad7012"> + </resource> + + <resource identifier="${gimp_data_dir}/patterns/Legacy/recessed.pat" checksum="2743a836d39c547e0d83de27bffb45c1"> + </resource> + + <resource identifier="gimp-gradient-custom" checksum="aae359f9c3bae36cd27eac3a47c7f564"> + </resource> + + <resource identifier="gimp-gradient-fg-bg-hsv-cw" checksum="86589f70c8a7777c6e2d1d14b99e3759"> + </resource> + + <resource identifier="gimp-gradient-fg-bg-hsv-ccw" checksum="65aacbbd72d99ff20ca1bd310f0a21a5"> + </resource> + + <resource identifier="gimp-gradient-fg-bg-rgb-hardedge" checksum="f3a21fae99695a8feac84cee0ddd716a"> + </resource> + + <resource identifier="gimp-gradient-fg-bg-rgb" checksum="4a878c6cfae0b0e03c0834723daadf92"> + </resource> + + <resource identifier="gimp-gradient-fg-transparent" checksum="1491f74caf057a39c8193470da2d2a29"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Abstract_1.ggr" checksum="edaa7d1fc882ab813b75b49ee9272913"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Abstract_2.ggr" checksum="3e6332a87dc9021be25a01ea217d12f0"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Abstract_3.ggr" checksum="edef536ca9974a1fee7bc280c4fa9158"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Aneurism.ggr" checksum="10d0afd25892733e4c8a71e7714c0a3c"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Blinds.ggr" checksum="672688a7f97c746e27b995645d893f81"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Blue_Green.ggr" checksum="ad7afdd77e95fb0cbc7b68627715aa13"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Browns.ggr" checksum="d24a91392f3b5c5e34dedc8d1fc6bfa0"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Brushed_Aluminium.ggr" checksum="8995cf0de6e9f5082a4bc879dc77ebd0"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Burning_Paper.ggr" checksum="5aaed0c7692abe7cbfb75744b7967828"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Burning_Transparency.ggr" checksum="ab6a58127b01c77ea378b97585d2d3cb"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/CD.ggr" checksum="aa4627507fb28c79bb1d864f2ae3eeaa"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/CD_Half.ggr" checksum="6f70875e41cc69d68b7a0e7d9d5652bf"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Caribbean_Blues.ggr" checksum="899e32a0cf94010dff9e1f93579f4292"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Coffee.ggr" checksum="a3407a154e1b875fe1858b57279db00f"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Cold_Steel.ggr" checksum="656bc3893f6e7bbbaa9be0ee3a4a7c9f"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Cold_Steel_2.ggr" checksum="b3b5c2560412ea9316116320f112ad9a"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Crown_molding.ggr" checksum="e7fe6c14bf776c1564601bfc024d066e"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Dark_1.ggr" checksum="57d6882650122320fe4a212c59de06a2"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Deep_Sea.ggr" checksum="35b112cb987f0429da4350512b5db0fa"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Default.ggr" checksum="ddc8841f60246138068a49dc22875804"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Flare_Glow_Angular_1.ggr" checksum="4775a8280fbceeb59cf3859e084c28a1"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Flare_Glow_Radial_1.ggr" checksum="e8c3d4029f64c368baa3ac8cd7bf8146"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Flare_Glow_Radial_2.ggr" checksum="a557cd5278add08e372475d3d99f3e39"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Flare_Glow_Radial_3.ggr" checksum="d86591dec258e8fdbb28732de345495c"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Flare_Glow_Radial_4.ggr" checksum="f2eefd542fe04bd56e7218842684aee7"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Flare_Radial_101.ggr" checksum="c7d51a864108ab38c58737a3f5d8284a"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Flare_Radial_102.ggr" checksum="7763a8e71fac97f6cb07a3cf6c64ecc2"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Flare_Radial_103.ggr" checksum="8f23721fa4910404f217b40d51085b60"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Flare_Rays_Radial_1.ggr" checksum="3bf791c725e2d7f85a0aff0a93ac66d0"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Flare_Rays_Radial_2.ggr" checksum="860f6ab9ab1b89fa2d58796e74bdcd77"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Flare_Rays_Size_1.ggr" checksum="24a92724aafd292d8d3725efb13141b6"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Flare_Sizefac_101.ggr" checksum="25f8ce37bf87e02514c8b23860dc53c8"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Four_bars.ggr" checksum="514b2159057ba680eee275d1048c4d31"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Full_saturation_spectrum_CCW.ggr" checksum="9011005e2f8cd96b67c62502052451bf"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Full_saturation_spectrum_CW.ggr" checksum="173d8c6a0d6569643cc542afb229100f"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Golden.ggr" checksum="34dfd5f7d4f5ab094d948d4ceae29d20"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Greens.ggr" checksum="5ebfe1d2748811b766d270fcb8e01250"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Horizon_1.ggr" checksum="8a64cd7cc03774fa5db60196b63ed078"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Horizon_2.ggr" checksum="fad2e75f788e11c33397bea983573904"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Incandescent.ggr" checksum="79b1b20641e619ee702f36bf8f15f2df"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Land_1.ggr" checksum="2b31219738304a84f3079973558559d7"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Land_and_Sea.ggr" checksum="870b89e11b32ddabbe66baf3bb44c36a"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Metallic_Something.ggr" checksum="f829f3ca70599ad84228dfb991049e6e"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Nauseating_Headache.ggr" checksum="c37ede154a94fa2c3f5efc3770b82c0d"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Neon_Cyan.ggr" checksum="2054a504a44d4c418d83a102eeee80ce"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Neon_Green.ggr" checksum="877576a7cfb92930f47e1c7d5ac405c1"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Neon_Yellow.ggr" checksum="94b17fbb263aeef75dee98a28675f81e"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Pastel_Rainbow.ggr" checksum="b981aa364dcf5f78c3f46e4bc6b83866"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Pastels.ggr" checksum="23adc56dc00bd4ebf7f70ed1ed9cd539"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Purples.ggr" checksum="2bd5415782982a935493fa803f195df4"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Radial_Eyeball_Blue.ggr" checksum="04a114e3016ccc4f50bed7ed449aba98"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Radial_Eyeball_Brown.ggr" checksum="a2c47e5a3971db798c478931271769bf"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Radial_Eyeball_Green.ggr" checksum="64e7005a98fc4cd5e7b3a09026a99976"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Radial_Glow_1.ggr" checksum="46b460d2125043e52fe69ef2a5e38cf8"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Radial_Rainbow_Hoop.ggr" checksum="db1c3eae2bf94a0c8558cd525dcb0074"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Rounded_edge.ggr" checksum="ab62d43581cfbaa9a31286e4197f5acc"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Shadows_1.ggr" checksum="8e67174c5e65cb36187087c10dae4f05"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Shadows_2.ggr" checksum="b810d88b1460235d91b78c3bafdf4706"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Shadows_3.ggr" checksum="cbed6bf71e079f00d2d38e7d103c118e"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Skyline.ggr" checksum="c84395a0afbee5a141bb99f949de277e"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Skyline_polluted.ggr" checksum="7d2722640649ec4574bfa5f943842d88"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Square_Wood_Frame.ggr" checksum="57c49346591e4919910c05e662656936"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Sunrise.ggr" checksum="346584511d4125dc8b6ca89db2915755"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Three_bars_sin.ggr" checksum="43fad05fbc9a509c6ac81e7133a182c0"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Tropical_Colors.ggr" checksum="1931abcf7e88967e8350ed3523b2e6ef"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Tube_Red.ggr" checksum="0d9bcc63aed51e02f133df0446b8fa7d"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Wood_1.ggr" checksum="5cacfc0d19e98c156eb4b726ac05efa0"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Wood_2.ggr" checksum="4f0609c7376dd30634170a8e0dbd2499"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Yellow_Contrast.ggr" checksum="81e37626d2b0c9556bb4bbafd80a905f"> + </resource> + + <resource identifier="${gimp_data_dir}/gradients/Yellow_Orange.ggr" checksum="428584726006e23e260baa2a7d79f295"> + </resource> + + <resource identifier="gimp-palette-color-history" checksum="0d2413d3d94c9c92622799413b0b49c5"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Bears.gpl" checksum="e82e818c20ac12bdd21049924ea2d1e7"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Bgold.gpl" checksum="346622db0138429b0fab8b5d79d8a95c"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Blues.gpl" checksum="16906e712e0573b8562ed5220298502b"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Borders.gpl" checksum="3bc2921d2c89edc115ab7f42896c0c01"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Browns_And_Yellows.gpl" checksum="d642210b147ec6b2b3f7d4d00bce6448"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Caramel.gpl" checksum="1edf264a8bc4a91b1bef64a5ad4c854d"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Cascade.gpl" checksum="54c05cc23d1e73d73adb4fa9846c80b2"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/China.gpl" checksum="05c14acb0d2ba92d317ea3d7e94d63f1"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Coldfire.gpl" checksum="1ed0c4895cf5473479ae25e798008094"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Cool_Colors.gpl" checksum="8fc00f172559e702a5ab9680013b0554"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Cranes.gpl" checksum="cb2e9acc0ed26521d3aed8948aa0d4e8"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Dark_pastels.gpl" checksum="8fa7a69d183b2f1b41397d27dfa10a89"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Default.gpl" checksum="b8d8754cf636809b474b501e4c540788"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Ega.gpl" checksum="a8842755eb6e9534d89bc4dfa360ea91"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Firecode.gpl" checksum="31da06a142dbb7e290ecae399da8c198"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Gold.gpl" checksum="69156b66cb39a691e8ee92824facfc74"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/GrayViolet.gpl" checksum="3a200b1b9ca7f3b7bcebc70fe4a4832e"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Grayblue.gpl" checksum="50e95752c59ed66f2871533b48ad80f7"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Grays.gpl" checksum="fcf5e6f9da0fbc46bac07d34741fd648"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Greens.gpl" checksum="c74e6275e9e921dcc64870a670697fa0"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Hilite.gpl" checksum="9cecfa2be285ac84b832335b8d32d915"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Khaki.gpl" checksum="cbcc5d547c2000f8639efa68d4f6f18e"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Lights.gpl" checksum="3483aee51ec01db06b41463903da53f9"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Muted.gpl" checksum="24bc023216795f2eb722546696d3082d"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Named_Colors.gpl" checksum="9ab88f7333eb4d71a2adb8af16053d68"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/News3.gpl" checksum="d45d654d154d6b7c3ce7e3b7635e863d"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Op2.gpl" checksum="082035d380a34e045f0548df4d44f82f"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Paintjet.gpl" checksum="2c4f4c6e46d18ebd62e38912b1df6b68"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Pastels.gpl" checksum="c17b8c554459325319934d120fc3daec"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Plasma.gpl" checksum="086d1d645e1fec277ae99bb351dc59de"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Reds.gpl" checksum="cd1ed47383e48553e0702a7a554fa3fd"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Reds_And_Purples.gpl" checksum="c0bc2a7991d9c65ea9d19f9c5c47e8b1"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Royal.gpl" checksum="c2afa124f653f4253d94e225c926c94a"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Tango.gpl" checksum="0c31eccdd183d0ae24778f1b1e527018"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Topographic.gpl" checksum="7281433871d8c0904cfe2975424fbdc9"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Visibone.gpl" checksum="83236d5917dddacdc89d228e503db053"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Visibone_2.gpl" checksum="a6ecc8ab9898c86dc03eb58ab6dcb3b9"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Volcano.gpl" checksum="1d1fd8e110046e9f33e7be9ef7fe8d7b"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Warm_Colors.gpl" checksum="de9eb66b02c0eaa5d6ee4ee30638e91d"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Web.gpl" checksum="f02e8dfa23d01d6acfbab7f895c2dd16"> + </resource> + + <resource identifier="${gimp_data_dir}/palettes/Linux.gpl" checksum="0e7549f6e63ef2b1de3f537cc7da022b"> + </resource> + + <resource identifier="Baekmuk Batang" checksum="(null)"> + </resource> + + <resource identifier="Baekmuk Dotum" checksum="(null)"> + </resource> + + <resource identifier="Baekmuk Gulim" checksum="(null)"> + </resource> + + <resource identifier="Baekmuk Headline" checksum="(null)"> + </resource> + + <resource identifier="C059" checksum="(null)"> + </resource> + + <resource identifier="C059 Bold" checksum="(null)"> + </resource> + + <resource identifier="C059 Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="C059 Italic" checksum="(null)"> + </resource> + + <resource identifier="Cantarell" checksum="(null)"> + </resource> + + <resource identifier="Cantarell" checksum="(null)"> + </resource> + + <resource identifier="Cantarell Bold" checksum="(null)"> + </resource> + + <resource identifier="Cantarell Light" checksum="(null)"> + </resource> + + <resource identifier="Cantarell Light" checksum="(null)"> + </resource> + + <resource identifier="Cantarell Thin" checksum="(null)"> + </resource> + + <resource identifier="Cantarell Thin" checksum="(null)"> + </resource> + + <resource identifier="Cantarell Ultra-Bold" checksum="(null)"> + </resource> + + <resource identifier="Cantarell Ultra-Bold" checksum="(null)"> + </resource> + + <resource identifier="D050000L" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Math TeX Gyre" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans Bold" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans Bold Oblique" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans Bold Oblique Semi-Condensed" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans Bold Semi-Condensed" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans Mono" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans Mono Bold" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans Mono Bold Oblique" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans Mono Oblique" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans Oblique" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans Oblique Semi-Condensed" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans Semi-Condensed" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Sans Ultra-Light" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Serif" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Serif Bold" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Serif Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Serif Bold Italic Semi-Condensed" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Serif Bold Semi-Condensed" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Serif Italic" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Serif Italic Semi-Condensed" checksum="(null)"> + </resource> + + <resource identifier="DejaVu Serif Semi-Condensed" checksum="(null)"> + </resource> + + <resource identifier="Font Awesome 5 Brands" checksum="(null)"> + </resource> + + <resource identifier="Font Awesome 5 Free" checksum="(null)"> + </resource> + + <resource identifier="Font Awesome 5 Free Heavy" checksum="(null)"> + </resource> + + <resource identifier="IPAGothic" checksum="(null)"> + </resource> + + <resource identifier="IPAMincho" checksum="(null)"> + </resource> + + <resource identifier="IPAPGothic" checksum="(null)"> + </resource> + + <resource identifier="IPAPMincho" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Bold" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Light" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Light Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Medium" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Bold" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Light" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Light Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Medium" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Thin" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Thin Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Ultra-Bold" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Ultra-Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Ultra-Light" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono NL Ultra-Light Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Thin" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Thin Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Ultra-Bold" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Ultra-Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Ultra-Light" checksum="(null)"> + </resource> + + <resource identifier="JetBrains Mono Ultra-Light Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Bold" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Medium" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Mono" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Mono Bold" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Mono Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Mono Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Mono Medium" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Mono Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Mono Ultra-Bold" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Mono Ultra-Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Ultra-Bold" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMono Nerd Font Ultra-Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMonoExtraBold Nerd Font Mono Ultra-Bold" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMonoExtraBold Nerd Font Mono Ultra-Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMonoExtraBold Nerd Font Ultra-Bold" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMonoExtraBold Nerd Font Ultra-Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMonoMedium Nerd Font Medium" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMonoMedium Nerd Font Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMonoMedium Nerd Font Mono Medium" checksum="(null)"> + </resource> + + <resource identifier="JetBrainsMonoMedium Nerd Font Mono Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="Liberation Mono" checksum="(null)"> + </resource> + + <resource identifier="Liberation Mono Bold" checksum="(null)"> + </resource> + + <resource identifier="Liberation Mono Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Liberation Mono Italic" checksum="(null)"> + </resource> + + <resource identifier="Liberation Sans" checksum="(null)"> + </resource> + + <resource identifier="Liberation Sans Bold" checksum="(null)"> + </resource> + + <resource identifier="Liberation Sans Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Liberation Sans Italic" checksum="(null)"> + </resource> + + <resource identifier="Liberation Serif" checksum="(null)"> + </resource> + + <resource identifier="Liberation Serif Bold" checksum="(null)"> + </resource> + + <resource identifier="Liberation Serif Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Liberation Serif Italic" checksum="(null)"> + </resource> + + <resource identifier="Monospace" checksum="(null)"> + </resource> + + <resource identifier="Monospace Bold" checksum="(null)"> + </resource> + + <resource identifier="Monospace Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Monospace Italic" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Mono PS" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Mono PS Bold" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Mono PS Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Mono PS Italic" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Roman," checksum="(null)"> + </resource> + + <resource identifier="Nimbus Roman, Bold" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Roman, Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Roman, Italic" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Sans" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Sans Bold" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Sans Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Sans Italic" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Sans Narrow Bold Oblique Semi-Condensed" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Sans Narrow Bold Semi-Condensed" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Sans Narrow Oblique Semi-Condensed" checksum="(null)"> + </resource> + + <resource identifier="Nimbus Sans Narrow Semi-Condensed" checksum="(null)"> + </resource> + + <resource identifier="Noto Color Emoji" checksum="(null)"> + </resource> + + <resource identifier="Noto Kufi Arabic" checksum="(null)"> + </resource> + + <resource identifier="Noto Kufi Arabic Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Kufi Arabic Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Kufi Arabic Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Kufi Arabic Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Kufi Arabic Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Lao" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Lao Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Lao Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Lao Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Lao Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Lao Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Lao UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Lao UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Lao UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Lao UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Lao UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Lao UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Thai" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Thai Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Thai Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Thai Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Thai Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Thai Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Thai UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Thai UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Thai UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Thai UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Thai UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Looped Thai UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Music" checksum="(null)"> + </resource> + + <resource identifier="Noto Naskh Arabic" checksum="(null)"> + </resource> + + <resource identifier="Noto Naskh Arabic Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Naskh Arabic Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Naskh Arabic UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Naskh Arabic UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Naskh Arabic UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Nastaliq Urdu" checksum="(null)"> + </resource> + + <resource identifier="Noto Nastaliq Urdu" checksum="(null)"> + </resource> + + <resource identifier="Noto Rashi Hebrew" checksum="(null)"> + </resource> + + <resource identifier="Noto Rashi Hebrew Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Rashi Hebrew Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Rashi Hebrew Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Rashi Hebrew Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Rashi Hebrew Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Adlam" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Adlam Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Adlam Unjoined" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Adlam Unjoined Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Anatolian Hieroglyphs" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Arabic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Arabic Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Arabic Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Arabic Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Arabic Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Arabic Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Arabic UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Arabic UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Arabic UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Arabic UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Arabic UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Arabic UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Armenian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Armenian Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Armenian Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Armenian Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Armenian Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Armenian Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Avestan" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Balinese" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Balinese Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Balinese Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bamum" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bamum Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bamum Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bassa Vah" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Batak" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bengali" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bengali Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bengali Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bengali Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bengali Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bengali Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bengali UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bengali UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bengali UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bengali UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bengali UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bengali UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bhaiksuki" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Brahmi" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Buginese" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Buhid" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Canadian Aboriginal" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Canadian Aboriginal Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Canadian Aboriginal Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Canadian Aboriginal Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Canadian Aboriginal Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Canadian Aboriginal Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Carian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Caucasian Albanian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Chakma" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cham" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cham Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cham Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cham Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cham Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cham Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cherokee" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cherokee Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cherokee Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cherokee Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cherokee Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cherokee Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Coptic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cuneiform" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Cypriot" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Deseret" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Devanagari" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Devanagari Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Devanagari Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Devanagari Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Devanagari Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Devanagari Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Devanagari UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Devanagari UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Devanagari UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Devanagari UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Devanagari UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Devanagari UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Display" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Display Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Display Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Display Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Display Heavy Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Display Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Display Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Display Light Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Display Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Display Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Display Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Display Thin Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Duployan" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Egyptian Hieroglyphs" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Elbasan" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Elymaic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Ethiopic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Ethiopic Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Ethiopic Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Ethiopic Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Ethiopic Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Ethiopic Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Georgian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Georgian Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Georgian Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Georgian Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Georgian Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Georgian Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Glagolitic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gothic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Grantha" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gujarati" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gujarati Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gujarati Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gujarati Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gujarati Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gujarati Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gujarati UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gujarati UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gujarati UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gujarati UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gujarati UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gujarati UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gunjala Gondi" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gurmukhi" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gurmukhi Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gurmukhi Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gurmukhi Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gurmukhi Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gurmukhi Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gurmukhi UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gurmukhi UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gurmukhi UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gurmukhi UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gurmukhi UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Gurmukhi UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Hanifi Rohingya" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Hanifi Rohingya Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Hanifi Rohingya Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Hanunoo" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Hatran" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Heavy Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Hebrew" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Hebrew Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Hebrew Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Hebrew Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Hebrew Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Hebrew Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Imperial Aramaic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Indic Siyaq Numbers" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Inscriptional Pahlavi" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Inscriptional Parthian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Javanese" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Javanese Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kaithi" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kannada" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kannada Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kannada Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kannada Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kannada Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kannada Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kannada UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kannada UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kannada UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kannada UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kannada UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kannada UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kayah Li" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kayah Li Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kayah Li Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Kharoshthi" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khmer" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khmer Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khmer Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khmer Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khmer Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khmer Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khmer UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khmer UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khmer UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khmer UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khmer UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khmer UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khojki" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Khudawadi" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lao" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lao Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lao Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lao Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lao Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lao Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lao UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lao UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lao UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lao UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lao UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lao UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lepcha" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Light Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Limbu" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Linear A" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Linear B" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lisu" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lisu Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lisu Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lycian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Lydian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Mahajani" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Malayalam" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Malayalam Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Malayalam Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Malayalam Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Malayalam Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Malayalam Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Malayalam UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Malayalam UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Malayalam UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Malayalam UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Malayalam UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Malayalam UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Mandaic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Manichaean" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Marchen" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Masaram Gondi" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Math" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Mayan Numerals" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Medefaidrin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Medefaidrin Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Medefaidrin Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Meetei Mayek" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Meetei Mayek Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Meetei Mayek Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Meetei Mayek Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Meetei Mayek Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Meetei Mayek Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Mende Kikakui" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Meroitic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Miao" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Modi" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Mongolian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Mono" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Mono Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Mono Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Mono Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Mono Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Mono Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Mro" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Multani" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Myanmar" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Myanmar Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Myanmar Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Myanmar Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Myanmar Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Myanmar Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Myanmar UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Myanmar UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Myanmar UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Myanmar UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Myanmar UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Myanmar UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans NKo" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Nabataean" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans New Tai Lue" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Newa" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Nushu" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Ogham" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Ol Chiki" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Ol Chiki Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Ol Chiki Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Old Hungarian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Old Italic," checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Old North Arabian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Old Permic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Old Persian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Old Sogdian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Old South Arabian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Old Turkic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Oriya" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Oriya Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Oriya Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Oriya Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Oriya UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Oriya UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Oriya UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Oriya UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Osage" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Osmanya" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Pahawh Hmong" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Palmyrene" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Pau Cin Hau" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans PhagsPa" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Phoenician" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Psalter Pahlavi" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Rejang" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Runic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Samaritan" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Saurashtra" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sharada" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Shavian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Siddham" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans SignWriting" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sinhala" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sinhala Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sinhala Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sinhala Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sinhala Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sinhala Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sinhala UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sinhala UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sinhala UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sinhala UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sinhala UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sinhala UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sogdian" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sora Sompeng" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sora Sompeng Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sora Sompeng Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Soyombo" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sundanese" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sundanese Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Sundanese Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Syloti Nagri" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Symbols" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Symbols Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Symbols Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Symbols Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Symbols Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Symbols Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Symbols2" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Syriac" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Syriac Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Syriac Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tagalog" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tagbanwa" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tai Le" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tai Tham" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tai Tham Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tai Tham weight=482" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tai Viet" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Takri" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil Supplement" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tamil UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Telugu" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Telugu Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Telugu Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Telugu Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Telugu Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Telugu Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Telugu UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Telugu UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Telugu UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Telugu UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Telugu UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Telugu UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thaana" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thaana Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thaana Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thaana Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thaana Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thaana Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thai" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thai Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thai Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thai Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thai Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thai Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thai UI" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thai UI Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thai UI Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thai UI Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thai UI Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thai UI Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Thin Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tifinagh" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tifinagh APT" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tifinagh Adrar" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tifinagh Agraw Imazighen" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tifinagh Ahaggar" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tifinagh Air" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tifinagh Azawagh" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tifinagh Ghat" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tifinagh Hawad" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tifinagh Rhissa Ixa" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tifinagh SIL" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tifinagh Tawellemmet" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Tirhuta" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Ugaritic" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Vai" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Wancho" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Warang Citi" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Yi" checksum="(null)"> + </resource> + + <resource identifier="Noto Sans Zanabazar Square" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Ahom" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Armenian" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Armenian Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Armenian Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Armenian Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Armenian Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Armenian Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Balinese" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Bengali" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Bengali Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Bengali Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Bengali Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Bengali Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Bengali Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Devanagari" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Devanagari Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Devanagari Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Devanagari Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Devanagari Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Devanagari Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Display" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Display Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Display Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Display Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Display Heavy Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Display Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Display Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Display Light Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Display Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Display Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Display Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Display Thin Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Dogra" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Ethiopic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Ethiopic Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Ethiopic Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Ethiopic Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Ethiopic Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Ethiopic Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Georgian" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Georgian Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Georgian Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Georgian Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Georgian Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Georgian Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Grantha" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Gujarati" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Gujarati Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Gujarati Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Gujarati Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Gujarati Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Gujarati Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Gurmukhi" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Gurmukhi Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Gurmukhi Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Gurmukhi Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Gurmukhi Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Gurmukhi Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Heavy Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Hebrew" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Hebrew Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Hebrew Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Hebrew Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Hebrew Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Hebrew Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Hmong Nyiakeng" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Hmong Nyiakeng Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Hmong Nyiakeng Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Kannada" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Kannada Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Kannada Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Kannada Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Kannada Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Kannada Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Khmer" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Khmer Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Khmer Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Khmer Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Khmer Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Khmer Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Khojki" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Khojki Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Lao" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Lao Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Lao Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Lao Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Lao Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Lao Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Light Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Malayalam" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Malayalam Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Malayalam Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Malayalam Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Malayalam Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Malayalam Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Myanmar" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Myanmar" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Myanmar" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Myanmar Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Myanmar Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Myanmar Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Sinhala" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Sinhala Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Sinhala Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Sinhala Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Sinhala Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Sinhala Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tamil" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tamil Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tamil Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tamil Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tamil Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tamil Slanted" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tamil Slanted Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tamil Slanted Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tamil Slanted Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tamil Slanted Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tamil Slanted Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tamil Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tangut" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Telugu" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Telugu Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Telugu Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Telugu Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Telugu Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Telugu Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Thai" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Thai Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Thai Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Thai Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Thai Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Thai Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Thin Italic" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tibetan" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tibetan Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tibetan Heavy" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tibetan Light" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tibetan Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Tibetan Thin" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Yezidi" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Yezidi Bold" checksum="(null)"> + </resource> + + <resource identifier="Noto Serif Yezidi Medium" checksum="(null)"> + </resource> + + <resource identifier="Noto Traditional Nushu" checksum="(null)"> + </resource> + + <resource identifier="P052" checksum="(null)"> + </resource> + + <resource identifier="P052 Bold" checksum="(null)"> + </resource> + + <resource identifier="P052 Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="P052 Italic" checksum="(null)"> + </resource> + + <resource identifier="Sans-serif" checksum="(null)"> + </resource> + + <resource identifier="Sans-serif Bold" checksum="(null)"> + </resource> + + <resource identifier="Sans-serif Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Sans-serif Italic" checksum="(null)"> + </resource> + + <resource identifier="Serif" checksum="(null)"> + </resource> + + <resource identifier="Serif Bold" checksum="(null)"> + </resource> + + <resource identifier="Serif Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Serif Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Bold" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Heavy" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Heavy Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Light" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Light Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Medium" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Semi-Bold" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Semi-Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Ultra-Light" checksum="(null)"> + </resource> + + <resource identifier="Source Code Pro Ultra-Light Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Bold" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Heavy" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Heavy Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Light" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Light Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Medium" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Semi-Bold" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Semi-Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Ultra-Light" checksum="(null)"> + </resource> + + <resource identifier="Source Code Variable Ultra-Light Italic" checksum="(null)"> + </resource> + + <resource identifier="Standard Symbols PS" checksum="(null)"> + </resource> + + <resource identifier="URW Bookman Light" checksum="(null)"> + </resource> + + <resource identifier="URW Bookman Light Italic" checksum="(null)"> + </resource> + + <resource identifier="URW Bookman Semi-Bold" checksum="(null)"> + </resource> + + <resource identifier="URW Bookman Semi-Bold Italic" checksum="(null)"> + </resource> + + <resource identifier="URW Gothic" checksum="(null)"> + </resource> + + <resource identifier="URW Gothic Oblique" checksum="(null)"> + </resource> + + <resource identifier="URW Gothic Semi-Bold" checksum="(null)"> + </resource> + + <resource identifier="URW Gothic Semi-Bold Oblique" checksum="(null)"> + </resource> + + <resource identifier="Z003 Medium Italic" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Crop/16_10.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Crop/16_9.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Crop/3_2-Landscape.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Crop/3_2-Portrait.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Crop/4_3-Landscape.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Crop/4_3-Portrait.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Airbrush.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Airbrush-Color-From-Gradient.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Basic-Knife.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Basic-Round.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Basic-Round-Detail.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Sketch/Blue-Pen.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Bristles.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Selection/Circle-200px.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/FX/Crop-16-9.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/FX/Crop-Composition.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Eraser-Hard.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Sketch/Eraser-Soft.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/FX/FX-Confetti.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/FX/FX-Radial-Softlight.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Selection/Feathered-Selection.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/FX/Fill-Paper.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/FX/Glow-Lights.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Sketch/Ink-Smooth.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Sketch/Ink-Thin.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Noise.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Paintbrush-Color-From-Gradient.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Sketch/Pencil.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Pencil-Color-From-Gradient.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Sketch/Pencil-Soft.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/FX/Smooth-Clone.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Smudge-Rough.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Smudge-Soft.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Soft-Oil.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Splatters.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Crop/Square.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Structure.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/Paint/Vegetal.gtp" checksum="(null)"> + </resource> + + <resource identifier="${gimp_data_dir}/tool-presets/FX/Vignette.gtp" checksum="(null)"> + </resource> +</tags> diff --git a/GIMP/2.10/templaterc b/GIMP/2.10/templaterc new file mode 100755 index 0000000..147ce16 --- /dev/null +++ b/GIMP/2.10/templaterc @@ -0,0 +1,760 @@ +# GIMP templaterc +# +# This file will be entirely rewritten each time you exit. + +(GimpTemplate "Imagem blog" + (width 800) + (height 450) + (unit pixels) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background) + (comment "Created with GIMP")) +(GimpTemplate "640x480" + (width 640) + (height 480) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "800x600" + (width 800) + (height 600) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "1024x768" + (width 1024) + (height 768) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "1600x1200" + (width 1600) + (height 1200) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A3 (300ppi)" + (width 3508) + (height 4960) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A4 (300ppi)" + (width 2480) + (height 3508) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A5 (300ppi)" + (width 1754) + (height 2480) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A6 (300ppi)" + (width 1240) + (height 1754) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "B4 (300ppi)" + (width 2953) + (height 4169) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "B5 (300ppi)" + (width 2079) + (height 2953) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "B5-Japan (300ppi)" + (width 2150) + (height 3035) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "US-Letter (300ppi)" + (width 2550) + (height 3300) + (unit inches) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "US-Legal (300ppi)" + (width 2550) + (height 4200) + (unit inches) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Toilet paper (US, 300ppi)" + (icon-name "gimp-toilet-paper") + (width 1350) + (height 1350) + (unit inches) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "CD cover (300ppi)" + (icon-name "gtk-cdrom") + (width 1429) + (height 1417) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Floppy label (300ppi)" + (icon-name "gtk-floppy") + (width 825) + (height 825) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Web banner common 468x60" + (icon-name "gimp-web") + (width 468) + (height 60) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Web banner huge 728x90" + (icon-name "gimp-web") + (width 728) + (height 90) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "PAL - 720x576" + (icon-name "gimp-video") + (width 720) + (height 576) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "NTSC - 720x486" + (icon-name "gimp-video") + (width 720) + (height 486) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A0 (300 ppi)" + (width 9933) + (height 14043) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A1 (300 ppi)" + (width 7016) + (height 9933) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A2 (300 ppi)" + (width 4960) + (height 7016) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A3 (300 ppi)" + (width 3508) + (height 4960) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A4 (300 ppi)" + (width 2480) + (height 3508) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A5 (300 ppi)" + (width 1748) + (height 2480) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A6 (300 ppi)" + (width 1240) + (height 1748) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "A7 (300 ppi)" + (width 874) + (height 1240) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "B4 (300 ppi)" + (width 2953) + (height 4169) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "B5 (300 ppi)" + (width 2079) + (height 2953) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "B5-Japan (300 ppi)" + (width 2150) + (height 3035) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "US Letter (300 ppi)" + (width 2550) + (height 3300) + (unit inches) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "US Legal (300 ppi)" + (width 2550) + (height 4200) + (unit inches) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "88.9×50.8 US Business Card" + (icon-name "gimp-business-card") + (width 1050) + (height 600) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "85×55 Western Europe Business Card" + (icon-name "gimp-business-card") + (width 1004) + (height 650) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "90×50 Eastern Europe Business Card" + (icon-name "gimp-business-card") + (width 1063) + (height 591) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "90×55 Business Card (AU, IN etc.)" + (icon-name "gimp-business-card") + (width 1063) + (height 650) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "87×49 Vistaprint Business Card" + (icon-name "gimp-business-card") + (width 1028) + (height 579) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Toilet paper (US, 300 ppi)" + (icon-name "gimp-toilet-paper") + (width 1350) + (height 1350) + (unit inches) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "CD cover (300 ppi)" + (icon-name "media-optical") + (width 1429) + (height 1417) + (unit millimeters) + (xresolution 300) + (yresolution 300) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Web banner leaderboard 728x90" + (icon-name "gimp-web") + (width 728) + (height 90) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Web banner large rectangle 336×280" + (icon-name "gimp-web") + (width 336) + (height 280) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Web banner medium rectangle 300×250" + (icon-name "gimp-web") + (width 300) + (height 250) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Web banner large mobile 320×100" + (icon-name "gimp-web") + (width 320) + (height 100) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Web banner large skyscraper 300×600" + (icon-name "gimp-web") + (width 300) + (height 600) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "1280×720 (HD 720p)" + (icon-name "gimp-video") + (width 1280) + (height 720) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "1920×1080 (Full HD 1080p)" + (icon-name "gimp-video") + (width 1920) + (height 1080) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "3840x2160 (4K UHD)" + (icon-name "gimp-video") + (width 3840) + (height 2160) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "4096×2160 (Digital Cinema Initiatives 4K)" + (icon-name "gimp-video") + (width 4096) + (height 2160) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "1366×768 HD" + (icon-name "gimp-display") + (width 1366) + (height 768) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "1920×1200 WUXGA" + (icon-name "gimp-display") + (width 1920) + (height 1200) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "2560x1600 WQXGA" + (icon-name "gimp-display") + (width 2560) + (height 1600) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "3840×2160 4K UHD" + (icon-name "gimp-display") + (width 3840) + (height 2160) + (unit pixels) + (xresolution 72) + (yresolution 72) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Apple iPhone 6/7" + (icon-name "gimp-smartphone") + (width 750) + (height 1334) + (unit millimeters) + (xresolution 326) + (yresolution 326) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Apple iPhone 5" + (icon-name "gimp-smartphone") + (width 640) + (height 1136) + (unit millimeters) + (xresolution 326) + (yresolution 326) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Apple iPad 3&4, Air" + (icon-name "gimp-smartphone") + (width 2048) + (height 2732) + (unit millimeters) + (xresolution 264) + (yresolution 264) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Samsung Galaxy S6" + (icon-name "gimp-smartphone") + (width 1440) + (height 2560) + (unit millimeters) + (xresolution 577) + (yresolution 577) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Samsung Galaxy S5" + (icon-name "gimp-smartphone") + (width 1080) + (height 1920) + (unit millimeters) + (xresolution 360) + (yresolution 360) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) +(GimpTemplate "Samsung Galaxy Tab 2&3 10,1 inch" + (icon-name "gimp-smartphone") + (width 800) + (height 1280) + (unit millimeters) + (xresolution 149) + (yresolution 149) + (resolution-unit inches) + (image-type rgb) + (precision u8-gamma) + (color-managed yes) + (color-profile NULL) + (fill-type background)) + +# end of templaterc diff --git a/GIMP/2.10/themerc b/GIMP/2.10/themerc new file mode 100755 index 0000000..8c6bf9d --- /dev/null +++ b/GIMP/2.10/themerc @@ -0,0 +1,17 @@ +# GIMP themerc +# +# This file is written on GIMP startup and on every theme change. +# It is NOT supposed to be edited manually. Edit your personal +# gtkrc file instead (/home/train/.config/GIMP/2.10/gtkrc). + +style "gimp-spin-scale-style" +{ + GimpSpinScale::compact = 1 +} + +class "GimpSpinScale" style "gimp-spin-scale-style" + +include "/usr/share/gimp/2.0/themes/System/gtkrc" +include "/etc/gimp/2.0/gtkrc" + +# end of themerc diff --git a/GIMP/2.10/tool-options/gimp-airbrush-tool b/GIMP/2.10/tool-options/gimp-airbrush-tool new file mode 100644 index 0000000..dd24ff6 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-airbrush-tool @@ -0,0 +1,12 @@ +# GIMP gimp-airbrush-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(gradient "FG to BG (RGB)") +(palette "Standard") +(brush-size 16) +(brush-force 0.46999999999999997) +(gradient-reverse yes) + +# end of gimp-airbrush-tool options diff --git a/GIMP/2.10/tool-options/gimp-align-tool b/GIMP/2.10/tool-options/gimp-align-tool new file mode 100644 index 0000000..9cd2db9 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-align-tool @@ -0,0 +1,5 @@ +# GIMP gimp-align-tool options + +(align-reference image) + +# end of gimp-align-tool options diff --git a/GIMP/2.10/tool-options/gimp-brightness-contrast-tool b/GIMP/2.10/tool-options/gimp-brightness-contrast-tool new file mode 100644 index 0000000..d925219 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-brightness-contrast-tool @@ -0,0 +1,5 @@ +# GIMP gimp-brightness-contrast-tool options + +(blending-options-expanded yes) + +# end of gimp-brightness-contrast-tool options diff --git a/GIMP/2.10/tool-options/gimp-bucket-fill-tool b/GIMP/2.10/tool-options/gimp-bucket-fill-tool new file mode 100644 index 0000000..4d38596 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-bucket-fill-tool @@ -0,0 +1,8 @@ +# GIMP gimp-bucket-fill-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(pattern "Pine") +(brush-size 51) +(brush-hardness 0.5) + +# end of gimp-bucket-fill-tool options diff --git a/GIMP/2.10/tool-options/gimp-by-color-select-tool b/GIMP/2.10/tool-options/gimp-by-color-select-tool new file mode 100644 index 0000000..d71d187 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-by-color-select-tool @@ -0,0 +1,7 @@ +# GIMP gimp-by-color-select-tool options + +(feather yes) +(feather-radius 10.5) +(sample-merged yes) + +# end of gimp-by-color-select-tool options diff --git a/GIMP/2.10/tool-options/gimp-cage-tool b/GIMP/2.10/tool-options/gimp-cage-tool new file mode 100644 index 0000000..70074a2 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-cage-tool @@ -0,0 +1,4 @@ +# GIMP gimp-cage-tool options + + +# end of gimp-cage-tool options diff --git a/GIMP/2.10/tool-options/gimp-clone-tool b/GIMP/2.10/tool-options/gimp-clone-tool new file mode 100644 index 0000000..0451ece --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-clone-tool @@ -0,0 +1,11 @@ +# GIMP gimp-clone-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(pattern "Pine") +(palette "Standard") +(brush-size 16) +(brush-force 0.46999999999999997) + +# end of gimp-clone-tool options diff --git a/GIMP/2.10/tool-options/gimp-color-picker-tool b/GIMP/2.10/tool-options/gimp-color-picker-tool new file mode 100644 index 0000000..31912ce --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-color-picker-tool @@ -0,0 +1,5 @@ +# GIMP gimp-color-picker-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) + +# end of gimp-color-picker-tool options diff --git a/GIMP/2.10/tool-options/gimp-convolve-tool b/GIMP/2.10/tool-options/gimp-convolve-tool new file mode 100644 index 0000000..ce628b5 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-convolve-tool @@ -0,0 +1,11 @@ +# GIMP gimp-convolve-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(palette "Standard") +(brush-size 16) +(brush-force 0.46999999999999997) +(rate 37.899999999999999) + +# end of gimp-convolve-tool options diff --git a/GIMP/2.10/tool-options/gimp-crop-tool b/GIMP/2.10/tool-options/gimp-crop-tool new file mode 100644 index 0000000..00f46d4 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-crop-tool @@ -0,0 +1,10 @@ +# GIMP gimp-crop-tool options + +(aspect-denominator 1200) +(aspect-numerator 1600) +(desired-fixed-size-height 0) +(desired-fixed-size-width 0) +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(pattern "Pine") + +# end of gimp-crop-tool options diff --git a/GIMP/2.10/tool-options/gimp-curves-tool b/GIMP/2.10/tool-options/gimp-curves-tool new file mode 100644 index 0000000..b7a332b --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-curves-tool @@ -0,0 +1,4 @@ +# GIMP gimp-curves-tool options + + +# end of gimp-curves-tool options diff --git a/GIMP/2.10/tool-options/gimp-dodge-burn-tool b/GIMP/2.10/tool-options/gimp-dodge-burn-tool new file mode 100644 index 0000000..84c06bb --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-dodge-burn-tool @@ -0,0 +1,10 @@ +# GIMP gimp-dodge-burn-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(palette "Standard") +(brush-size 16) +(brush-force 0.46999999999999997) + +# end of gimp-dodge-burn-tool options diff --git a/GIMP/2.10/tool-options/gimp-ellipse-select-tool b/GIMP/2.10/tool-options/gimp-ellipse-select-tool new file mode 100644 index 0000000..31c90ad --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-ellipse-select-tool @@ -0,0 +1,5 @@ +# GIMP gimp-ellipse-select-tool options + +(fixed-rule-active yes) + +# end of gimp-ellipse-select-tool options diff --git a/GIMP/2.10/tool-options/gimp-eraser-tool b/GIMP/2.10/tool-options/gimp-eraser-tool new file mode 100644 index 0000000..2c1ba49 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-eraser-tool @@ -0,0 +1,11 @@ +# GIMP gimp-eraser-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(palette "Standard") +(brush-size 16) +(brush-force 0.46999999999999997) +(application-mode incremental) + +# end of gimp-eraser-tool options diff --git a/GIMP/2.10/tool-options/gimp-flip-tool b/GIMP/2.10/tool-options/gimp-flip-tool new file mode 100644 index 0000000..da59d2d --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-flip-tool @@ -0,0 +1,5 @@ +# GIMP gimp-flip-tool options + +(flip-type vertical) + +# end of gimp-flip-tool options diff --git a/GIMP/2.10/tool-options/gimp-foreground-select-tool b/GIMP/2.10/tool-options/gimp-foreground-select-tool new file mode 100644 index 0000000..474bba6 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-foreground-select-tool @@ -0,0 +1,5 @@ +# GIMP gimp-foreground-select-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) + +# end of gimp-foreground-select-tool options diff --git a/GIMP/2.10/tool-options/gimp-free-select-tool b/GIMP/2.10/tool-options/gimp-free-select-tool new file mode 100644 index 0000000..86b6ab3 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-free-select-tool @@ -0,0 +1,4 @@ +# GIMP gimp-free-select-tool options + + +# end of gimp-free-select-tool options diff --git a/GIMP/2.10/tool-options/gimp-fuzzy-select-tool b/GIMP/2.10/tool-options/gimp-fuzzy-select-tool new file mode 100644 index 0000000..02d86ac --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-fuzzy-select-tool @@ -0,0 +1,6 @@ +# GIMP gimp-fuzzy-select-tool options + +(feather yes) +(draw-mask yes) + +# end of gimp-fuzzy-select-tool options diff --git a/GIMP/2.10/tool-options/gimp-gegl-tool b/GIMP/2.10/tool-options/gimp-gegl-tool new file mode 100644 index 0000000..f085e5f --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-gegl-tool @@ -0,0 +1,4 @@ +# GIMP gimp-gegl-tool options + + +# end of gimp-gegl-tool options diff --git a/GIMP/2.10/tool-options/gimp-gradient-tool b/GIMP/2.10/tool-options/gimp-gradient-tool new file mode 100644 index 0000000..9abeae7 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-gradient-tool @@ -0,0 +1,10 @@ +# GIMP gimp-gradient-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(gradient "FG to BG (RGB)") +(brush-size 51) +(brush-spacing 0.050000000000000003) +(brush-hardness 0.25) +(gradient-reverse yes) + +# end of gimp-gradient-tool options diff --git a/GIMP/2.10/tool-options/gimp-handle-transform-tool b/GIMP/2.10/tool-options/gimp-handle-transform-tool new file mode 100644 index 0000000..a23ed42 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-handle-transform-tool @@ -0,0 +1,4 @@ +# GIMP gimp-handle-transform-tool options + + +# end of gimp-handle-transform-tool options diff --git a/GIMP/2.10/tool-options/gimp-heal-tool b/GIMP/2.10/tool-options/gimp-heal-tool new file mode 100644 index 0000000..73f9bde --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-heal-tool @@ -0,0 +1,10 @@ +# GIMP gimp-heal-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(palette "Standard") +(brush-size 16) +(brush-force 0.46999999999999997) + +# end of gimp-heal-tool options diff --git a/GIMP/2.10/tool-options/gimp-ink-tool b/GIMP/2.10/tool-options/gimp-ink-tool new file mode 100644 index 0000000..29c15d2 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-ink-tool @@ -0,0 +1,9 @@ +# GIMP gimp-ink-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush-size 51) +(brush-hardness 0.5) +(use-smoothing yes) +(size 4) + +# end of gimp-ink-tool options diff --git a/GIMP/2.10/tool-options/gimp-iscissors-tool b/GIMP/2.10/tool-options/gimp-iscissors-tool new file mode 100644 index 0000000..fb42baf --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-iscissors-tool @@ -0,0 +1,4 @@ +# GIMP gimp-iscissors-tool options + + +# end of gimp-iscissors-tool options diff --git a/GIMP/2.10/tool-options/gimp-levels-tool b/GIMP/2.10/tool-options/gimp-levels-tool new file mode 100644 index 0000000..04c0f93 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-levels-tool @@ -0,0 +1,4 @@ +# GIMP gimp-levels-tool options + + +# end of gimp-levels-tool options diff --git a/GIMP/2.10/tool-options/gimp-measure-tool b/GIMP/2.10/tool-options/gimp-measure-tool new file mode 100644 index 0000000..dbc4317 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-measure-tool @@ -0,0 +1,5 @@ +# GIMP gimp-measure-tool options + +(interpolation linear) + +# end of gimp-measure-tool options diff --git a/GIMP/2.10/tool-options/gimp-move-tool b/GIMP/2.10/tool-options/gimp-move-tool new file mode 100644 index 0000000..b9721a8 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-move-tool @@ -0,0 +1,4 @@ +# GIMP gimp-move-tool options + + +# end of gimp-move-tool options diff --git a/GIMP/2.10/tool-options/gimp-mypaint-brush-tool b/GIMP/2.10/tool-options/gimp-mypaint-brush-tool new file mode 100644 index 0000000..8f2fdc1 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-mypaint-brush-tool @@ -0,0 +1,10 @@ +# GIMP gimp-mypaint-brush-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(mybrush "100% Opaque") +(brush-size 51) +(brush-hardness 0.5) +(radius 3.0099999999999998) +(hardness 0.94999999999999996) + +# end of gimp-mypaint-brush-tool options diff --git a/GIMP/2.10/tool-options/gimp-offset-tool b/GIMP/2.10/tool-options/gimp-offset-tool new file mode 100644 index 0000000..5a30253 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-offset-tool @@ -0,0 +1,4 @@ +# GIMP gimp-offset-tool options + + +# end of gimp-offset-tool options diff --git a/GIMP/2.10/tool-options/gimp-operation-tool b/GIMP/2.10/tool-options/gimp-operation-tool new file mode 100644 index 0000000..bb04f98 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-operation-tool @@ -0,0 +1,5 @@ +# GIMP gimp-operation-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) + +# end of gimp-operation-tool options diff --git a/GIMP/2.10/tool-options/gimp-paintbrush-tool b/GIMP/2.10/tool-options/gimp-paintbrush-tool new file mode 100644 index 0000000..753c6ee --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-paintbrush-tool @@ -0,0 +1,12 @@ +# GIMP gimp-paintbrush-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(gradient "FG to BG (RGB)") +(palette "Standard") +(brush-size 16) +(brush-force 0.46999999999999997) +(gradient-reverse yes) + +# end of gimp-paintbrush-tool options diff --git a/GIMP/2.10/tool-options/gimp-pencil-tool b/GIMP/2.10/tool-options/gimp-pencil-tool new file mode 100644 index 0000000..19e75d7 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-pencil-tool @@ -0,0 +1,12 @@ +# GIMP gimp-pencil-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(gradient "FG to BG (RGB)") +(palette "Standard") +(brush-size 16) +(brush-force 0.46999999999999997) +(gradient-reverse yes) + +# end of gimp-pencil-tool options diff --git a/GIMP/2.10/tool-options/gimp-perspective-clone-tool b/GIMP/2.10/tool-options/gimp-perspective-clone-tool new file mode 100644 index 0000000..f5ecd0b --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-perspective-clone-tool @@ -0,0 +1,11 @@ +# GIMP gimp-perspective-clone-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(pattern "Pine") +(palette "Standard") +(brush-size 16) +(brush-force 0.46999999999999997) + +# end of gimp-perspective-clone-tool options diff --git a/GIMP/2.10/tool-options/gimp-perspective-tool b/GIMP/2.10/tool-options/gimp-perspective-tool new file mode 100644 index 0000000..3a21bdc --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-perspective-tool @@ -0,0 +1,4 @@ +# GIMP gimp-perspective-tool options + + +# end of gimp-perspective-tool options diff --git a/GIMP/2.10/tool-options/gimp-rect-select-tool b/GIMP/2.10/tool-options/gimp-rect-select-tool new file mode 100644 index 0000000..7c92013 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-rect-select-tool @@ -0,0 +1,5 @@ +# GIMP gimp-rect-select-tool options + +(corner-radius 46.200000000000003) + +# end of gimp-rect-select-tool options diff --git a/GIMP/2.10/tool-options/gimp-rotate-tool b/GIMP/2.10/tool-options/gimp-rotate-tool new file mode 100644 index 0000000..ddd84c8 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-rotate-tool @@ -0,0 +1,5 @@ +# GIMP gimp-rotate-tool options + +(interpolation linear) + +# end of gimp-rotate-tool options diff --git a/GIMP/2.10/tool-options/gimp-scale-tool b/GIMP/2.10/tool-options/gimp-scale-tool new file mode 100644 index 0000000..a947140 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-scale-tool @@ -0,0 +1,5 @@ +# GIMP gimp-scale-tool options + +(interpolation linear) + +# end of gimp-scale-tool options diff --git a/GIMP/2.10/tool-options/gimp-shear-tool b/GIMP/2.10/tool-options/gimp-shear-tool new file mode 100644 index 0000000..b1cf8f8 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-shear-tool @@ -0,0 +1,4 @@ +# GIMP gimp-shear-tool options + + +# end of gimp-shear-tool options diff --git a/GIMP/2.10/tool-options/gimp-smudge-tool b/GIMP/2.10/tool-options/gimp-smudge-tool new file mode 100644 index 0000000..a20b28e --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-smudge-tool @@ -0,0 +1,12 @@ +# GIMP gimp-smudge-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(gradient "FG to BG (RGB)") +(palette "Standard") +(brush-size 16) +(brush-force 0.46999999999999997) +(gradient-reverse yes) + +# end of gimp-smudge-tool options diff --git a/GIMP/2.10/tool-options/gimp-text-tool b/GIMP/2.10/tool-options/gimp-text-tool new file mode 100644 index 0000000..4bafcbf --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-text-tool @@ -0,0 +1,10 @@ +# GIMP gimp-text-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(palette "Standard") +(font "Standard Symbols PS") +(font-size 25) +(hint-style full) +(justify center) + +# end of gimp-text-tool options diff --git a/GIMP/2.10/tool-options/gimp-threshold-tool b/GIMP/2.10/tool-options/gimp-threshold-tool new file mode 100644 index 0000000..f114556 --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-threshold-tool @@ -0,0 +1,4 @@ +# GIMP gimp-threshold-tool options + + +# end of gimp-threshold-tool options diff --git a/GIMP/2.10/tool-options/gimp-unified-transform-tool b/GIMP/2.10/tool-options/gimp-unified-transform-tool new file mode 100644 index 0000000..c84224d --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-unified-transform-tool @@ -0,0 +1,4 @@ +# GIMP gimp-unified-transform-tool options + + +# end of gimp-unified-transform-tool options diff --git a/GIMP/2.10/tool-options/gimp-vector-tool b/GIMP/2.10/tool-options/gimp-vector-tool new file mode 100644 index 0000000..4d6489d --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-vector-tool @@ -0,0 +1,10 @@ +# GIMP gimp-vector-tool options + +(foreground (color-rgb 0.073913043478260887 0.073913043478260887 0.073913043478260887)) +(brush "2. Hardness 100") +(dynamics "Dynamics Off") +(pattern "Pine") +(gradient "FG to BG (RGB)") +(palette "Standard") + +# end of gimp-vector-tool options diff --git a/GIMP/2.10/tool-options/gimp-warp-tool b/GIMP/2.10/tool-options/gimp-warp-tool new file mode 100644 index 0000000..e837f9e --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-warp-tool @@ -0,0 +1,4 @@ +# GIMP gimp-warp-tool options + + +# end of gimp-warp-tool options diff --git a/GIMP/2.10/tool-options/gimp-zoom-tool b/GIMP/2.10/tool-options/gimp-zoom-tool new file mode 100644 index 0000000..316363e --- /dev/null +++ b/GIMP/2.10/tool-options/gimp-zoom-tool @@ -0,0 +1,4 @@ +# GIMP gimp-zoom-tool options + + +# end of gimp-zoom-tool options diff --git a/GIMP/2.10/toolrc b/GIMP/2.10/toolrc new file mode 100755 index 0000000..6d064c9 --- /dev/null +++ b/GIMP/2.10/toolrc @@ -0,0 +1,185 @@ +# GIMP toolrc + +(file-version 1) + +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-move-tool") + (children + (GimpToolInfo "gimp-move-tool" + (icon-name "gimp-tool-move") + (visible yes)) + (GimpToolInfo "gimp-align-tool" + (icon-name "gimp-tool-align") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-rect-select-tool") + (children + (GimpToolInfo "gimp-rect-select-tool" + (icon-name "gimp-tool-rect-select") + (visible yes)) + (GimpToolInfo "gimp-ellipse-select-tool" + (icon-name "gimp-tool-ellipse-select") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-free-select-tool") + (children + (GimpToolInfo "gimp-free-select-tool" + (icon-name "gimp-tool-free-select") + (visible yes)) + (GimpToolInfo "gimp-iscissors-tool" + (icon-name "gimp-tool-iscissors") + (visible yes)) + (GimpToolInfo "gimp-foreground-select-tool" + (icon-name "gimp-tool-foreground-select") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-fuzzy-select-tool") + (children + (GimpToolInfo "gimp-fuzzy-select-tool" + (icon-name "gimp-tool-fuzzy-select") + (visible yes)) + (GimpToolInfo "gimp-by-color-select-tool" + (icon-name "gimp-tool-by-color-select") + (visible yes)))) +(GimpToolInfo "gimp-crop-tool" + (icon-name "gimp-tool-crop") + (visible yes)) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-scale-tool") + (children + (GimpToolInfo "gimp-unified-transform-tool" + (icon-name "gimp-tool-unified-transform") + (visible yes)) + (GimpToolInfo "gimp-rotate-tool" + (icon-name "gimp-tool-rotate") + (visible yes)) + (GimpToolInfo "gimp-scale-tool" + (icon-name "gimp-tool-scale") + (visible yes)) + (GimpToolInfo "gimp-shear-tool" + (icon-name "gimp-tool-shear") + (visible yes)) + (GimpToolInfo "gimp-flip-tool" + (icon-name "gimp-tool-flip") + (visible yes)) + (GimpToolInfo "gimp-perspective-tool" + (icon-name "gimp-tool-perspective") + (visible yes)) + (GimpToolInfo "gimp-transform-3d-tool" + (icon-name "gimp-tool-transform-3d") + (visible yes)) + (GimpToolInfo "gimp-handle-transform-tool" + (icon-name "gimp-tool-handle-transform") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-warp-tool") + (children + (GimpToolInfo "gimp-warp-tool" + (icon-name "gimp-tool-warp") + (visible yes)) + (GimpToolInfo "gimp-cage-tool" + (icon-name "gimp-tool-cage") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-bucket-fill-tool") + (children + (GimpToolInfo "gimp-bucket-fill-tool" + (icon-name "gimp-tool-bucket-fill") + (visible yes)) + (GimpToolInfo "gimp-gradient-tool" + (icon-name "gimp-tool-gradient") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-paintbrush-tool") + (children + (GimpToolInfo "gimp-paintbrush-tool" + (icon-name "gimp-tool-paintbrush") + (visible yes)) + (GimpToolInfo "gimp-pencil-tool" + (icon-name "gimp-tool-pencil") + (visible yes)) + (GimpToolInfo "gimp-airbrush-tool" + (icon-name "gimp-tool-airbrush") + (visible yes)) + (GimpToolInfo "gimp-ink-tool" + (icon-name "gimp-tool-ink") + (visible yes)) + (GimpToolInfo "gimp-mypaint-brush-tool" + (icon-name "gimp-tool-mypaint-brush") + (visible yes)))) +(GimpToolInfo "gimp-eraser-tool" + (icon-name "gimp-tool-eraser") + (visible yes)) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-clone-tool") + (children + (GimpToolInfo "gimp-clone-tool" + (icon-name "gimp-tool-clone") + (visible yes)) + (GimpToolInfo "gimp-perspective-clone-tool" + (icon-name "gimp-tool-perspective-clone") + (visible yes)) + (GimpToolInfo "gimp-heal-tool" + (icon-name "gimp-tool-heal") + (visible yes)))) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-convolve-tool") + (children + (GimpToolInfo "gimp-smudge-tool" + (icon-name "gimp-tool-smudge") + (visible yes)) + (GimpToolInfo "gimp-convolve-tool" + (icon-name "gimp-tool-blur") + (visible yes)) + (GimpToolInfo "gimp-dodge-burn-tool" + (icon-name "gimp-tool-dodge") + (visible yes)))) +(GimpToolInfo "gimp-vector-tool" + (icon-name "gimp-tool-path") + (visible yes)) +(GimpToolInfo "gimp-text-tool" + (icon-name "gimp-tool-text") + (visible yes)) +(GimpToolGroup "tool group" + (visible yes) + (active-tool "gimp-color-picker-tool") + (children + (GimpToolInfo "gimp-color-picker-tool" + (icon-name "gimp-tool-color-picker") + (visible yes)) + (GimpToolInfo "gimp-measure-tool" + (icon-name "gimp-tool-measure") + (visible yes)))) +(GimpToolInfo "gimp-zoom-tool" + (icon-name "gimp-tool-zoom") + (visible yes)) +(GimpToolInfo "gimp-brightness-contrast-tool" + (icon-name "gimp-tool-brightness-contrast") + (visible no)) +(GimpToolInfo "gimp-threshold-tool" + (icon-name "gimp-tool-threshold") + (visible no)) +(GimpToolInfo "gimp-levels-tool" + (icon-name "gimp-tool-levels") + (visible no)) +(GimpToolInfo "gimp-curves-tool" + (icon-name "gimp-tool-curves") + (visible no)) +(GimpToolInfo "gimp-offset-tool" + (icon-name "gimp-tool-offset") + (visible no)) +(GimpToolInfo "gimp-gegl-tool" + (icon-name "gimp-gegl") + (visible no)) + +# end of toolrc diff --git a/GIMP/2.10/unitrc b/GIMP/2.10/unitrc new file mode 100755 index 0000000..9883ee8 --- /dev/null +++ b/GIMP/2.10/unitrc @@ -0,0 +1,51 @@ +# GIMP units +# +# This file contains the user unit database. You can edit this list with the +# unit editor. You are not supposed to edit it manually, but of course you +# can do. +# This file will be entirely rewritten each time you exit. + +(unit-info "centimeters" + (factor 2.54) + (digits 2) + (symbol "cm") + (abbreviation "cm") + (singular "centimeter") + (plural "centimeters")) +(unit-info "meters" + (factor 0.025399999999999999) + (digits 4) + (symbol "m") + (abbreviation "m") + (singular "meter") + (plural "meters")) +(unit-info "feet" + (factor 0.083333000000000004) + (digits 4) + (symbol "'") + (abbreviation "ft") + (singular "foot") + (plural "feet")) +(unit-info "yards" + (factor 0.027778000000000001) + (digits 4) + (symbol "yd") + (abbreviation "yd") + (singular "yard") + (plural "yards")) +(unit-info "typogr. points" + (factor 72.269999999999996) + (digits 0) + (symbol "tpt") + (abbreviation "tpt") + (singular "typogr. point") + (plural "typogr. points")) +(unit-info "typogr. picas" + (factor 6.0225) + (digits 1) + (symbol "tpc") + (abbreviation "tpc") + (singular "typogr. pica") + (plural "typogr. picas")) + +# end of units diff --git a/README.md b/README.md new file mode 100644 index 0000000..1188289 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +collection of various dotfiles that i've tweaked over the years @@ -0,0 +1,6 @@ +clear lock +clear control +!clear XF86Sleep +keycode 66 = Control_L +keycode 37 = Caps_Lock +add control = Control_L Control_R diff --git a/Xresources b/Xresources new file mode 100644 index 0000000..4fd0499 --- /dev/null +++ b/Xresources @@ -0,0 +1,51 @@ +!! Transparency (0-1): +!!*.alpha: 0.8 + +!! Set a default font and font size as below: +!!fo!! Transparency (0-1): +!!alpha: 0.8 + +!! Set a default font and font size as below: +urxvt*font: "JetBrainsMonoMedium Nerd Font:pixelsize=14" +!!Xcursor.size: 30 + +!! Nord +#define nord0 #2E3440 +#define nord1 #3B4252 +#define nord2 #434C5E +#define nord3 #4C566A +#define nord4 #D8DEE9 +#define nord5 #E5E9F0 +#define nord6 #ECEFF4 +#define nord7 #8FBCBB +#define nord8 #88C0D0 +#define nord9 #81A1C1 +#define nord10 #5E81AC +#define nord11 #BF616A +#define nord12 #D08770 +#define nord13 #EBCB8B +#define nord14 #A3BE8C +#define nord15 #B48EAD + +*.foreground: nord4 +*.background: nord0 +*.cursorColor: nord4 +*fading: 35 +*fadeColor: nord3 + +*.color0: nord1 +*.color1: nord11 +*.color2: nord14 +*.color3: nord13 +*.color4: nord9 +*.color5: nord15 +*.color6: nord8 +*.color7: nord5 +*.color8: nord3 +*.color9: nord11 +*.color10: nord14 +*.color11: nord13 +*.color12: nord9 +*.color13: nord15 +*.color14: nord7 +*.color15: nord6 @@ -0,0 +1,46 @@ +alias neo="fm6000" +alias nb="newsboat" +alias rms="shred -uz" +alias ncm="ncmpcpp" +alias weather="curl wttr.in" +alias scurl="curl --tlsv1.2 --proto =https" +alias grep="grep --color=always" +alias ncms="ncm -h 192.168.1.12" +alias school="cd ~/docs/school" +alias abook="abook -f ~/.config/abook/addressbook" +alias irssi="irssi --config="$XDG_CONFIG_HOME"/irssi/config --home="$XDG_DATA_HOME"/irssi" + +# Verbosity and settings that you pretty much just always are going to want. +alias cp="cp -iv" +alias mv="mv -iv" +alias rm="rm -vI" +alias mkd="mkdir -pv" +alias yt="youtube-dl --add-metadata -i" +alias yta="yt -x -f bestaudio/best" +alias ffmpeg="ffmpeg -hide_banner" + +# Colorize commands when possible. +alias ls="exa -h --color=auto --group-directories-first" +alias grep="grep --color=auto" +alias diff="diff --color=auto" +alias ccat="highlight --out-format=ansi" + +# These common commands are just too long! Abbreviate them. +alias ka="killall" +alias g="git" +alias trem="transmission-remote" +alias YT="youtube-viewer" +alias sdn="sudo shutdown -h now" +alias f="$FILE" +alias e="$EDITOR" +alias v="$EDITOR" +alias p="sudo pacman" +alias xi="sudo xbps-install" +alias xr="sudo xbps-remove -R" +alias xq="xbps-query" +alias z="zathura" +alias nassh="ssh root@192.168.1.12" +alias vultrssh="ssh tyler@tylerhoang.xyz -p 46701" + +# tomb +alias tombdata="tomb exhume ~/pics/school\ \&\ friends/glowshow2.jpg | tomb open ~/docs/database/data.tomb -k -" @@ -0,0 +1,18 @@ +# +# ~/.bashrc +# + +# If not running interactively, don't do anything +[[ $- != *i* ]] && return + +# alias ls='ls --color=auto' +# PS1='[\u@\h \W]\$ ' + +source ~/.config/aliases + +if ! pgrep -u "$USER" ssh-agent > /dev/null; then + ssh-agent -t 1h > "$XDG_RUNTIME_DIR/ssh-agent.env" +fi +if [[ ! "$SSH_AUTH_SOCK" ]]; then + source "$XDG_RUNTIME_DIR/ssh-agent.env" >/dev/null +fi diff --git a/beets/config.yaml b/beets/config.yaml new file mode 100644 index 0000000..5e6af6b --- /dev/null +++ b/beets/config.yaml @@ -0,0 +1 @@ +plugins: fetchart diff --git a/beets/library.db b/beets/library.db Binary files differnew file mode 100644 index 0000000..c663dc3 --- /dev/null +++ b/beets/library.db diff --git a/beets/state.pickle b/beets/state.pickle Binary files differnew file mode 100644 index 0000000..b7c0f16 --- /dev/null +++ b/beets/state.pickle diff --git a/bspwm/bspwm_colors.sh b/bspwm/bspwm_colors.sh new file mode 100644 index 0000000..d0f90b1 --- /dev/null +++ b/bspwm/bspwm_colors.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +bspc config focused_border_color "#414b4e" +bspc config normal_border_color "#2d3435" diff --git a/bspwm/bspwmrc b/bspwm/bspwmrc new file mode 100755 index 0000000..f0a8c22 --- /dev/null +++ b/bspwm/bspwmrc @@ -0,0 +1,52 @@ +#! /bin/sh + +#xrdb ~/.config/X11/Xresources & +$HOME/.config/polybar/launch.sh & +mumble-overlay picom & +dunst & +bash /home/trollshotlol/.config/bspwm/bspwm_colors.sh & +#pidof bspswallow || bspswallow & + +#bspc monitor -d # bitmap icons +bspc monitor -d # font awesome icons +bspc monitor -g 1366x768+0+0 + +bspc config border_width 1 +bspc config window_gap 0 + +bspc config normal_border_color "$color1" +bspc config active_border_color "$color2" +bspc config focused_border_color "$color15" +bspc config presel_feedback_color "$color1" + +bspc config split_ratio 0.50 +bspc config auto_alternate true +bspc config borderless_monocle true +bspc config single_monocle true +bspc config gapless_monocle true +bspc config focus_follows_pointer true + +bspc rule -a "Emacs" state=tiled +bspc rule -a "unimatrix" state=fullscreen +bspc rule -a "Zathura" state=tiled + +bspc rule -a "Pale moon" desktop= +bspc rule -a "qutebrowser" desktop= +bspc rule -a "firefox" desktop= +bspc rule -a "LibreWolf" desktop= +bspc rule -a "IceCat" desktop= +bspc rule -a "Chromium" desktop= +bspc rule -a "Spotify" desktop= +bspc rule -a "Rhythmbox" desktop= +bspc rule -a "Lutris" desktop= +bspc rule -a "Mumble" desktop= +bspc rule -a "Riot" desktop= +bspc rule -a "discord" desktop= +bspc rule -a "Ripcord" desktop= +bspc rule -a "Thunderbird" desktop= +bspc rule -a "keepassx2" desktop= +bspc rule -a "keepassxc" desktop= +bspc rule -a "Transmission-gtk" desktop= +bspc rule -a "Steam" desktop= +bspc rule -a "Thunar" desktop= +bash /home/trollshotlol/.config/bspwm/bspwm_colors.sh &bash /home/trollshotlol/.config/bspwm/bspwm_colors.sh &bash /home/trollshotlol/.config/bspwm/bspwm_colors.sh & diff --git a/bspwm/noswallow b/bspwm/noswallow new file mode 100644 index 0000000..9f23d84 --- /dev/null +++ b/bspwm/noswallow @@ -0,0 +1 @@ +xev diff --git a/bspwm/terminals b/bspwm/terminals new file mode 100644 index 0000000..3054a24 --- /dev/null +++ b/bspwm/terminals @@ -0,0 +1,2 @@ +St +Urxvt diff --git a/cava/config b/cava/config new file mode 100644 index 0000000..a7a1fd3 --- /dev/null +++ b/cava/config @@ -0,0 +1,139 @@ +## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting. + + +[general] + +# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 +; mode = normal + +# Accepts only non-negative values. +framerate = 60 + +# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off +# new as of 0.6.0 autosens of low values (dynamic range) +# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 +; autosens = 1 +; overshoot = 20 + +# Manual sensitivity in %. Autosens must be turned off for this to take effect. +# 200 means double height. Accepts only non-negative values. +; sensitivity = 100 + +# The number of bars (0-200). 0 sets it to auto (fill up console). +# Bars' width and space between bars in number of characters. +; bars = 0 +bar_width = 3 +; bar_spacing = 1 + + +# Lower and higher cutoff frequencies for lowest and highest bars +# the bandwidth of the visualizer. +# Note: there is a minimum total bandwidth of 43Mhz x number of bars. +# Cava will automatically increase the higher cutoff if a too low band is specified. +; lower_cutoff_freq = 50 +; higher_cutoff_freq = 10000 + + + +[input] + +# Audio capturing method. Possible methods are: 'pulse', 'alsa' or 'fifo'. +# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. +# +# All input methods uses the same config variable 'source' +# to define where it should get the audio. +# +# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink +# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). +# +# For alsa 'source' will be the capture device. +# For fifo 'source' will be the path to fifo-file. +; method = pulse +; source = auto + +; method = alsa +; source = hw:Loopback,1 + +; method = fifo +; source = /tmp/mpd.fifo + + + +[output] + +# Ouput method. Can be 'ncurses', 'noncurses' or 'raw'. +# 'noncurses' is for systems that does not suport ncurses. +# 'raw' is a 16 bit data stream of the bar heights that can be used to send to other applications. +# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. +; method = ncurses + +# Visual channels. Can be 'stereo' or 'mono'. +# 'stereo' mirrors both channels with low frequencies in center. +# 'mono' averages both channels and outputs left to right lowest to highest frequencies. +channels = stereo + +# Raw output target. A fifo will be created if target does not exist. +; raw_target = /dev/stdout + +# Raw data format. Can be 'binary' or 'ascii'. +; data_format = binary + +# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). +; bit_format = 16bit + +# Ascii max value. In 'ascii' mode range will run from 0 to value specified here +; ascii_max_range = 1000 + +# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. +# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). +; bar_delimiter = 59 +; frame_delimiter = 10 + + + +[color] + +# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. +# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires a +# terminal that can change color definitions such as Gnome-terminal or rxvt. +; background = black +; foreground = cyan + +# Gradient mode, only hex defined colors are supported, background must also be defined in hex +# or remain commented out. 1 = on, 0 = off. Warning: for certain terminal emulators cava will +# not able to restore color definitions on exit, simply restart your terminal to restore colors. +; gradient = 0 +; gradient_color_1 = '#0099ff' +; gradient_color_2 = '#ff3399' + + + +[smoothing] + +# Percentage value for integral smoothing. Takes values from 0 - 100. +# Higher values means smoother, but less precise. 0 to disable. +integral = 70 + +# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. +monstercat = 1 +; waves = 0 + +# Set gravity percentage for "drop off". Higher values means bars will drop faster. +# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". +gravity = 130 + + +# In bar height, bars that would have been lower that this will not be drawn. +; ignore = 0 + + +[eq] + +# This one is tricky. You can have as much keys as you want. +# Remember to uncomment more then one key! More keys = more precision. +# Look at readme.md on github for further explanations and examples. +1 = 1.5 # bass +2 = 1 +3 = 1 # midtone +4 = 1 +5 = 1 # treble diff --git a/cmus/autosave b/cmus/autosave new file mode 100644 index 0000000..781ab54 --- /dev/null +++ b/cmus/autosave @@ -0,0 +1,209 @@ +set aaa_mode=all +set altformat_current= %F +set altformat_playlist= %f%= %d +set altformat_title=%f +set altformat_trackwin= %f%= %d +set auto_expand_albums_follow=true +set auto_expand_albums_search=true +set auto_expand_albums_selcur=true +set auto_reshuffle=true +set buffer_seconds=10 +set color_cmdline_attr=default +set color_cmdline_bg=default +set color_cmdline_fg=default +set color_cur_sel_attr=default +set color_error=lightred +set color_info=lightyellow +set color_separator=blue +set color_statusline_attr=default +set color_statusline_bg=gray +set color_statusline_fg=black +set color_titleline_attr=default +set color_titleline_bg=blue +set color_titleline_fg=white +set color_trackwin_album_attr=bold +set color_trackwin_album_bg=default +set color_trackwin_album_fg=default +set color_win_attr=default +set color_win_bg=default +set color_win_cur=lightyellow +set color_win_cur_attr=default +set color_win_cur_sel_attr=default +set color_win_cur_sel_bg=blue +set color_win_cur_sel_fg=lightyellow +set color_win_dir=lightblue +set color_win_fg=default +set color_win_inactive_cur_sel_attr=default +set color_win_inactive_cur_sel_bg=gray +set color_win_inactive_cur_sel_fg=lightyellow +set color_win_inactive_sel_attr=default +set color_win_inactive_sel_bg=gray +set color_win_inactive_sel_fg=black +set color_win_sel_attr=default +set color_win_sel_bg=blue +set color_win_sel_fg=white +set color_win_title_attr=default +set color_win_title_bg=blue +set color_win_title_fg=white +set confirm_run=true +set continue=true +set device=/dev/cdrom +set display_artist_sort_name=false +set dsp.alsa.device= +set dsp.ao.buffer_size=16384 +set dsp.ao.device_interface= +set dsp.ao.driver= +set dsp.ao.wav_counter=1 +set dsp.ao.wav_dir=/home/trollshotlol +set dsp.jack.resampling_quality=2 +set dsp.jack.server_name= +set dsp.oss.device= +set follow=false +set format_current= %a - %l -%3n. %t%= %y +set format_playlist= %-21%a %3n. %t%= %y %d %{?X!=0?%3X ? } +set format_playlist_va= %-21%A %3n. %t (%a)%= %y %d %{?X!=0?%3X ? } +set format_statusline= %{status} %{?show_playback_position?%{position} %{?duration?/ %{duration} }?%{?duration?%{duration} }}- %{total} %{?volume>=0?vol: %{?lvolume!=rvolume?%{lvolume},%{rvolume} ?%{volume} }}%{?stream?buf: %{buffer} }%{?show_current_bitrate & bitrate>=0? %{bitrate} kbps }%=%{?repeat_current?repeat current?%{?play_library?%{playlist_mode} from %{?play_sorted?sorted }library?playlist}} | %1{continue}%1{follow}%1{repeat}%1{shuffle} +set format_title=%a - %l - %t (%y) +set format_trackwin=%3n. %t%= %y %d +set format_trackwin_album= %l +set format_trackwin_va=%3n. %t (%a)%= %y %d +set format_treewin= %l +set format_treewin_artist=%a +set icecast_default_charset=ISO-8859-1 +set id3_default_charset=ISO-8859-1 +set input.aac.priority=50 +set input.cdio.cddb_url=freedb.freedb.org:8880 +set input.cdio.priority=50 +set input.cue.priority=50 +set input.ffmpeg.priority=30 +set input.flac.priority=50 +set input.mad.priority=55 +set input.modplug.priority=50 +set input.mpc.priority=50 +set input.opus.priority=50 +set input.vorbis.priority=50 +set input.wav.priority=50 +set input.wavpack.priority=50 +set lib_add_filter= +set lib_sort=albumartist date album discnumber tracknumber title filename play_count +set mixer.alsa.channel= +set mixer.alsa.device= +set mixer.oss.channel=PCM +set mixer.oss.device= +set mixer.pulse.restore_volume=1 +set mouse=false +set mpris=true +set output_plugin=pulse +set passwd= +set pl_sort= +set play_library=true +set play_sorted=false +set repeat=false +set repeat_current=false +set replaygain=disabled +set replaygain_limit=true +set replaygain_preamp=0.000000 +set resume=true +set rewind_offset=5 +set scroll_offset=2 +set set_term_title=true +set show_all_tracks=true +set show_current_bitrate=false +set show_hidden=false +set show_playback_position=true +set show_remaining_time=false +set shuffle=false +set skip_track_info=false +set smart_artist_sort=true +set softvol=false +set softvol_state=0 0 +set start_view=tree +set status_display_program= +set time_show_leading_zero=true +set wrap_search=true +bind browser backspace browser-up +bind browser i toggle show_hidden +bind browser space win-activate +bind browser u win-update +bind common ! push shell +bind common + vol +10% +bind common , seek -1m +bind common - vol -10% +bind common . seek +1m +bind common 1 view tree +bind common 2 view sorted +bind common 3 view playlist +bind common 4 view queue +bind common 5 view browser +bind common 6 view filters +bind common 7 view settings +bind common = vol +10% +bind common C toggle continue +bind common D win-remove +bind common E win-add-Q +bind common F push filter +bind common G win-bottom +bind common I echo {} +bind common L push live-filter +bind common M toggle play_library +bind common N search-prev +bind common P win-mv-before +bind common U win-update-cache +bind common [ vol +1% +0 +bind common ] vol +0 +1% +bind common ^B win-page-up +bind common ^C echo Type :quit<enter> to exit cmus. +bind common ^E win-scroll-down +bind common ^F win-page-down +bind common ^L refresh +bind common ^R toggle repeat_current +bind common ^Y win-scroll-up +bind common a win-add-l +bind common b player-next +bind common c player-pause +bind common delete win-remove +bind common down win-down +bind common e win-add-q +bind common end win-bottom +bind common enter win-activate +bind common f toggle follow +bind common g win-top +bind common h seek -5 +bind common home win-top +bind common i win-sel-cur +bind common j win-down +bind common k win-up +bind common l seek +5 +bind common left seek -5 +bind common m toggle aaa_mode +bind common mlb_click_selected win-activate +bind common mouse_scroll_down win-down +bind common mouse_scroll_up win-up +bind common n search-next +bind common o toggle play_sorted +bind common p win-mv-after +bind common page_down win-page-down +bind common page_up win-page-up +bind common q quit -i +bind common r toggle repeat +bind common right seek +5 +bind common s toggle shuffle +bind common space win-toggle +bind common t toggle show_remaining_time +bind common tab win-next +bind common u update-cache +bind common up win-up +bind common v player-stop +bind common x player-play +bind common y win-add-p +bind common z player-prev +bind common { vol -1% -0 +bind common } vol -0 -1% +fset 90s=date>=1990&date<2000 +fset classical=genre="Classical" +fset missing-tag=!stream&(artist=""|album=""|title=""|tracknumber=-1|date=-1) +fset mp3=filename="*.mp3" +fset ogg=filename="*.ogg" +fset ogg-or-mp3=ogg|mp3 +fset unheard=play_count=0 +factivate diff --git a/cmus/cache b/cmus/cache Binary files differnew file mode 100644 index 0000000..6de1401 --- /dev/null +++ b/cmus/cache diff --git a/cmus/command-history b/cmus/command-history new file mode 100644 index 0000000..80e67fa --- /dev/null +++ b/cmus/command-history @@ -0,0 +1,10 @@ +filter ffff +add http://stream.trainsweebshop.tk/mpd.m3u +add http://stream.trainsweebshop.tk/mpd.mp3 +add https://stream.trainsweebshop.tk/mpd.mp3 +add 'http://stream.trainsweebshop.tk/mpd.mp3' +add 'https://stream.trainsweebshop.tk/mpd.mp3' +clear +set resume=true +add Downloads/stream.m3u +add http://listen.moe/stream.m3u diff --git a/cmus/lib.pl b/cmus/lib.pl new file mode 100644 index 0000000..c0365e1 --- /dev/null +++ b/cmus/lib.pl @@ -0,0 +1,2239 @@ +/mnt/trollshotlol@maeve/Music/장윤주/Dream/01 29.flac +/mnt/trollshotlol@maeve/Music/장윤주/Dream/02 April.flac +/mnt/trollshotlol@maeve/Music/장윤주/Dream/03 오늘, 고마운 하루.flac +/mnt/trollshotlol@maeve/Music/장윤주/Dream/04 Dream (Piano ver.).flac +/mnt/trollshotlol@maeve/Music/장윤주/Dream/05 11월.flac +/mnt/trollshotlol@maeve/Music/장윤주/Dream/06 Fly Away.flac +/mnt/trollshotlol@maeve/Music/장윤주/Dream/07 파리에 부친 편지.flac +/mnt/trollshotlol@maeve/Music/장윤주/Dream/08 Martini Rosso.flac +/mnt/trollshotlol@maeve/Music/장윤주/Dream/09 Love song.flac +/mnt/trollshotlol@maeve/Music/장윤주/Dream/10 옥탑방 (demo ver.).flac +/mnt/trollshotlol@maeve/Music/장윤주/Dream/11 April (instrumental).flac +/mnt/trollshotlol@maeve/Music/장윤주/Dream/12 Dream (Guitar ver.).flac +/mnt/trollshotlol@maeve/Music/100 gecs/1000 gecs/01 745 sticky.mp3 +/mnt/trollshotlol@maeve/Music/100 gecs/1000 gecs/02 money machine.mp3 +/mnt/trollshotlol@maeve/Music/100 gecs/1000 gecs/03 800db cloud.mp3 +/mnt/trollshotlol@maeve/Music/100 gecs/1000 gecs/04 I Need Help Immediately.mp3 +/mnt/trollshotlol@maeve/Music/100 gecs/1000 gecs/05 stupid horse.mp3 +/mnt/trollshotlol@maeve/Music/100 gecs/1000 gecs/06 xXXi_wud_nvrstøp_ÜXXx.mp3 +/mnt/trollshotlol@maeve/Music/100 gecs/1000 gecs/07 ringtone.mp3 +/mnt/trollshotlol@maeve/Music/100 gecs/1000 gecs/08 gecgecgec.mp3 +/mnt/trollshotlol@maeve/Music/100 gecs/1000 gecs/09 hand crushed by a mallet.mp3 +/mnt/trollshotlol@maeve/Music/100 gecs/1000 gecs/10 gec 2 Ü.mp3 +/mnt/trollshotlol@maeve/Music/100 gecs feat. Charli XCX, Rico Nasty, Kero Kero Bonito/ringtone (remix)/01 ringtone (remix).mp3 +/mnt/trollshotlol@maeve/Music/385/脳みそあらおう/01 行動.mp3 +/mnt/trollshotlol@maeve/Music/385/脳みそあらおう/02 鼓膜クレイジー.mp3 +/mnt/trollshotlol@maeve/Music/385/脳みそあらおう/03 脳みそあらおう.mp3 +/mnt/trollshotlol@maeve/Music/385/脳みそあらおう/04 みんな同じ顔.mp3 +/mnt/trollshotlol@maeve/Music/385/脳みそあらおう/05 お正月.mp3 +/mnt/trollshotlol@maeve/Music/385/脳みそあらおう/06 マサカリ.mp3 +/mnt/trollshotlol@maeve/Music/9mm Parabellum Bullet/インフェルノ/01 インフェルノ.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/01 六等星の夜.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/02 蝶々結び.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/03 あなたに出会わなければ〜夏雪冬花〜.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/04 ポラリス.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/05 Re_pray.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/06 星屑ビーナス.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/07 broKen NIGHT.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/08 カタオモイ.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/09 君を待つ.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/10 茜さす.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/11 雪の降る街.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/12 everlasting snow.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/13 March of Time.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “blanc”/14 歌鳥風月.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/01 StarRingChild.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/02 Brave Shine.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/03 insane dream.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/04 Stars in the rain.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/05 眠りの森.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/06 LAST STARDUST.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/07 凍えそうな季節から -extended ver.-.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/08 誰か、海を。.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/09 ninelie.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/10 holLow wORlD.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/11 us.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/12 s-AVE.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/13 RE_I AM.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/BEST SELECTION “noir”/14 zero.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Penny Rain/01 pluie.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Penny Rain/02 I beg you.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Penny Rain/03 Black Bird.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Penny Rain/04 Sailing.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Penny Rain/05 眩いばかり.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Penny Rain/06 Stand By You.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Penny Rain/07 Ref_rain.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Penny Rain/08 i-mage _in_AR_.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Penny Rain/09 花の唄.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Penny Rain/10 April Showers.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Sun Dance/01 soleil.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Sun Dance/02 ONE.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Sun Dance/03 We Two.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Sun Dance/04 3min.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Sun Dance/05 コイワズライ.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Sun Dance/06 花びらたちのマーチ.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Sun Dance/07 思い出は奇麗で.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Sun Dance/08 Monochrome Syndrome.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Sun Dance/09 SUN DANCE.mp3 +/mnt/trollshotlol@maeve/Music/Aimer/Sun Dance/10 ONE -epilogue-.mp3 +/mnt/trollshotlol@maeve/Music/Aiobahn feat. nayuta/過ぎゆく日と君へ/01 過ぎゆく日と君へ.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz/01 Kimi wo Nosete (Laputa).mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz/02 Umi no Mieru Machi (Kiki).mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz/03 Yasashisa ni Tsutsumareta Nara (Kiki).mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz/04 Kaze no Toorimichi (Totoro).mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz/05 Tonari no Totoro (Totoro).mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz/06 Jinsei no Merry-Go-Round (Howl).mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz/07 Country Road (Mimi wo Sumaseba).mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz/08 Mononoke Hime (Mononoke).mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz/09 Kaze no Tani no Nausicaa (Nausicaa).mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz/10 Nausicaa Requiem (Nausicaa).mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz/11 Toki ni ha Mukashi no Hanashi Wo (Porco).mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz/12 Gake no Ue no Ponyo (Ponyo).mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/01 Kaze no Toorimichi.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/02 Hareta Hi ni.._.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/03 Sampo.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/04 Sora kara Futtekita Shoujo.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/05 Meguru Kisetsu.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/06 Ashitaka Sekki.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/07 Ai wa Hana, Kimi wa sono Tane.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/08 Neko Basu.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/09 Teruu no Uta.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/10 Ano Natsu e.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/11 Itsumo Nando demo.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/12 Kaze no Densetsu.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/13 Arrietty's Song.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/Ghibli Jazz 2/14 Sekai no Yakusoku.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/EVER JAZZ/01 残酷な天使のテーゼ.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/EVER JAZZ/02 ANGEL ATTACK.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/EVER JAZZ/03 魂のルフラン.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/EVER JAZZ/04 MISATO.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/EVER JAZZ/05 集結の園へ.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/EVER JAZZ/06 REl l.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/EVER JAZZ/07 心よ原始に戻れ.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/EVER JAZZ/08 ASUKA STRIKES!.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/EVER JAZZ/09 Komm,susser Tod _甘き死よ、来たれ.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/EVER JAZZ/10 THE BEAST II.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/EVER JAZZ/11 FLY ME TO THE MOON.mp3 +/mnt/trollshotlol@maeve/Music/All That Jazz/EVER JAZZ/12 次回予告.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/01 Endless Fantasy.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/02 Japan Air.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/03 Echobo.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/04 Planet.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/05 Viridian Genesis.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/06 John Hughes.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/07 Prom Night.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/08 Interlude (Gymnopedie No. 1).mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/09 Akira.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/10 SPF 420.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/11 Interlude (Total Tea Time).mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/12 Meow.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/13 Canal Paradise.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/14 Snow Angels.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/15 In the Basement.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/16 U n Me.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/17 Space Wax America.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/18 EVERYTHING EXPLODES.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/19 Interlude (STILL SPLODIN THO).mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/20 Pastel Flags.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/21 Bosozoku GF.mp3 +/mnt/trollshotlol@maeve/Music/Anamanaguchi/Endless Fantasy/22 (T-T)b.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/01 Babymetal Death.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/02 Megitsune.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/03 Gimme Chocolate!!.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/04 Iine!.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/05 Akatsuki.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/06 Doki Doki ☆ Morning.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/07 Onedari Daisakusen.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/08 Song 4.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/09 Uki Uki ★ Midnight.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/10 Catch Me If You Can.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/11 Rondo of Nightmare.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/12 Head Bangya!!.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/13 Ijime Dame Zettai.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/01 BABYMETAL DEATH.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/02 メギツネ.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/03 ギミチョコ!!.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/04 いいね!.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/05 紅月-アカツキ-.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/06 ド・キ・ド・キ☆モーニング.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/07 おねだり大作戦.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/08 4の歌.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/09 ウ・キ・ウ・キ★ミッドナイト.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/10 Catch me if you can.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/11 悪夢の輪舞曲.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/12 ヘドバンギャー!!.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/BABYMETAL/13 イジメ、ダメ、ゼッタイ.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL RESISTANCE/01 Road of Resistance.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL RESISTANCE/02 KARATE.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL RESISTANCE/03 Awadama Fever.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL RESISTANCE/04 YAVA!.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL RESISTANCE/05 Amore.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL RESISTANCE/06 Meta Taro.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL RESISTANCE/07 From Dusk Till Dawn.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL RESISTANCE/08 GJ!.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL RESISTANCE/09 Sis. Anger.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL RESISTANCE/10 NO RAIN, NO RAINBOW.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL RESISTANCE/11 Tales of the Destinies.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL RESISTANCE/12 THE ONE.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/01 FUTURE METAL.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/02 DA DA DANCE.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/03 Elevator Girl.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/04 Shanti Shanti Shanti.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/05 Oh! MAJINAI.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/06 Brand New Day.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/07 ↑↓←→BBAB.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/08 Night Night Burn!.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/09 IN THE NAME OF.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/10 Distortion.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/11 PA PA YA!!.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/12 BxMxC.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/13 Kagerou.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/14 Starlight.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/15 Shine.mp3 +/mnt/trollshotlol@maeve/Music/BABYMETAL/METAL GALAXY/16 Arkadia.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/01 Asterism❖.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/02 S'more.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/03 Maple Trick.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/04 Mizutama.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/05 Waffle Cone.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/06 Honey Bee.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/07 Rem.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/08 Journey.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/09 Akubi.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/10 Orange Rocket.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/11 Tulala Story.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/12 Mint Comet.mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/13 MOMO SYRUP (Intro Ver.).mp3 +/mnt/trollshotlol@maeve/Music/beignet/re_new Memory/14 re_new Memory.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Intermodulation/01 I've Got You Under My Skin.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Intermodulation/02 My Man's Gone Now.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Intermodulation/03 Turn Out the Stars.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Intermodulation/04 Angel Face.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Intermodulation/05 Jazz Samba.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Intermodulation/06 All Across the City.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Undercurrent/01 My Funny Valentine (alternate take).mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Undercurrent/02 My Funny Valentine.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Undercurrent/03 I Hear a Rhapsody.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Undercurrent/04 Dream Gypsy.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Undercurrent/05 Stairway to the Stars.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Undercurrent/06 I'm Getting Sentimental Over You.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Undercurrent/07 Romain.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Undercurrent/08 Romain (alternate take).mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Undercurrent/09 Skating in Central Park.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans & Jim Hall/Undercurrent/10 Darn That Dream.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans Trio/Portrait in Jazz/01 Come Rain or Come Shine.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans Trio/Portrait in Jazz/02 Autumn Leaves.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans Trio/Portrait in Jazz/03 Witchcraft.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans Trio/Portrait in Jazz/04 When I Fall in Love.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans Trio/Portrait in Jazz/05 Peri’s Scope.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans Trio/Portrait in Jazz/06 What Is This Thing Called Love.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans Trio/Portrait in Jazz/07 Spring Is Here.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans Trio/Portrait in Jazz/08 Someday My Prince Will Come.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans Trio/Portrait in Jazz/09 Blue in Green.mp3 +/mnt/trollshotlol@maeve/Music/Bill Evans Trio/Portrait in Jazz/10 Autumn Leaves (monaural LP version).mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/01 !!!!!!!.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/02 bad guy.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/03 xanny.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/04 you should see me in a crown.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/05 all the good girls go to hell.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/06 wish you were gay.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/07 when the party’s over.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/08 8.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/09 my strange addiction.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/10 bury a friend.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/11 ilomilo.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/12 listen before i go.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/13 i love you.mp3 +/mnt/trollshotlol@maeve/Music/Billie Eilish/WHEN WE ALL FALL ASLEEP, WHERE DO WE GO_/14 goodbye.mp3 +/mnt/trollshotlol@maeve/Music/Blonde Redhead/23/01 23.mp3 +/mnt/trollshotlol@maeve/Music/Blonde Redhead/23/02 Dr. Strangeluv.mp3 +/mnt/trollshotlol@maeve/Music/Blonde Redhead/23/03 The Dress.mp3 +/mnt/trollshotlol@maeve/Music/Blonde Redhead/23/04 SW.mp3 +/mnt/trollshotlol@maeve/Music/Blonde Redhead/23/05 Spring and by Summer Fall.mp3 +/mnt/trollshotlol@maeve/Music/Blonde Redhead/23/06 Silently.mp3 +/mnt/trollshotlol@maeve/Music/Blonde Redhead/23/07 Publisher.mp3 +/mnt/trollshotlol@maeve/Music/Blonde Redhead/23/08 Heroine.mp3 +/mnt/trollshotlol@maeve/Music/Blonde Redhead/23/09 Top Ranking.mp3 +/mnt/trollshotlol@maeve/Music/Blonde Redhead/23/10 My Impure Hair.mp3 +/mnt/trollshotlol@maeve/Music/Boredoms/VISION CREATION NEWSUN/01 ○.mp3 +/mnt/trollshotlol@maeve/Music/Boredoms/VISION CREATION NEWSUN/02 ☆.mp3 +/mnt/trollshotlol@maeve/Music/Boredoms/VISION CREATION NEWSUN/03 ♡.mp3 +/mnt/trollshotlol@maeve/Music/Boredoms/VISION CREATION NEWSUN/04 [うずまき].mp3 +/mnt/trollshotlol@maeve/Music/Boredoms/VISION CREATION NEWSUN/05 〜.mp3 +/mnt/trollshotlol@maeve/Music/Boredoms/VISION CREATION NEWSUN/06 ◎.mp3 +/mnt/trollshotlol@maeve/Music/Boredoms/VISION CREATION NEWSUN/07 ↑.mp3 +/mnt/trollshotlol@maeve/Music/Boredoms/VISION CREATION NEWSUN/08 Ω.mp3 +/mnt/trollshotlol@maeve/Music/Boredoms/VISION CREATION NEWSUN/09 ずっと.mp3 +/mnt/trollshotlol@maeve/Music/Boris/NO/01 Genesis.mp3 +/mnt/trollshotlol@maeve/Music/Boris/NO/02 Anti-Gone.mp3 +/mnt/trollshotlol@maeve/Music/Boris/NO/03 Non Blood Lore.mp3 +/mnt/trollshotlol@maeve/Music/Boris/NO/04 Temple of Hatred.mp3 +/mnt/trollshotlol@maeve/Music/Boris/NO/05 鏡 -Zerkalo-.mp3 +/mnt/trollshotlol@maeve/Music/Boris/NO/06 HxCxHxC -Parforation Line-.mp3 +/mnt/trollshotlol@maeve/Music/Boris/NO/07 キキノウエ -Kiki no Ue-.mp3 +/mnt/trollshotlol@maeve/Music/Boris/NO/08 Lust.mp3 +/mnt/trollshotlol@maeve/Music/Boris/NO/09 Fundamental Error.mp3 +/mnt/trollshotlol@maeve/Music/Boris/NO/10 Loveless.mp3 +/mnt/trollshotlol@maeve/Music/Boris/NO/11 Interlude.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/01 Key.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/02 Door.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/03 Subwoofer Lullaby.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/04 Death.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/05 Living Mice.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/06 Moog City.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/07 Haggstrom.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/08 Minecraft.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/09 Oxygène.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/10 Équinoxe.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/11 Mice on Venus.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/12 Dry Hands.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/13 Wet Hands.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/14 Clark.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/15 Chris.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/16 Thirteen.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/17 Excuse.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/18 Sweden.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/19 Cat.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/20 Dog.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/21 Danny.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/22 Beginning.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/23 Droopy Likes Ricochet.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Alpha/24 Droopy Likes Your Face.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/01 Ki.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/02 Alpha.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/03 Dead Voxel.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/04 Blind Spots.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/05 Flake.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/06 Moog City 2.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/07 Concrete Halls.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/08 Biome Fest.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/09 Mutation.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/10 Haunt Muskie.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/11 Warmth.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/12 Floating Trees.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/13 Aria Math.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/14 Kyoto.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/15 Ballad of the Cats.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/16 Taswell.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/17 Beginning 2.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/18 Dreiton.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/19 The End.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/20 Chirp.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/21 Wait.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/22 Mellohi.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/23 Stal.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/24 Strad.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/25 Eleven.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/26 Ward.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/27 Mall.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/28 Blocks.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/29 Far.mp3 +/mnt/trollshotlol@maeve/Music/C418/Minecraft, Volume Beta/30 Intro.mp3 +/mnt/trollshotlol@maeve/Music/Casiopea/Casiopea/01 Time Limit.mp3 +/mnt/trollshotlol@maeve/Music/Casiopea/Casiopea/02 Tears of the Star.mp3 +/mnt/trollshotlol@maeve/Music/Casiopea/Casiopea/03 Space Road.mp3 +/mnt/trollshotlol@maeve/Music/Casiopea/Casiopea/04 Midnight Rendezvous.mp3 +/mnt/trollshotlol@maeve/Music/Casiopea/Casiopea/05 Far Away.mp3 +/mnt/trollshotlol@maeve/Music/Casiopea/Casiopea/06 Swallow.mp3 +/mnt/trollshotlol@maeve/Music/Casiopea/Casiopea/07 Dream Hill.mp3 +/mnt/trollshotlol@maeve/Music/Casiopea/Casiopea/08 Black Joke.mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/01 Café Alpha - Main Theme.mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/02 夕凪の時代.mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/03 夏のこども.mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/04 ムサシノ国旅情.mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/05 A7M2型試作機の憂鬱.mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/06 Gas Station Blues.mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/07 ツール・ド・ヨコハマ.mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/08 風化「時の岸辺にて・・・」.mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/09 AT-6 -TEXAN-.mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/10 Café Alpha - Main Theme (orchestration).mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/11 夏のこども (orchestration).mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/12 ムサシノ国旅情 (orchestration).mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/13 夕凪の時代 (orchestration).mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/14 ふわふら.mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/15 Café Alpha - Main Theme (口笛).mp3 +/mnt/trollshotlol@maeve/Music/Choro Club/ヨコハマ買い出し紀行 -Quiet Country Cafe- Original Soundtrack/16 月の琴.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/DAOKO/01 水星.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/DAOKO/02 かけてあげる.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/DAOKO/03 一番星.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/DAOKO/04 ゆめうつつ.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/DAOKO/05 流星都市.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/DAOKO/06 ぼく.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/DAOKO/07 きみ.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/DAOKO/08 嫌.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/DAOKO/09 ミュージック.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/DAOKO/10 JK.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/DAOKO/11 ないものねだり.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/DAOKO/12 高い壁には幾千のドア.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/01 打上花火.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/02 ステップアップ LOVE.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/03 Juicy.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/04 さみしいかみさま.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/05 ShibuyaK.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/06 BANG!.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/07 ダイスキ.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/08 拝啓グッバイさようなら.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/09 同じ夜.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/10 GRY.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/11 もしも僕らがGAME の主役で.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/12 ゆめみてたのあたし.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/13 Cinderella step.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/THANK YOU BLUE/14 ワンルーム・シーサイド・ステップ.m4a +/mnt/trollshotlol@maeve/Music/DAOKO/私的旅行/01 終わらない世界で.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/私的旅行/02 ぼくらのネットワーク.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/私的旅行/03 オイデオイデ.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/私的旅行/04 24h.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/私的旅行/05 種も仕掛けもある魔法.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/私的旅行/06 サニーボーイ・レイニーガール.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/私的旅行/07 涙は雨粒.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/私的旅行/08 蝶々になって.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/私的旅行/09 打上花火 (DAOKO SOLO ver.).mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/私的旅行/10 NICE TRIP.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/anima/01 VOICE.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/anima/02 anima.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/anima/03 アキレス腱.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/anima/04 愛のロス.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/anima/05 御伽の街.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/anima/06 ハイセンスパイセン.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/anima/07 ZukiZuki.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/anima/08 Sorry Sorry.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/anima/09 海中憂泳.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/anima/10 ストロベリームーン.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/anima/11 帰りたい!.mp3 +/mnt/trollshotlol@maeve/Music/DAOKO/anima/12 おちゃらけたよ.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/01 Beware.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/02 Guillotine.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/03 Spread Eagle Cross the Block.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/04 Lord of the Game.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/05 Takyon (Death Yon).mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/06 Cut Throat (instrumental).mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/07 Klink.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/08 Culture Shock.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/09 5D.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/10 Thru the Walls.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/11 Known for It.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/12 I Want It I Need It (Death Heated).mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/Exmilitary/13 Blood Creepin.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/01 Get Got.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/02 The Fever (Aye Aye).mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/03 Lost Boys.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/04 Blackjack.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/05 Hustle Bones.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/06 I've Seen Footage.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/07 Double Helix.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/08 System Blower.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/09 The Cage.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/10 Punk Weight.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/11 Fuck That.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/12 Bitch Please.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/The Money Store/13 Hacker.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/01 Come Up and Get Me.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/02 Lil Boy.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/03 No Love.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/04 Black Dice.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/05 World of Dogs.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/06 Lock Your Doors.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/07 Whammy.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/08 Hunger Games.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/09 Deep Web.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/10 Stockton.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/11 Pop.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/12 Bass Rattle Stars Out the Sky.mp3 +/mnt/trollshotlol@maeve/Music/Death Grips/No Love Deep Web/13 Artificial Death in the West.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/01 ようこそジャパリパークへ.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/02 ゆりゆららららゆるゆり大事件.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/03 READY!! (M@STER VERSION).mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/04 コネクト.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/05 Snow halation.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/06 Crow Song.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/07 空色デイズ.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/08 カサブタ.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/09 ウィーアー!.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/10 Butter-Fly.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/11 ウルトラリラックス.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/12 そばかす.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/13 リライト.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/14 JOINT.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/15 ギミー!レボリューション.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/16 Q&A リサイタル!.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/17 M@STERPIECE.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/18 DAYS.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/19 MEMORIA.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/20 Shooting Star.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/21 鳥の詩.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/22 だんご大家族.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/23 ゆずれない願い.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/24 ムーンライト伝説(TVサイズ).mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/25 恋しさと せつなさと 心強さと.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/26 My Heart 言い出せない、Your Heart 確かめたい.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/27 君じゃなきゃダメみたい.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/28 カレンダーガール.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/29 青空のラプソディ.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/30 adrenaline!!!.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/31 Daydream cafe.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/32 もってけ! セーラーふく.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/33 God knows.._.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/34 おジャ魔女カーニバル!!.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/35 太陽曰く燃えよカオス.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/36 only my railgun.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/37 INVOKE -インヴォーク-.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/38 Gamble Rumble.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/39 Preserved Roses.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/40 名前のない怪物.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/41 君の知らない物語.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/42 Catch the Moment.mp3 +/mnt/trollshotlol@maeve/Music/DJ和/平成アニソン大賞 mixed by DJ和/43 Agape.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/01 英雄 運命の詩.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/02 Welcome to the _fam.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/03 KABANERI OF THE IRON FORTRESS.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/04 Door.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/05 Ghost of a smile.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/06 リローデッド.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/07 Fallen.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/08 好きと言われた日.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/09 All Alone With You.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/10 カナデナル.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/11 名前のない怪物.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/12 Planetes.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/13 The Everlasting Guilty Crown.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/14 エウテルペ.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/15 Departures 〜あなたにおくるアイの歌〜.mp3 +/mnt/trollshotlol@maeve/Music/EGOIST/GREATEST HITS 2011-2017 _ALTER EGO_/16 Departures 〜あなたにおくるアイの歌〜 (Acoustice Ver.).mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/01 I Want You to Love Me.mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/02 Shameika.mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/03 Fetch the Bolt Cutters.mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/04 Under the Table.mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/05 Relay.mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/06 Rack of His.mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/07 Newspaper.mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/08 Ladies.mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/09 Heavy Balloon.mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/10 Cosmonauts.mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/11 For Her.mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/12 Drumset.mp3 +/mnt/trollshotlol@maeve/Music/Fiona Apple/Fetch the Bolt Cutters/13 On I Go.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/空中キャンプ/01 ずっと前.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/空中キャンプ/02 BABY BLUE.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/空中キャンプ/03 SLOW DAYS.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/空中キャンプ/04 SUNNY BLUE.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/空中キャンプ/05 ナイトクルージング.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/空中キャンプ/06 幸せ者.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/空中キャンプ/07 すばらしくてNICE CHOICE.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/空中キャンプ/08 新しい人.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/Long Season/01 Long Season 1.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/Long Season/02 Long Season 2.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/Long Season/03 Long Season 3.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/Long Season/04 Long Season 4.mp3 +/mnt/trollshotlol@maeve/Music/フィッシュマンズ/Long Season/05 Long Season 5.mp3 +/mnt/trollshotlol@maeve/Music/Friday Night Plans/Plastic Love/01 Plastic Love.flac +/mnt/trollshotlol@maeve/Music/Hello Sleepwalkers/Masked Monkey Awakening/01 猿は木から何処へ落ちる.mp3 +/mnt/trollshotlol@maeve/Music/Hello Sleepwalkers/Masked Monkey Awakening/02 午夜の待ち合わせ.mp3 +/mnt/trollshotlol@maeve/Music/Hello Sleepwalkers/Masked Monkey Awakening/03 Bloody Mary.mp3 +/mnt/trollshotlol@maeve/Music/Hello Sleepwalkers/Masked Monkey Awakening/04 Comic Relief.mp3 +/mnt/trollshotlol@maeve/Music/Hello Sleepwalkers/Masked Monkey Awakening/05 砂漠.mp3 +/mnt/trollshotlol@maeve/Music/Hello Sleepwalkers/Masked Monkey Awakening/06 天地創造.mp3 +/mnt/trollshotlol@maeve/Music/Hello Sleepwalkers/Masked Monkey Awakening/07 23.mp3 +/mnt/trollshotlol@maeve/Music/Hello Sleepwalkers/Masked Monkey Awakening/08 越境.mp3 +/mnt/trollshotlol@maeve/Music/Hello Sleepwalkers/Masked Monkey Awakening/09 Countdown.mp3 +/mnt/trollshotlol@maeve/Music/Hello Sleepwalkers/Masked Monkey Awakening/10 円盤飛来.mp3 +/mnt/trollshotlol@maeve/Music/Hyper Potions, Synthion & MYLK/Maboroshi/01 Maboroshi.opus +/mnt/trollshotlol@maeve/Music/KANA-BOON/DOPPEL/01 1.2.step to you.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/DOPPEL/02 ワールド.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/DOPPEL/03 ウォーリーヒーロー.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/DOPPEL/04 MUSiC.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/DOPPEL/05 東京.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/DOPPEL/06 白夜.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/DOPPEL/07 目と目と目と目.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/DOPPEL/08 盛者必衰の理、お断り.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/DOPPEL/09 夜をこえて.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/DOPPEL/10 羽虫と自販機.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/DOPPEL/11 A.oh!!.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/TIME/01 タイムアウト.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/TIME/02 LOL.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/TIME/03 ターミナル.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/TIME/04 結晶星.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/TIME/05 クラクション.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/TIME/06 フルドライブ.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/TIME/07 生きてゆく.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/TIME/08 スコールスコール.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/TIME/09 愛にまみれて.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/TIME/10 シルエット.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/TIME/11 スノーグローブ.mp3 +/mnt/trollshotlol@maeve/Music/KANA-BOON/TIME/12 パレード.mp3 +/mnt/trollshotlol@maeve/Music/Ken Ishii/Jelly Tones/01 Extra.mp3 +/mnt/trollshotlol@maeve/Music/Ken Ishii/Jelly Tones/02 Cocoa Mousse.mp3 +/mnt/trollshotlol@maeve/Music/Ken Ishii/Jelly Tones/03 Stretch.mp3 +/mnt/trollshotlol@maeve/Music/Ken Ishii/Jelly Tones/04 Ethos 9.mp3 +/mnt/trollshotlol@maeve/Music/Ken Ishii/Jelly Tones/05 Moved by Air.mp3 +/mnt/trollshotlol@maeve/Music/Ken Ishii/Jelly Tones/06 Pause in Herbs.mp3 +/mnt/trollshotlol@maeve/Music/Ken Ishii/Jelly Tones/07 Frame Out.mp3 +/mnt/trollshotlol@maeve/Music/Ken Ishii/Jelly Tones/08 Endless Season.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/07 Babies (Are So Strange).mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/01 Bonito Intro.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/08 Bonito Jingle.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/05 Cat vs. Dog.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/11 Cat vs. Dog.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/09 Homework.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/15 I’d Rather Sleep.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/02 Intro Bonito.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/06 Kero Kero Bonito.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/13 Let’s Go to the Forest.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/04 My Party.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/12 Park Song.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/10 Pocket Crocodile.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/03 Sick Beat.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Intro Bonito/14 Small Town.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Flamingo/01 Flamingo.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/01 Waking Up.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/02 Heard a Song.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/03 Graduation.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/04 Fish Bowl.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/05 Big City.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/06 Break.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/07 Lipslap.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/08 Try Me.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/09 Paintbrush.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/10 Trampoline.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/11 Picture This.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/12 Hey Parents.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Bonito Generation/13 Forever Summer Holiday.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/TOTEP/04 Cinema.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/TOTEP/02 Only Acting.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/TOTEP/01 The One True Path.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/TOTEP/03 You Know How It Is.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Time ’n’ Place/01 Outside.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Time ’n’ Place/02 Time Today.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Time ’n’ Place/03 Only Acting.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Time ’n’ Place/04 Flyway.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Time ’n’ Place/05 Dump.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Time ’n’ Place/06 Make Believe.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Time ’n’ Place/07 Dear Future Self.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Time ’n’ Place/08 Visiting Hours.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Time ’n’ Place/09 If I’d Known.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Time ’n’ Place/10 Sometimes.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Time ’n’ Place/11 Swimming.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Time ’n’ Place/12 Rest Stop.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Civilisation I/01 Battle Lines.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Civilisation I/03 The River.mp3 +/mnt/trollshotlol@maeve/Music/Kero Kero Bonito/Civilisation I/02 When the Fires Come.mp3 +/mnt/trollshotlol@maeve/Music/kobasolo/KOBASOLO/01 恋せよオトメ (feat. 春茶).mp3 +/mnt/trollshotlol@maeve/Music/kobasolo/KOBASOLO/02 Losers (feat. MICO).mp3 +/mnt/trollshotlol@maeve/Music/kobasolo/KOBASOLO/03 SHINOBIZM.mp3 +/mnt/trollshotlol@maeve/Music/kobasolo/KOBASOLO/04 さよならスマイル (feat. 杏沙子).mp3 +/mnt/trollshotlol@maeve/Music/kobasolo/KOBASOLO/05 ルラルラルー (feat. 安果音).mp3 +/mnt/trollshotlol@maeve/Music/kobasolo/KOBASOLO/06 君さえいなけりゃ (feat. 春茶).mp3 +/mnt/trollshotlol@maeve/Music/kobasolo/KOBASOLO/07 あなたのことが好きだなんて言えないんです。 (feat. 杏沙子).mp3 +/mnt/trollshotlol@maeve/Music/kobasolo/KOBASOLO/08 トーキョージェノサイドシティ (feat. MICO).mp3 +/mnt/trollshotlol@maeve/Music/kobasolo/KOBASOLO/09 全力ヒーロー.mp3 +/mnt/trollshotlol@maeve/Music/kobasolo/KOBASOLO/10 背中合わせ (feat. 安果音).mp3 +/mnt/trollshotlol@maeve/Music/KOTO/プラトニック プラネット (Platonic Planet)/01 パステルパスポート.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/プラトニック プラネット (Platonic Planet)/02 くえすちょん くえすと.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/プラトニック プラネット (Platonic Planet)/03 推定スウィーティ.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/プラトニック プラネット (Platonic Planet)/04 エンジェルがエンドレス.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/プラトニック プラネット (Platonic Planet)/05 バレンタインズバレリーナ.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/プラトニック プラネット (Platonic Planet)/06 SixteenSick.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/プラトニック プラネット (Platonic Planet)/07 プラトニックプラネット.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/プラトニック プラネット (Platonic Planet)/08 シンデレラ症候群.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/ばいばいてぃーんずららばい/01 タイガーファイヤーサイバーファイター.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/ばいばいてぃーんずららばい/02 Dancing like a snail.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/ばいばいてぃーんずららばい/03 DEAD or Kawaii.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/ばいばいてぃーんずららばい/04 ミッドナイト放題.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/ばいばいてぃーんずららばい/05 TAIKUTSUが止まらない.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/ばいばいてぃーんずららばい/06 LONLEY KONG.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/ばいばいてぃーんずららばい/07 ばいばいてぃーんずららばい.mp3 +/mnt/trollshotlol@maeve/Music/KOTO/ばいばいてぃーんずららばい/08 とってもGood!なBBQ.mp3 +/mnt/trollshotlol@maeve/Music/Lamp/恋人へ/01 恋人へ.mp3 +/mnt/trollshotlol@maeve/Music/Lamp/恋人へ/02 ひろがるなみだ.mp3 +/mnt/trollshotlol@maeve/Music/Lamp/恋人へ/03 最終列車は25時.mp3 +/mnt/trollshotlol@maeve/Music/Lamp/恋人へ/04 日曜日のお別れ.mp3 +/mnt/trollshotlol@maeve/Music/Lamp/恋人へ/05 明日になれば僕は.mp3 +/mnt/trollshotlol@maeve/Music/Lamp/恋人へ/06 雨のメッセージ.mp3 +/mnt/trollshotlol@maeve/Music/Lamp/恋人へ/07 愛の言葉.mp3 +/mnt/trollshotlol@maeve/Music/Lamp/恋人へ/08 恋は月の蔭に.mp3 +/mnt/trollshotlol@maeve/Music/Lena Raine/Minecraft Nether Update (Original Game Soundtrack)/01 Chrysopoeia.mp3 +/mnt/trollshotlol@maeve/Music/Lena Raine/Minecraft Nether Update (Original Game Soundtrack)/02 Rubedo.mp3 +/mnt/trollshotlol@maeve/Music/Lena Raine/Minecraft Nether Update (Original Game Soundtrack)/03 So Below.mp3 +/mnt/trollshotlol@maeve/Music/Lena Raine/Minecraft Nether Update (Original Game Soundtrack)/04 Pigstep - Mono Mix.mp3 +/mnt/trollshotlol@maeve/Music/Lena Raine/Minecraft Nether Update (Original Game Soundtrack)/05 Pigstep - Stereo Mix.mp3 +/mnt/trollshotlol@maeve/Music/Linked Horizon/真実への進撃/01 憧憬と屍の道.mp3 +/mnt/trollshotlol@maeve/Music/Linked Horizon/真実への進撃/02 13の冬.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/01 Rising Hope.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/02 crossing field.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/03 だってアタシのヒーロー。.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/04 シルシ.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/05 AxxxiS.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/06 Empty MERMAiD.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/07 ジェットロケット.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/08 BRiGHT FLiGHT.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/09 träumerei.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/10 L.Miranic.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/11 ID.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/12 LiTTLE DEViL PARADE.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/13 WiLL ~無色透明~.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Day-/14 Believe in myself.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/01 Catch the Moment.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/02 Thrill, Risk, Heartless.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/03 oath sign.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/04 ASH.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/05 Rally Go Round.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/06 ハローグッデイ.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/07 No More Time Machine.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/08 Hi FiVE!.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/09 コズミックジェットコースター.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/10 Brave Freak Out.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/11 ROCK-mode’18.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/12 Mr.Launcher.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/13 Believe in ourselves.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/LiSA BEST -Way-/14 best day, best way.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/紅蓮華/01 紅蓮華.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/紅蓮華/02 “PROPAGANDA”.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/紅蓮華/03 やくそくのうた.mp3 +/mnt/trollshotlol@maeve/Music/LiSA/紅蓮華/04 紅蓮華 –TV ver.–.mp3 +/mnt/trollshotlol@maeve/Music/masara/Love10/01 Love10 feat. Juunana.mp3 +/mnt/trollshotlol@maeve/Music/Masayoshi Minoshima/Bad Apple!!/01 Bad Apple!!.ogg +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/MASS OF THE FERMENTING DREGS/01 delusionalism.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/MASS OF THE FERMENTING DREGS/02 ハイライト.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/MASS OF THE FERMENTING DREGS/03 skabetty.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/MASS OF THE FERMENTING DREGS/04 エンドロール.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/MASS OF THE FERMENTING DREGS/05 I F A SURFER.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/MASS OF THE FERMENTING DREGS/06 ベアーズ.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/No New World/01 New Order.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/No New World/02 あさひなぐ.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/No New World/03 だったらいいのにな.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/No New World/04 YAH YAH YAH.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/No New World/05 No New World.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/No New World/06 HuHuHu.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/No New World/07 Sugar.mp3 +/mnt/trollshotlol@maeve/Music/MASS OF THE FERMENTING DREGS/No New World/08 スローモーションリプレイ.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Cell-Scape/01 Phantasmagoria.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Cell-Scape/02 Shield for Your Eyes, a Beast in the Well on Your Hand.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Cell-Scape/03 A Dreamer Who Is Too Weak to Face Up To.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Cell-Scape/04 Lost Parts Stinging Me So Cold.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Cell-Scape/05 Chain-Shot to Have Some Fun.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Cell-Scape/06 Like a White Bat in a Box, Dead Matters Go On.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Cell-Scape/07 Key Is a Fact That a Cat Brings.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Cell-Scape/08 A Hunter in the Rain to Cut the Neck Up in the Present Stage.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Cell-Scape/09 If It Is the Deep Sea, I Can See You There.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Cell-Scape/10 Outro for Cell-Scape.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Fetch/01 Candy Gun.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Fetch/02 The Hive.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Fetch/03 Vertigo Game.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Fetch/04 Lefty Dog (run, caper, run).mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Fetch/05 Infection Defective.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Fetch/06 My Missing Link.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Fetch/07 Zero+.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Fetch/08 Schemes of the Tails.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Fetch/09 Lie Lied Lies.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Fetch/10 Red Data, Red Stage.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Fetch/11 Then Red Eyed.mp3 +/mnt/trollshotlol@maeve/Music/Melt-Banana/Fetch/12 Zero.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Pure Pure/01 Intro.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Pure Pure/02 You Look So Good.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Pure Pure/03 Crush.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Pure Pure/04 Say.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Pure Pure/05 Kawaii Desho.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Pure Pure/06 Outro.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moshi Moshi/01 Intro.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moshi Moshi/02 Pretty Please.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moshi Moshi/03 Superstar.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moshi Moshi/04 Dance Dance.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moshi Moshi/05 Crosstalk.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moshi Moshi/06 Love Me.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moshi Moshi/07 Outro.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moe Moe/01 Magic.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moe Moe/02 Virtual.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moe Moe/03 Baby Pink.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moe Moe/04 Lovesick.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moe Moe/05 Notice.mp3 +/mnt/trollshotlol@maeve/Music/Moe Shop/Moe Moe/06 Fantasy.mp3 +/mnt/trollshotlol@maeve/Music/MONDO GROSSO/何度でも新しく生まれる/01 TIME.mp3 +/mnt/trollshotlol@maeve/Music/MONDO GROSSO/何度でも新しく生まれる/02 春はトワに目覚める (Ver.2).mp3 +/mnt/trollshotlol@maeve/Music/MONDO GROSSO/何度でも新しく生まれる/03 ラビリンス (Album Mix).mp3 +/mnt/trollshotlol@maeve/Music/MONDO GROSSO/何度でも新しく生まれる/04 迷子のアストゥルナウタ.mp3 +/mnt/trollshotlol@maeve/Music/MONDO GROSSO/何度でも新しく生まれる/05 惑星タントラ.mp3 +/mnt/trollshotlol@maeve/Music/MONDO GROSSO/何度でも新しく生まれる/06 SOLITARY.mp3 +/mnt/trollshotlol@maeve/Music/MONDO GROSSO/何度でも新しく生まれる/07 ERASER.mp3 +/mnt/trollshotlol@maeve/Music/MONDO GROSSO/何度でも新しく生まれる/08 SEE YOU AGAIN.mp3 +/mnt/trollshotlol@maeve/Music/MONDO GROSSO/何度でも新しく生まれる/09 late night blue.mp3 +/mnt/trollshotlol@maeve/Music/MONDO GROSSO/何度でも新しく生まれる/10 GOLD.mp3 +/mnt/trollshotlol@maeve/Music/MONDO GROSSO/何度でも新しく生まれる/11 応答せよ.mp3 +/mnt/trollshotlol@maeve/Music/mus.hiba/White Girl/01 Slow Snow.mp3 +/mnt/trollshotlol@maeve/Music/mus.hiba/White Girl/02 Darkness.mp3 +/mnt/trollshotlol@maeve/Music/mus.hiba/White Girl/03 Ring.mp3 +/mnt/trollshotlol@maeve/Music/mus.hiba/White Girl/04 Magical Fizzy Drink.mp3 +/mnt/trollshotlol@maeve/Music/mus.hiba/White Girl/05 White Flash.mp3 +/mnt/trollshotlol@maeve/Music/mus.hiba/White Girl/06 Maboroshi.mp3 +/mnt/trollshotlol@maeve/Music/mus.hiba/White Girl/07 Doll.mp3 +/mnt/trollshotlol@maeve/Music/mus.hiba/White Girl/08 Moonlight.mp3 +/mnt/trollshotlol@maeve/Music/mus.hiba/White Girl/09 ☃.mp3 +/mnt/trollshotlol@maeve/Music/mus.hiba/White Girl/10 Sofa.mp3 +/mnt/trollshotlol@maeve/Music/mus.hiba/White Girl/11 Hitori.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/01 - A beginning -.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/02 TRAGEDY_ETERNITY.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/03 Paradisus-Paradoxum.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/04 STYX HELIX.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/05 雪を聴く夜.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/06 Tough & Alone.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/07 ANGER_ANGER.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/08 theater D.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/09 JINGO JUNGLE -HBB Remix-.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/10 Crazy Scary Holy Fantasy.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/11 L.L.L_.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/12 sunny garden sunday.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/13 -to the future days.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/eYe's/14 - An Ending -.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/HYDRA/01 HYDRA.flac +/mnt/trollshotlol@maeve/Music/MYTH & ROID/HYDRA/02 Stormy Glory.flac +/mnt/trollshotlol@maeve/Music/MYTH & ROID/HYDRA/03 HYDRA (instrumental).flac +/mnt/trollshotlol@maeve/Music/MYTH & ROID/HYDRA/04 Stormy Glory (instrumental).flac +/mnt/trollshotlol@maeve/Music/MYTH & ROID/VORACITY/01 VORACITY.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/VORACITY/02 Something w_o Sunrise.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/VORACITY/03 VORACITY(instrumental).mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/VORACITY/04 Something w_o Sunrise(instrumental).mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/TIT FOR TAT/01 TIT FOR TAT.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/TIT FOR TAT/02 STYX HELIX -KIHOW Style edition-.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/TIT FOR TAT/03 TIT FOR TAT(instrumental).mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/TIT FOR TAT/04 STYX HELIX -KIHOW Style edition-(instrumental).mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/shadowgraph/01 shadowgraph.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/shadowgraph/02 Remembrance.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/shadowgraph/03 shadowgraph (instrumental).mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/shadowgraph/04 Remembrance (instrumental).mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/PANTA RHEI/01 PANTA RHEI.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/PANTA RHEI/02 Paradisus‐Paradoxum –KIHOW style edition–.mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/PANTA RHEI/03 PANTA RHEI(instrumental).mp3 +/mnt/trollshotlol@maeve/Music/MYTH & ROID/PANTA RHEI/04 Paradisus‐Paradoxum –KIHOW style edition–(instrumental).mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/01 Main Title.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/02 Dignity.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/03 Fit as a Fiddle (and Ready for Love).mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/04 Stunt Montage (extended version).mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/05 First Silent Picture (extended version).mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/06 Tango (Temptation).mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/07 All I Do is Dream of You.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/08 Gene Dreams of Kathy.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/09 All I Do Is Dream of You (outtake).mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/10 Make ’em Laugh.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/11 Beautiful Girl Montage.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/12 Beautiful Girl.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/13 Have Lunch With Me.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/14 The Stage Is Set.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/15 You Were Meant for Me.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/16 You Are My Lucky Star (outtake).mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/17 Moses.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/18 Good Morning.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/19 Good Night, Kathy.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/20 Singin’ in the Rain.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/21 From Dueling to Dancing.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/22 Would You_.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/23 Broadway Melody Ballet (extended version).mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/24 Would You_ End Title.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/25 Singin’ in the Rain (in A‐flat) (extended version).mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/26 Finale.mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/27 Main Title (alternate version).mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/28 Beautiful Girl (alternate version_tempo track).mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/29 Would You_ (unused version).mp3 +/mnt/trollshotlol@maeve/Music/Nacio Herb Brown/Singin’ in the Rain/30 Singin’ in the Rain (radio broadcast).mp3 +/mnt/trollshotlol@maeve/Music/nameless×とあ/212/01 リグレット.mp3 +/mnt/trollshotlol@maeve/Music/nameless×とあ/212/02 パズルガール.mp3 +/mnt/trollshotlol@maeve/Music/nameless×とあ/212/03 てをつないだらさようなら.mp3 +/mnt/trollshotlol@maeve/Music/nameless×とあ/212/04 ツギハギスタッカート.mp3 +/mnt/trollshotlol@maeve/Music/nameless×とあ/212/05 静夢.mp3 +/mnt/trollshotlol@maeve/Music/nameless×とあ/212/06 シクス.mp3 +/mnt/trollshotlol@maeve/Music/nameless×とあ/212/07 M.mp3 +/mnt/trollshotlol@maeve/Music/nameless×とあ/212/08 恋の才能.mp3 +/mnt/trollshotlol@maeve/Music/nameless×とあ/212/09 ミュージックミュージック.mp3 +/mnt/trollshotlol@maeve/Music/nameless×とあ/212/10 ランプ.mp3 +/mnt/trollshotlol@maeve/Music/nameless×とあ/212/11 アイシテ.mp3 +/mnt/trollshotlol@maeve/Music/nameless×とあ/212/12 『13』.mp3 +/mnt/trollshotlol@maeve/Music/Neutral Milk Hotel/In the Aeroplane Over the Sea/01 The King of Carrot Flowers, Pt. One.mp3 +/mnt/trollshotlol@maeve/Music/Neutral Milk Hotel/In the Aeroplane Over the Sea/02 The King of Carrot Flowers, Pts. Two & Three.mp3 +/mnt/trollshotlol@maeve/Music/Neutral Milk Hotel/In the Aeroplane Over the Sea/03 In the Aeroplane Over the Sea.mp3 +/mnt/trollshotlol@maeve/Music/Neutral Milk Hotel/In the Aeroplane Over the Sea/04 Two-Headed Boy.mp3 +/mnt/trollshotlol@maeve/Music/Neutral Milk Hotel/In the Aeroplane Over the Sea/05 The Fool.mp3 +/mnt/trollshotlol@maeve/Music/Neutral Milk Hotel/In the Aeroplane Over the Sea/06 Holland, 1945.mp3 +/mnt/trollshotlol@maeve/Music/Neutral Milk Hotel/In the Aeroplane Over the Sea/07 Communist Daughter.mp3 +/mnt/trollshotlol@maeve/Music/Neutral Milk Hotel/In the Aeroplane Over the Sea/08 Oh Comely.mp3 +/mnt/trollshotlol@maeve/Music/Neutral Milk Hotel/In the Aeroplane Over the Sea/09 Ghost.mp3 +/mnt/trollshotlol@maeve/Music/Neutral Milk Hotel/In the Aeroplane Over the Sea/10 [untitled].mp3 +/mnt/trollshotlol@maeve/Music/Neutral Milk Hotel/In the Aeroplane Over the Sea/11 Two-Headed Boy, Pt. Two.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/01 Catch!.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/02 Usagi Funk.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/03 Home.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/04 Dance_.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/05 Love You.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/06 ShortCake.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/07 Suki_ Suki!.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/08 Koi.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/09 Lovely!.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/10 Patchwork Love.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/11 Destiny.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/12 Keep On.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/13 I Like It.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/14 Love Me Like You Do.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/15 Nighty Night.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/16 Reversible Love.mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/17 Shimasyou! (Do It!).mp3 +/mnt/trollshotlol@maeve/Music/Night Tempo/Fantasy/18 b a e.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/SCHOOL GIRL DISTORTIONAL ADDICT/01 タッチ.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/SCHOOL GIRL DISTORTIONAL ADDICT/02 PIXIE DÜ.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/SCHOOL GIRL DISTORTIONAL ADDICT/03 裸足の季節.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/SCHOOL GIRL DISTORTIONAL ADDICT/04 YOUNG GIRL SEVENTEEN SEXUALLY KNOWING.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/SCHOOL GIRL DISTORTIONAL ADDICT/05 桜のダンス.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/SCHOOL GIRL DISTORTIONAL ADDICT/06 日常に生きる少女.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/SCHOOL GIRL DISTORTIONAL ADDICT/07 狂って候.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/SCHOOL GIRL DISTORTIONAL ADDICT/08 透明少女.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/SCHOOL GIRL DISTORTIONAL ADDICT/09 転校生.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/SCHOOL GIRL DISTORTIONAL ADDICT/10 EIGHT BEATER.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/NUM-HEAVYMETALLIC/01 NUM-HEAVYMETALLIC.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/NUM-HEAVYMETALLIC/02 INUZINI.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/NUM-HEAVYMETALLIC/03 NUM-AMI-DABUTZ.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/NUM-HEAVYMETALLIC/04 Tombo the electric bloodred.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/NUM-HEAVYMETALLIC/05 delayed brain.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/NUM-HEAVYMETALLIC/06 CIBICCOさん.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/NUM-HEAVYMETALLIC/07 MANGA SICK.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/NUM-HEAVYMETALLIC/08 FU・SI・GI.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/NUM-HEAVYMETALLIC/09 性的少女.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/NUM-HEAVYMETALLIC/10 Frustration in my blood.mp3 +/mnt/trollshotlol@maeve/Music/NUMBER GIRL/NUM-HEAVYMETALLIC/11 黒目がちな少女.mp3 +/mnt/trollshotlol@maeve/Music/Ogre You Asshole/OGRE YOU ASSHOLE/01 また明日.mp3 +/mnt/trollshotlol@maeve/Music/Ogre You Asshole/OGRE YOU ASSHOLE/02 ユーレイ.mp3 +/mnt/trollshotlol@maeve/Music/Ogre You Asshole/OGRE YOU ASSHOLE/03 タニシ.mp3 +/mnt/trollshotlol@maeve/Music/Ogre You Asshole/OGRE YOU ASSHOLE/04 カイセントウ.mp3 +/mnt/trollshotlol@maeve/Music/Ogre You Asshole/OGRE YOU ASSHOLE/05 カポ.mp3 +/mnt/trollshotlol@maeve/Music/Ogre You Asshole/OGRE YOU ASSHOLE/06 どっちかの角.mp3 +/mnt/trollshotlol@maeve/Music/Ogre You Asshole/OGRE YOU ASSHOLE/07 ロボトミー.mp3 +/mnt/trollshotlol@maeve/Music/Ogre You Asshole/OGRE YOU ASSHOLE/08 J.N.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/01 Datsu . Hikage No Onna.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/02 Akimahenka.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/03 S'il vous plait.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/04 Bakuro Book.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/05 What Do You Mean You Have Talk to Me at This Late Date_.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/06 Introduce Me to Your Family.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/07 Love Is Short.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/08 Bad Luck.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/09 Don't Light My Fire.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/10 6 Day Working Week Is a Pain.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/11 Binge Eating Binge Drinking Bulimia.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/12 I'm Tired of Your Repeating Story.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/13 Anata Watashi Daita Ato Yome No Meshi.mp3 +/mnt/trollshotlol@maeve/Music/Otoboke Beaver/Itekoma Hits/14 Ikezu.mp3 +/mnt/trollshotlol@maeve/Music/Otomo Yoshihide’s New Jazz Ensemble/Dreams/01 Preach.mp3 +/mnt/trollshotlol@maeve/Music/Otomo Yoshihide’s New Jazz Ensemble/Dreams/02 Yume.mp3 +/mnt/trollshotlol@maeve/Music/Otomo Yoshihide’s New Jazz Ensemble/Dreams/03 Good Morning.mp3 +/mnt/trollshotlol@maeve/Music/Otomo Yoshihide’s New Jazz Ensemble/Dreams/04 Teinen Pushiganga.mp3 +/mnt/trollshotlol@maeve/Music/Otomo Yoshihide’s New Jazz Ensemble/Dreams/05 Toi Hibiki.mp3 +/mnt/trollshotlol@maeve/Music/Otomo Yoshihide’s New Jazz Ensemble/Dreams/06 Eureka.mp3 +/mnt/trollshotlol@maeve/Music/Otomo Yoshihide’s New Jazz Ensemble/Dreams/07 Hahen Fukei.mp3 +/mnt/trollshotlol@maeve/Music/OxT/UNION/01 UNION.mp3 +/mnt/trollshotlol@maeve/Music/OxT/UNION/02 夢のヒーロー (OxT ver).mp3 +/mnt/trollshotlol@maeve/Music/OxT/UNION/03 UNION (Instrumental).mp3 +/mnt/trollshotlol@maeve/Music/OxT/UNION/04 夢のヒーロー (OxT ver) (Instrumental).mp3 +/mnt/trollshotlol@maeve/Music/Party In Backyard & PewDiePie/Bitch Lasagna/01 Bitch Lasagna.opus +/mnt/trollshotlol@maeve/Music/Paul Hardcastle _ Pigbag/Papa's Got A Brand New Pigbag/01 Papa's Got a Brand New Pigbag.flac +/mnt/trollshotlol@maeve/Music/Paul Hardcastle _ Pigbag/Papa's Got A Brand New Pigbag/02 Papa's Got a Brand New Pigbag.flac +/mnt/trollshotlol@maeve/Music/Perfume/GAME/01 ポリリズム.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/GAME/02 plastic smile.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/GAME/03 GAME.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/GAME/04 Baby cruising Love.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/GAME/05 チョコレイト・ディスコ.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/GAME/06 マカロニ.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/GAME/07 セラミックガール.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/GAME/08 Take me Take me.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/GAME/09 シークレットシークレット.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/GAME/10 Butterfly.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/GAME/11 Twinkle Snow Powdery Snow.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/GAME/12 Puppy love.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/⊿/01 Take Off.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/⊿/02 Love the World.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/⊿/03 Dream Fighter.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/⊿/04 Edge (Triangle-Mix).mp3 +/mnt/trollshotlol@maeve/Music/Perfume/⊿/05 Night Flight.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/⊿/06 Kiss and Music.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/⊿/07 Zero Gravity.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/⊿/08 I Still Love U.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/⊿/09 The Best Thing.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/⊿/10 Speed of Sound.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/⊿/11 One Room Disco.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/⊿/12 Negai (Album-Mix).mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/01 Enter the Sphere.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/02 Spring of Life (Album-mix).mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/03 Magic of Love (Album-mix).mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/04 Clockwork.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/05 1mm.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/06 未来のミュージアム.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/07 Party Maker.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/08 ふりかえるといるよ.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/09 ポイント.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/10 だいじょばない.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/11 Handy Man.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/12 Sleeping Beauty.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/13 Spending all my time (Album-mix).mp3 +/mnt/trollshotlol@maeve/Music/Perfume/LEVEL3/14 Dream Land.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Cling Cling/01 Cling Cling.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Cling Cling/02 Hold Your Hand.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Cling Cling/03 DISPLAY.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Cling Cling/04 いじわるなハロー.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Cling Cling/05 Cling Cling -Original Instrumental-.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Cling Cling/06 Hold Your Hand -Original Instrumental-.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Cling Cling/07 DISPLAY -Original Instrumental-.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Cling Cling/08 いじわるなハロー -Original Instrumental-.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/01 The Opening.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/02 レーザービーム (Album-mix).mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/03 GLITTER (Album-mix).mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/04 ナチュラルに恋して.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/05 MY COLOR.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/06 時の針.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/07 ねぇ.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/08 微かなカオリ.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/09 575.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/10 VOICE.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/11 心のスポーツ.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/12 Have a Stroll.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/13 不自然なガール.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/JPN/14 スパイス.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/01 Navigate.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/02 Cosmic Explorer.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/03 Miracle Worker.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/04 Next Stage with YOU.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/05 STORY.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/06 FLASH (Album-mix).mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/07 Sweet Refrain (Album-mix).mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/08 Baby Face.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/09 TOKIMEKI LIGHTS (Album-mix).mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/10 STAR TRAIN (Album-mix).mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/11 Relax In The City.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/12 Pick Me Up.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/13 Cling Cling (Album-mix).mp3 +/mnt/trollshotlol@maeve/Music/Perfume/COSMIC EXPLORER/14 Hold Your Hand.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Future Pop/01 Start-Up.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Future Pop/02 Future Pop.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Future Pop/03 If you wanna.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Future Pop/04 TOKYO GIRL.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Future Pop/05 FUSION.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Future Pop/06 Tiny Baby.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Future Pop/07 Let Me Know.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Future Pop/08 超来輪.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Future Pop/09 無限未来.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Future Pop/10 宝石の雨.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Future Pop/11 天空.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/Future Pop/12 Everyday.mp3 +/mnt/trollshotlol@maeve/Music/Perfume/ナナナナナイロ/01 ナナナナナイロ.mp3 +/mnt/trollshotlol@maeve/Music/Pink Neon Tokyo/Single Collection Vol.2/04 September.flac +/mnt/trollshotlol@maeve/Music/PSYQUI feat. Such/ヒステリックナイトガール/01 ヒステリックナイトガール (android52 edit).m4a +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/01 Dream Lantern.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/02 School Road.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/03 Itomori Highschool.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/04 First View of Tokyo.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/05 Café at Last.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/06 Theme of Ms. Okudera.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/07 Unusual Changes of Two.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/08 Zenzenzense (Movie Version).mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/09 Goshintai.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/10 Date.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/11 Autumn Festival.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/12 Evoking Memories.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/13 Visit to Hida.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/14 Disappeared Town.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/15 Library.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/16 The Night Inn.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/17 Again to Goshintai.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/18 Kuchikamizake Trip.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/19 Council of War.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/20 Persuading Mayor.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/21 Theme of Mitsuha.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/22 Unseen Two.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/23 Katawaredoki.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/24 Sparkle (Movie Version).mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/25 Date 2.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/26 Nandemonaiya (Movie Edit).mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/27 Nandemonaiya (Movie Version).mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/01 Theme of _Weathering With You_.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/02 The Taste of Kindness.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/03 First Visit to K&A.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/04 Welcome to Senpikan.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/05 K&A Welcoming Ceremony.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/06 Voice of Wind (movie edit).mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/07 Saving Hina.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/08 Sky Clearing Up.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/09 Sea in the Sky.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/10 Visiting Home.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/11 First Part Time Job as Sunshine Girl.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/12 Celebration (movie edit).mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/13 Fireworks Festival.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/14 Shrine of Weather.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/15 Shiba Ko-En.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/16 Two Confessions.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/17 City Crisis.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/18 Snow in Midsummer.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/19 Power of the Weather.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/20 Time With Family.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/21 Hina, Fading Away.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/22 Eternity Above Clouds.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/23 Clear Sky and Loss.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/24 Hodaka Escapes _ Kid's Plot.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/25 Bike Chasing.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/26 Running With Hina.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/27 Is There Still Anything That Love Can Do_ (movie edit).mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/28 Grand Escape (movie edit).mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/29 Rain Again.mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/30 We'll Be Alright (movie edit).mp3 +/mnt/trollshotlol@maeve/Music/RADWIMPS/Weathering With You/31 Is There Still Anything That Love Can Do_.mp3 +/mnt/trollshotlol@maeve/Music/ギガP/No title−/01 -Opening-.mp3 +/mnt/trollshotlol@maeve/Music/ギガP/No title−/02 ヒビカゼ.mp3 +/mnt/trollshotlol@maeve/Music/ギガP/No title−/03 オオエドランヴ.mp3 +/mnt/trollshotlol@maeve/Music/ギガP/No title−/04 drop pop candy.mp3 +/mnt/trollshotlol@maeve/Music/ギガP/No title−/05 -Interlude-.mp3 +/mnt/trollshotlol@maeve/Music/ギガP/No title−/06 No title.mp3 +/mnt/trollshotlol@maeve/Music/ギガP/No title−/07 Echo.mp3 +/mnt/trollshotlol@maeve/Music/ギガP/No title−/08 -BWW SCREAM-.mp3 +/mnt/trollshotlol@maeve/Music/ギガP/No title−/09 アシンメトリー.mp3 +/mnt/trollshotlol@maeve/Music/ギガP/No title−/10 ギガンティックO.T.N -Big Death Edition-.mp3 +/mnt/trollshotlol@maeve/Music/ギガP/No title−/11 -Ending-.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/01 Vip Kid.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/02 Give Me a Break Stop Now.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/03 Yoiyoi Kokon.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/04 Konoyo Loading.._.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/05 Re_.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/06 Lunatic.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/07 Kamisama Ni Nattahi.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/08 Chiruchiru.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/09 -Final Sigma-.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/10 Detarame Kidding.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/11 Summer Horror Party.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/12 404 Not Found.mp3 +/mnt/trollshotlol@maeve/Music/Reol/Sigma/13 Viora.mp3 +/mnt/trollshotlol@maeve/Music/Reol/エンドレスEP/01 ニュータイプトーキョー.mp3 +/mnt/trollshotlol@maeve/Music/Reol/エンドレスEP/02 B12.mp3 +/mnt/trollshotlol@maeve/Music/Reol/エンドレスEP/03 エンドレスライン.mp3 +/mnt/trollshotlol@maeve/Music/Reol/エンドレスEP/04 LUVORATORRRRRY!.mp3 +/mnt/trollshotlol@maeve/Music/Reol/事実上/01 幽居のワルツ.mp3 +/mnt/trollshotlol@maeve/Music/Reol/事実上/02 サイサキ.mp3 +/mnt/trollshotlol@maeve/Music/Reol/事実上/03 激白.mp3 +/mnt/trollshotlol@maeve/Music/Reol/事実上/04 十中八九.mp3 +/mnt/trollshotlol@maeve/Music/Reol/事実上/05 煩悩遊戯.mp3 +/mnt/trollshotlol@maeve/Music/Reol/事実上/06 –MANDARA FACT–.mp3 +/mnt/trollshotlol@maeve/Music/Reol/事実上/07 真空オールドローズ.mp3 +/mnt/trollshotlol@maeve/Music/Reol/事実上/08 ミラージュ.mp3 +/mnt/trollshotlol@maeve/Music/Reol/事実上/09 SAIREN.mp3 +/mnt/trollshotlol@maeve/Music/Reol/事実上/10 秋映.mp3 +/mnt/trollshotlol@maeve/Music/Reol/事実上/11 劣等上等.mp3 +/mnt/trollshotlol@maeve/Music/Reol/金字塔/01 金字塔.mp3 +/mnt/trollshotlol@maeve/Music/Reol/金字塔/02 HYPE MODE.mp3 +/mnt/trollshotlol@maeve/Music/Reol/金字塔/03 ゆーれいずみー.mp3 +/mnt/trollshotlol@maeve/Music/Reol/金字塔/04 -ムーブのための試奏曲 Nr.4-.mp3 +/mnt/trollshotlol@maeve/Music/Reol/金字塔/05 ハーメルン.mp3 +/mnt/trollshotlol@maeve/Music/Reol/金字塔/06 un, deux, trois.mp3 +/mnt/trollshotlol@maeve/Music/Reol/金字塔/07 insider.mp3 +/mnt/trollshotlol@maeve/Music/Reol/金字塔/08 ダリ.mp3 +/mnt/trollshotlol@maeve/Music/Reol/金字塔/09 -ルネの小品 Nr.9-.mp3 +/mnt/trollshotlol@maeve/Music/Reol/金字塔/10 GRIMOIRE.mp3 +/mnt/trollshotlol@maeve/Music/Reol/金字塔/11 1LDK.mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/01 Dynasty.mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/02 XS.mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/03 STFU!.mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/04 Comme des garcons (Like the Boys).mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/05 Akasaka Sad.mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/06 Paradisin’.mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/07 Love Me 4 Me.mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/08 Bad Friend.mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/09 Fuck This World (interlude).mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/10 Who’s Gonna Save U Now_.mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/11 Tokyo Love Hotel.mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/12 Chosen Family.mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/13 Snakeskin.mp3 +/mnt/trollshotlol@maeve/Music/Rina Sawayama/SAWAYAMA/14 Tokyo Takeover.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Scenery/01 It Could Happen To You.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Scenery/02 I Want To Talk About You.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Scenery/03 Early Summer.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Scenery/04 Willow Weep For Me.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Scenery/05 Autumn Leaves.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Scenery/06 Scenery.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Mellow Dream/01 Mellow Dream.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Mellow Dream/02 My Foolish Heart.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Mellow Dream/03 Baron Potato Blues.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Mellow Dream/04 What’s New.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Mellow Dream/05 Horizon.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Mellow Dream/06 My Funny Valentine.mp3 +/mnt/trollshotlol@maeve/Music/福居良/Mellow Dream/07 Early Summer ’06.mp3 +/mnt/trollshotlol@maeve/Music/福居良/My Favorite Tune/01 Voyage.mp3 +/mnt/trollshotlol@maeve/Music/福居良/My Favorite Tune/02 Scenery.mp3 +/mnt/trollshotlol@maeve/Music/福居良/My Favorite Tune/03 Mellow Dream.mp3 +/mnt/trollshotlol@maeve/Music/福居良/My Favorite Tune/04 Nobody Knows The Trouble I've Seen.mp3 +/mnt/trollshotlol@maeve/Music/福居良/My Favorite Tune/05 Nobody's.mp3 +/mnt/trollshotlol@maeve/Music/福居良/My Favorite Tune/06 My Conception.mp3 +/mnt/trollshotlol@maeve/Music/福居良/My Favorite Tune/07 After Hours.mp3 +/mnt/trollshotlol@maeve/Music/福居良/My Favorite Tune/08 Nord.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 2/01 Close to your Mind.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 2/02 darling, would you catch me_.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 2/03 Acoustic Image.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 2/04 アリスのボサノバ.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 2/05 relative relation (it's all about).mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 2/06 Etupirka, Angelica.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 2/07 白玉茶屋in冥土.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 2/08 ナルキッソスにさよなら.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 2/09 タイニーリトル・アジアンタム.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 2/10 Full Moon Samba.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 2/11 なんてことない日.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/Adrastea/01 Cosmic flower.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/Adrastea/02 AURORA.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/Adrastea/03 SUPER MOON.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/Adrastea/04 スイングバイ.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/Adrastea/05 モノクロ・インザナイト.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/Adrastea/06 賢者の極北.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/Adrastea/07 MyonMyonMyonMyonMyonMyonMyonMyon!.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/Adrastea/08 クライム・ストーリーときみのウソ.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 5/01 町中ドライブ.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 5/02 春のおとずれ.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 5/03 ヴェルニゲローデの車窓から.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 5/04 黄昏は真珠色.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 5/05 Give up on it.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 5/06 marisanha.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 5/07 サグメさま3分クッキング.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 7/01 木漏れ日の書斎から.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 7/02 fluindo.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 7/03 solitary girl.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 7/04 Read Some Romance.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 7/05 おひるやすみの絵宇宙話.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 7/06 ムーンライト・アニマルトレイル.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 7/07 Girls loved by breeze.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 7/08 Black lily Princess.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 8/01 soda pop ice cream.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 8/02 Ghost flight in the sky.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 8/03 流星をくぐって.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 8/04 Love me do.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 8/05 Insane Stoicism.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 8/06 食べ歩き魂.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 8/07 もくもくのくも、隣でいっしょに.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 8/08 querida ilusão.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 8/09 ふわふわどれみー.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 9/01 ハッピー・チキン・ポップ.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 9/02 風花の帳.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 9/03 アスタ・ラ・ビスタ.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 9/04 música noturna.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 9/05 ふじやま、登るけぇの.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 9/06 MUKOU NO BEACH.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 9/07 さかさまバブル.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 9/08 First note.mp3 +/mnt/trollshotlol@maeve/Music/Shibayan Records/TOHO BOSSA NOVA 9/09 sunset chant.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/01 Star Guitar.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/02 Detonator.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/03 Electro411.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/04 Our Song.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/05 Dreamhunt.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/06 Push.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/07 Rendezvous.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/08 The Patch.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/09 Last Days.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/10 State of Permission.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/11 Foals.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/12 The Golden.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/13 Maximum Joy.mp3 +/mnt/trollshotlol@maeve/Music/Shinichi Osawa/The One/14 Ami Nu Ku Tuu (The One version).mp3 +/mnt/trollshotlol@maeve/Music/SILENT SIREN/GIRLS POWER/01 フジヤマディスコ.m4a +/mnt/trollshotlol@maeve/Music/SILENT SIREN/GIRLS POWER/02 merry-go-round.m4a +/mnt/trollshotlol@maeve/Music/SILENT SIREN/GIRLS POWER/03 KNiFE.m4a +/mnt/trollshotlol@maeve/Music/SILENT SIREN/GIRLS POWER/04 Love Balloon.m4a +/mnt/trollshotlol@maeve/Music/SILENT SIREN/GIRLS POWER/05 パパヤパヤパ.m4a +/mnt/trollshotlol@maeve/Music/SILENT SIREN/GIRLS POWER/06 ジャストミート.m4a +/mnt/trollshotlol@maeve/Music/SILENT SIREN/GIRLS POWER/07 AKANE.m4a +/mnt/trollshotlol@maeve/Music/SILENT SIREN/GIRLS POWER/08 フユメグ.m4a +/mnt/trollshotlol@maeve/Music/SILENT SIREN/GIRLS POWER/09 さくら咲く青い春.m4a +/mnt/trollshotlol@maeve/Music/SILENT SIREN/GIRLS POWER/10 Kaleidoscope.m4a +/mnt/trollshotlol@maeve/Music/SILENT SIREN/GIRLS POWER/11 ODOREmotion.m4a +/mnt/trollshotlol@maeve/Music/SILENT SIREN/GIRLS POWER/12 さよなら日比谷.m4a +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs/01 Thinkin' of u_.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs/02 ラ・ム・ネ (ra-mu-ne).mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs/03 Cocoa.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs/04 [snowlight].mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs/05 I'm Curious~_3.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs/06 Look at me ~_3.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs/07 La La La.._.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs/08 ♫.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs/09 aid for your heart.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs/10 It's gonna be alright.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs/11 fuka fuka ofuton.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs 2/01 introduction.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs 2/02 white day.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs 2/03 walking on snow.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs 2/04 fizzy resort.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs 2/05 hot milk.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs 2/06 Cappuccino.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Ordinary Songs 2/07 sweetheart.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Snö/01 Snö (Intro).mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Snö/02 [covered in white].mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Snö/03 [snowdrift].mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Snö/04 [fluttering].mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Snö/05 thaw (interlude).mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Snö/06 [whiteout].mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Snö/07 [waiting for you, waiting for you.].mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Snö/08 雪の降る街で、あなたを待っている。.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Snö/09 Farewell.mp3 +/mnt/trollshotlol@maeve/Music/Snail’s House/Snö/10 see you again (outro).mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/01 MEMAI.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/02 SUMMER GODDESS.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/03 WORLDWIDE.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/04 Crush!.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/05 SABOTAGE.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/06 SCOOP OUT.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/07 SAHARA.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/08 破片.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/09 THE BLACK WIDOW BLUES.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/10 THE WHITE WIDOW.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/11 i-rony.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/12 LAST LONG.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/Pimp of The Year/13 SATSURIKU ニューウェイブ.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/01 Seven (Intro Sound Collage by DJ KENTARO).mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/02 Keizoku.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/03 Papa's Got a Brand New Pigbag.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/04 My Foolish Heart 〜 Crazy in Mind 〜.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/05 Double Trouble.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/06 Pop Korn.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/07 Quartz and Chronometer.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/08 Paraiso.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/09 My Foolish Heart 〜 Crazy on Earth 〜.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/10 Mirror Boy.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/11 Stolen Moments.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/12 After the Party.mp3 +/mnt/trollshotlol@maeve/Music/SOIL&“PIMP”SESSIONS/6/13 殺戮と平和.mp3 +/mnt/trollshotlol@maeve/Music/SOPHIE/Faceshopping/01 Faceshopping.mp3 +/mnt/trollshotlol@maeve/Music/Spazzkid/Promise/02 Truly (feat. Sarah Bonito).flac +/mnt/trollshotlol@maeve/Music/SUPERCAR/HIGHVISION/01 STARLINE.mp3 +/mnt/trollshotlol@maeve/Music/SUPERCAR/HIGHVISION/02 WARNING BELL.mp3 +/mnt/trollshotlol@maeve/Music/SUPERCAR/HIGHVISION/03 STORYWRITER.mp3 +/mnt/trollshotlol@maeve/Music/SUPERCAR/HIGHVISION/04 AOHARU YOUTH.mp3 +/mnt/trollshotlol@maeve/Music/SUPERCAR/HIGHVISION/05 OTOGI NATION.mp3 +/mnt/trollshotlol@maeve/Music/SUPERCAR/HIGHVISION/06 STROBOLIGHTS.mp3 +/mnt/trollshotlol@maeve/Music/SUPERCAR/HIGHVISION/07 I.mp3 +/mnt/trollshotlol@maeve/Music/SUPERCAR/HIGHVISION/08 YUMEGIWA LAST BOY.mp3 +/mnt/trollshotlol@maeve/Music/SUPERCAR/HIGHVISION/09 NIJIIRO DARKNESS.mp3 +/mnt/trollshotlol@maeve/Music/SUPERCAR/HIGHVISION/10 SILENT YARITORI.mp3 +/mnt/trollshotlol@maeve/Music/Tessa Violet/Crush/01 Crush.mp3 +/mnt/trollshotlol@maeve/Music/THE ORAL CIGARETTES/FIXION/01 気づけよBaby.mp3 +/mnt/trollshotlol@maeve/Music/THE ORAL CIGARETTES/FIXION/02 狂乱 Hey Kids!!.mp3 +/mnt/trollshotlol@maeve/Music/THE ORAL CIGARETTES/FIXION/03 MIRROR.mp3 +/mnt/trollshotlol@maeve/Music/THE ORAL CIGARETTES/FIXION/04 STAY ONE.mp3 +/mnt/trollshotlol@maeve/Music/THE ORAL CIGARETTES/FIXION/05 エイミー.mp3 +/mnt/trollshotlol@maeve/Music/THE ORAL CIGARETTES/FIXION/06 マナーモード.mp3 +/mnt/trollshotlol@maeve/Music/THE ORAL CIGARETTES/FIXION/07 通り過ぎた季節の空で.mp3 +/mnt/trollshotlol@maeve/Music/THE ORAL CIGARETTES/FIXION/08 カンタンナコト.mp3 +/mnt/trollshotlol@maeve/Music/THE ORAL CIGARETTES/FIXION/09 A‐E‐U‐I.mp3 +/mnt/trollshotlol@maeve/Music/THE ORAL CIGARETTES/FIXION/10 Everything.mp3 +/mnt/trollshotlol@maeve/Music/TK/unravel/01 unravel.mp3 +/mnt/trollshotlol@maeve/Music/TK/unravel/02 Fu re te Fu re ru.mp3 +/mnt/trollshotlol@maeve/Music/TK/unravel/03 Acoustic Installation.mp3 +/mnt/trollshotlol@maeve/Music/TK/unravel/04 unravel (TV edit).mp3 +/mnt/trollshotlol@maeve/Music/toe/the book about my idle plot on a vague anxiety/01 反逆する風景.mp3 +/mnt/trollshotlol@maeve/Music/toe/the book about my idle plot on a vague anxiety/02 孤独の発明.mp3 +/mnt/trollshotlol@maeve/Music/toe/the book about my idle plot on a vague anxiety/03 tremolo+delay.mp3 +/mnt/trollshotlol@maeve/Music/toe/the book about my idle plot on a vague anxiety/04 向こう岸が視る夢.mp3 +/mnt/trollshotlol@maeve/Music/toe/the book about my idle plot on a vague anxiety/05 all i understand is that i don't understand.mp3 +/mnt/trollshotlol@maeve/Music/toe/the book about my idle plot on a vague anxiety/06 c.mp3 +/mnt/trollshotlol@maeve/Music/toe/the book about my idle plot on a vague anxiety/07 past and language.mp3 +/mnt/trollshotlol@maeve/Music/toe/the book about my idle plot on a vague anxiety/08 music for you.mp3 +/mnt/trollshotlol@maeve/Music/toe/the book about my idle plot on a vague anxiety/09 i do still wrong.mp3 +/mnt/trollshotlol@maeve/Music/toe/the book about my idle plot on a vague anxiety/10 メトロノーム.mp3 +/mnt/trollshotlol@maeve/Music/toe/the book about my idle plot on a vague anxiety/11 everything means nothing.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment/01 a caged persona.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment/09 Burning Rum Tea.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment/03 Fall Coin Sunset.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment/04 In The Shade.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment/05 Labyrinth.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment/07 No More News.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment/08 Parfait Amour.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment/06 tea break.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment/10 Un Fiore Rosso (Take1).mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment/02 voyage Gothic Bold.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment 2/01 Un Fiore Rosa (TakeB1).mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment 2/02 Sparrowtail.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment 2/03 asian samba.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment 2/04 Lucondium.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment 2/05 Color del amor.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment 2/06 Red Eye.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment 2/07 in the room.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment 2/08 Nestikinz.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment 2/09 narciso.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment 2/10 Para la princesa tarde.mp3 +/mnt/trollshotlol@maeve/Music/Toho Jazz Messengers/girls apartment 2/11 三月より西へ.mp3 +/mnt/trollshotlol@maeve/Music/Tomggg/Butter Sugar Cream/01 Butter Sugar Cream.mp3 +/mnt/trollshotlol@maeve/Music/Tomggg/Butter Sugar Cream/02 Chocoholic.mp3 +/mnt/trollshotlol@maeve/Music/Tomggg/Butter Sugar Cream/03 Caramel Popcorn.mp3 +/mnt/trollshotlol@maeve/Music/Tomggg/Butter Sugar Cream/04 Wedding Cake.mp3 +/mnt/trollshotlol@maeve/Music/Tomggg/Butter Sugar Cream/05 Butter Sugar Cream (Maxo Beammix).mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/01 pool side.mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/02 POOL.mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/03 飛べ.mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/04 おもてなし.mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/05 artsick.mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/06 C&C.mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/07 おちゃんせんすぅす.mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/08 初耳.mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/09 99.974℃.mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/10 タラッタラッタ.mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/11 CGPP.mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/12 Swimmer.mp3 +/mnt/trollshotlol@maeve/Music/tricot/T H E/13 おやすみ.mp3 +/mnt/trollshotlol@maeve/Music/tricot/A N D/01 Noradrenaline.mp3 +/mnt/trollshotlol@maeve/Music/tricot/A N D/02 走れ.mp3 +/mnt/trollshotlol@maeve/Music/tricot/A N D/03 E.mp3 +/mnt/trollshotlol@maeve/Music/tricot/A N D/04 色の無い水槽.mp3 +/mnt/trollshotlol@maeve/Music/tricot/A N D/05 神戸ナンバー.mp3 +/mnt/trollshotlol@maeve/Music/tricot/A N D/06 消える.mp3 +/mnt/trollshotlol@maeve/Music/tricot/A N D/07 ぱい~ん A N D ver_.mp3 +/mnt/trollshotlol@maeve/Music/tricot/A N D/08 食卓.mp3 +/mnt/trollshotlol@maeve/Music/tricot/A N D/09 庭.mp3 +/mnt/trollshotlol@maeve/Music/tricot/A N D/10 CBG.mp3 +/mnt/trollshotlol@maeve/Music/tricot/A N D/11 QFF.mp3 +/mnt/trollshotlol@maeve/Music/tricot/A N D/12 Break.mp3 +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/01 混ぜるな危険.m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/02 右脳左脳.m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/03 あふれる.m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/04 みてて.m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/05 秘蜜.m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/06 低速道路.m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/07 順風満帆.m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/08 なか (Album ver.).m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/09 ワンシーズン.m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/10 危なくなく無い街へ.m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/11 真っ白.m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/12 真っ黒.m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/13 ブームに乗って.m4a +/mnt/trollshotlol@maeve/Music/tricot/真っ黒/14 Potage.m4a +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/04 Remember Me.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/01 Space Boy.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/02 No One Sleep in Tokyo.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/03 Be My Babe.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/05 Spark in the Dark.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/06 Don’t Stop the Music.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/07 Dance Around the World.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/08 Get Me Power.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/09 Running in the 90s.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/10 Heartbeat.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/11 Break the Night.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/12 Back on the Rocks.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/13 Save Me.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/14 My Only Star.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/SUPER EUROBEAT presents INITIAL D 〜D SELECTION〜/15 around the world (Dave Rodgers remix).mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/01 Speedy Speed Boys.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/02 Mikado.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/03 Station to Station.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/04 Big in Japan.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/05 Don't You (Forget About My Love).mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/06 I Like You Like You Are.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/07 Take My Soul.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/08 Ever and Ever.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/09 Make Up Your Mind.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/10 Goodbye Yellow Brick Road.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/11 Burning Desire.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/12 100.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/13 Make My Day.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/14 Gimme the Night.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/15 Deja Vu.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/16 Grand Prix.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Second Stage Non-Stop Selection/17 D Vocal Battle Special Mega-Mix.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/mikgazer vol.1/01 嘘と絵画.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/mikgazer vol.1/02 Parachute.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/mikgazer vol.1/03 Alchemy.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/mikgazer vol.1/04 Twilight.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/mikgazer vol.1/05 flash back, 0217.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/mikgazer vol.1/06 ハクジツ.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/mikgazer vol.1/07 submarine.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/mikgazer vol.1/08 choco-mint flavor.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/mikgazer vol.1/09 Reincarnation.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/mikgazer vol.1/10 戸惑いと不協和.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/mikgazer vol.1/11 千年の雨の終わりに.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/mikgazer vol.1/12 ハルカ.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/01 Ddd Initial D (My Car Is Fantasy).mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/02 Gas Gas Gas.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/03 Runaway.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/04 I Want To Feel.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/05 Bye Bye Girl.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/06 On Your Wings.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/07 I Can't Stop Lovin' You.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/08 Full Metal Cars.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/09 When The Sun Goes Down.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/10 Breakin' Out.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/11 Come On Baby.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/12 Eyes Of Sky.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/13 Up & Dance, Up & Go.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/14 Limousine.mp3 +/mnt/trollshotlol@maeve/Music/Compilations/Super Eurobeat Presents Initial D Fifth Stage D Selection/15 Rockin' Hardcore.mp3 +/mnt/trollshotlol@maeve/Music/WhaleDontSleep/ねむるまち (feat. yama)/01 ねむるまち (feat. yama).mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Naughty Boys/01 Kimi ni Mune Kyun (Uwaki na Bakansu).mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Naughty Boys/02 Expected Way.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Naughty Boys/03 Focus.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Naughty Boys/04 Ongaku.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Naughty Boys/05 Opened My Eyes.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Naughty Boys/06 You've Got to Help Yourself.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Naughty Boys/07 Lotus Love.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Naughty Boys/08 Kai-Koh.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Naughty Boys/09 Expecting Rivers.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Naughty Boys/10 Wild Ambitions.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Yellow Magic Orchestra/01 Computer Game _Theme From Circus_.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Yellow Magic Orchestra/02 Firecracker.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Yellow Magic Orchestra/03 Simoon.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Yellow Magic Orchestra/04 Cosmic Surfin'.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Yellow Magic Orchestra/05 Computer Game _Theme From The Invader_.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Yellow Magic Orchestra/06 Tong Poo.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Yellow Magic Orchestra/07 La Femme Chinoise.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Yellow Magic Orchestra/08 Bridge Over Troubled Music.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Yellow Magic Orchestra/09 Mad Pierrot.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Yellow Magic Orchestra/10 Acrobat.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Solid State Survivor/01 Technopolis.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Solid State Survivor/02 Absolute Ego Dance.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Solid State Survivor/03 Rydeen.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Solid State Survivor/04 Castalia.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Solid State Survivor/05 Behind the Mask.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Solid State Survivor/06 Day Tripper.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Solid State Survivor/07 Insomnia.mp3 +/mnt/trollshotlol@maeve/Music/Yellow Magic Orchestra/Solid State Survivor/08 Solid State Survivor.mp3 +/mnt/trollshotlol@maeve/Music/YUC'e/macaron moon/01 Opening Theme.mp3 +/mnt/trollshotlol@maeve/Music/YUC'e/macaron moon/02 macaron moon.mp3 +/mnt/trollshotlol@maeve/Music/YUC'e/macaron moon/03 Night Club Junkie.mp3 +/mnt/trollshotlol@maeve/Music/YUC'e/macaron moon/04 Cappchino.mp3 +/mnt/trollshotlol@maeve/Music/YUC'e/macaron moon/05 Datte.mp3 +/mnt/trollshotlol@maeve/Music/YUC'e/macaron moon/06 Ending Theme.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/01 From HND to GMP.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/02 I FEEL LOVE.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/03 서울여자.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/04 네온.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/05 Yesterday.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/06 발걸음.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/07 안아줘.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/08 좋아하고 있어요.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/09 친구가 필요해.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/10 그늘.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/11 All flights are delayed.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/12 NEON 1989.mp3 +/mnt/trollshotlol@maeve/Music/YUKIKA/서울여자/13 좋아하고 있어요 (Acoustic Ver.).mp3 +/mnt/trollshotlol@maeve/Music/Yunomi feat. nicamoq/ゆのみっくにお茶して EP/06 おとぎ話の日々.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi feat. TORIENA/大江戸コントローラー EP/01 大江戸コントローラー.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi feat. TORIENA/大江戸コントローラー EP/02 惑星ラビット.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi feat. TORIENA/大江戸コントローラー EP/03 バンブーディスコ.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi feat. TORIENA/大江戸コントローラー EP/04 さよならインベーダー.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi feat. TORIENA/大江戸コントローラー EP/05 大江戸コントローラー (TORIENA remix).mp3 +/mnt/trollshotlol@maeve/Music/Yunomi feat. TORIENA/大江戸コントローラー EP/06 惑星ラビット (TORIENA remix).mp3 +/mnt/trollshotlol@maeve/Music/Yunomi feat. TORIENA/大江戸コントローラー EP/07 バンブーディスコ (TORIENA remix).mp3 +/mnt/trollshotlol@maeve/Music/Yunomi feat. TORIENA/大江戸コントローラー EP/08 さよならインベーダー (TORIENA remix).mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/01 めんたいコズミック.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/02 枕元にゴースト.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/03 ロボティックガール.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/04 インドア系ならトラックメイカー.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/05 ゆのみっくにお茶して.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/06 サンデーモーニングコーヒー.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/07 星降る夜のアデニウム.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/08 東京シュノーケル.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/09 守護霊.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/10 ココロフロート.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/11 ダンスフロアの果実.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/12 明けない夜、醒めない夢.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/13 神様の渦.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/14 銀河鉄道のペンギン.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/15 サ・ク・ラ・サ・ク.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/16 夢でまたあえたらなあ.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi/ゆのもきゅ/17 ハッピーライフ.mp3 +/mnt/trollshotlol@maeve/Music/Yunomi feat. 桃箱/ミラクルシュガーランド/01 ミラクルシュガーランド.flac +/mnt/trollshotlol@maeve/Music/Yunomi feat. ローラーガール/ジェリーフィッシュ/01 ジェリーフィッシュ.mp3 +/mnt/trollshotlol@maeve/Music/Zedd/Clarity/01 Hourglass.mp3 +/mnt/trollshotlol@maeve/Music/Zedd/Clarity/02 Shave It Up.mp3 +/mnt/trollshotlol@maeve/Music/Zedd/Clarity/03 Spectrum.mp3 +/mnt/trollshotlol@maeve/Music/Zedd/Clarity/04 Lost at Sea.mp3 +/mnt/trollshotlol@maeve/Music/Zedd/Clarity/05 Clarity.mp3 +/mnt/trollshotlol@maeve/Music/Zedd/Clarity/06 Codec.mp3 +/mnt/trollshotlol@maeve/Music/Zedd/Clarity/07 Stache.mp3 +/mnt/trollshotlol@maeve/Music/Zedd/Clarity/08 Fall Into the Sky.mp3 +/mnt/trollshotlol@maeve/Music/Zedd/Clarity/09 Follow You Down.mp3 +/mnt/trollshotlol@maeve/Music/Zedd/Clarity/10 Epos.mp3 +/mnt/trollshotlol@maeve/Music/Zedd & Alessia Cara/Stay/01 Stay.mp3 +/mnt/trollshotlol@maeve/Music/ZOMBIE-CHANG/ZOMBIE-CHANGE/01 ZOMBIE-CHANGE.mp3 +/mnt/trollshotlol@maeve/Music/ZOMBIE-CHANG/ZOMBIE-CHANGE/02 ARE YOU READY.mp3 +/mnt/trollshotlol@maeve/Music/ZOMBIE-CHANG/ZOMBIE-CHANGE/03 GOODBYE MY LOVE AND TURN AROUND.mp3 +/mnt/trollshotlol@maeve/Music/ZOMBIE-CHANG/ZOMBIE-CHANGE/04 LEMONADE.mp3 +/mnt/trollshotlol@maeve/Music/ZOMBIE-CHANG/ZOMBIE-CHANGE/05 PMS.mp3 +/mnt/trollshotlol@maeve/Music/ZOMBIE-CHANG/ZOMBIE-CHANGE/06 KURIKAESHITEIRU.mp3 +/mnt/trollshotlol@maeve/Music/ZOMBIE-CHANG/ZOMBIE-CHANGE/07 WASURETA.mp3 +/mnt/trollshotlol@maeve/Music/ZOMBIE-CHANG/ZOMBIE-CHANGE/08 SEMETE KANASHII TOKINIWA.mp3 +/mnt/trollshotlol@maeve/Music/ZOMBIE-CHANG/ZOMBIE-CHANGE/09 YOU AND HURTS.mp3 +/mnt/trollshotlol@maeve/Music/ZOMBIE-CHANG/ZOMBIE-CHANGE/10 KOREDE OWARI _.mp3 +/mnt/trollshotlol@maeve/Music/ZOMBIE-CHANG/WE SHOULD KISS - Single/01 WE SHOULD KISS.m4a +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/01 Alone intelligence.mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/02 Arcology On Permafrost.mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/03 [ns].mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/04 Σtealth-Δash.mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/05 FM Synthesis Experiment.mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/06 Together forever, my lovely lovely video game cartridges.mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/07 S.A.T.E.L.L.I.T.E_.mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/08 This Future (we didn't expect).mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/09 Upload Your Mind __ Download My Soul.mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/10 New Era.mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/11 Tojita Sekai.mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/12 Beyond the Geostationary Orbit Level.mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/13 Heart of Android _ Even If It's Only By Mechanism.mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/14 Embracing intelligences.mp3 +/mnt/trollshotlol@maeve/Music/かめりあ/heart of android/15 Bonus Track _ Quaoar (For _Thanks Follower 50k_).mp3 +/mnt/trollshotlol@maeve/Music/キズナアイ/hello, world/01 Hello, Morning.mp3 +/mnt/trollshotlol@maeve/Music/キズナアイ/hello, world/02 future base.mp3 +/mnt/trollshotlol@maeve/Music/キズナアイ/hello, world/03 new world.mp3 +/mnt/trollshotlol@maeve/Music/キズナアイ/hello, world/04 over the reality.mp3 +/mnt/trollshotlol@maeve/Music/キズナアイ/hello, world/05 miracle step.mp3 +/mnt/trollshotlol@maeve/Music/キズナアイ/hello, world/06 Hello, Morning (Pa's Lam System Remix).mp3 +/mnt/trollshotlol@maeve/Music/キズナアイ/hello, world/07 melty world.mp3 +/mnt/trollshotlol@maeve/Music/キズナアイ/hello, world/08 hello, alone.mp3 +/mnt/trollshotlol@maeve/Music/キズナアイ/hello, world/09 meet you.mp3 +/mnt/trollshotlol@maeve/Music/キズナアイ/hello, world/10 mirai.mp3 +/mnt/trollshotlol@maeve/Music/キズナアイ/hello, world/11 AIAIAI.mp3 +/mnt/trollshotlol@maeve/Music/きのこ帝国/eureka/01 夜鷹.mp3 +/mnt/trollshotlol@maeve/Music/きのこ帝国/eureka/02 平行世界.mp3 +/mnt/trollshotlol@maeve/Music/きのこ帝国/eureka/03 春と修羅.mp3 +/mnt/trollshotlol@maeve/Music/きのこ帝国/eureka/04 国道スロープ.mp3 +/mnt/trollshotlol@maeve/Music/きのこ帝国/eureka/05 ユーリカ.mp3 +/mnt/trollshotlol@maeve/Music/きのこ帝国/eureka/06 風化する教室.mp3 +/mnt/trollshotlol@maeve/Music/きのこ帝国/eureka/07 Another Word.mp3 +/mnt/trollshotlol@maeve/Music/きのこ帝国/eureka/08 ミュージシャン.mp3 +/mnt/trollshotlol@maeve/Music/きのこ帝国/eureka/09 明日にはすべてが終わるとして.mp3 +/mnt/trollshotlol@maeve/Music/きゃりーぱみゅぱみゅ/Nanda Collection/01 Nanda Collection.mp3 +/mnt/trollshotlol@maeve/Music/きゃりーぱみゅぱみゅ/Nanda Collection/02 Ninja Re Bang Bang.mp3 +/mnt/trollshotlol@maeve/Music/きゃりーぱみゅぱみゅ/Nanda Collection/03 Kimi ni 100 Percent.mp3 +/mnt/trollshotlol@maeve/Music/きゃりーぱみゅぱみゅ/Nanda Collection/04 Super Scooter Happy.mp3 +/mnt/trollshotlol@maeve/Music/きゃりーぱみゅぱみゅ/Nanda Collection/05 Invader Invader.mp3 +/mnt/trollshotlol@maeve/Music/きゃりーぱみゅぱみゅ/Nanda Collection/06 Me.mp3 +/mnt/trollshotlol@maeve/Music/きゃりーぱみゅぱみゅ/Nanda Collection/07 Fashion Monster.mp3 +/mnt/trollshotlol@maeve/Music/きゃりーぱみゅぱみゅ/Nanda Collection/08 Saigo No Icecream.mp3 +/mnt/trollshotlol@maeve/Music/きゃりーぱみゅぱみゅ/Nanda Collection/09 Noriko To Norio.mp3 +/mnt/trollshotlol@maeve/Music/きゃりーぱみゅぱみゅ/Nanda Collection/10 Furisodeshon.mp3 +/mnt/trollshotlol@maeve/Music/きゃりーぱみゅぱみゅ/Nanda Collection/11 Kura Kura.mp3 +/mnt/trollshotlol@maeve/Music/きゃりーぱみゅぱみゅ/Nanda Collection/12 Otona Na Kodomo.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/01 Tank!.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/02 RUSH.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/03 SPOKEY DOKEY.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/04 BAD DOG NO BISCUITS.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/05 CAT BLUES.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/06 COSMOS.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/07 SPACE LION.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/08 WALTZ for ZIZI.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/09 PIANO BLACK.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/10 POT CITY.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/11 TOO GOOD TOO BAD.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/12 CAR 24.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/13 The EGG and I.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/14 FELT TIP PEN.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/15 RAIN.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/16 DIGGING MY POTATO.mp3 +/mnt/trollshotlol@maeve/Music/シートベルツ/COWBOY BEBOP/17 MEMORY.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/今は今で誓いは笑みで/01 勘冴えて悔しいわ.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/今は今で誓いは笑みで/02 正義.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/今は今で誓いは笑みで/03 またね幻.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/今は今で誓いは笑みで/04 マイノリティ脈絡.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/今は今で誓いは笑みで/05 彷徨い酔い温度.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/今は今で誓いは笑みで/06 眩しいDNAだけ.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/01 脳裏上のクラッカー.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/02 勘冴えて悔しいわ.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/03 居眠り遠征隊.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/04 ハゼ馳せる果てるまで.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/05 蹴っ飛ばした毛布.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/06 Dear Mr 「F」.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/07 こんなこと騒動.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/08 眩しいDNAだけ.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/09 ヒューマノイド.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/10 グラスとラムレーズン.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/11 正義.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/12 優しくLAST SMILE.mp3 +/mnt/trollshotlol@maeve/Music/ずっと真夜中でいいのに。/潜潜話/13 秒針を噛む.mp3 +/mnt/trollshotlol@maeve/Music/パスピエ/演出家出演/01 S.S.mp3 +/mnt/trollshotlol@maeve/Music/パスピエ/演出家出演/02 名前のない鳥.mp3 +/mnt/trollshotlol@maeve/Music/パスピエ/演出家出演/03 フィーバー.mp3 +/mnt/trollshotlol@maeve/Music/パスピエ/演出家出演/04 シネマ.mp3 +/mnt/trollshotlol@maeve/Music/パスピエ/演出家出演/05 ON THE AIR.mp3 +/mnt/trollshotlol@maeve/Music/パスピエ/演出家出演/06 くだらないことばかり.mp3 +/mnt/trollshotlol@maeve/Music/パスピエ/演出家出演/07 デ・ジャヴ.mp3 +/mnt/trollshotlol@maeve/Music/パスピエ/演出家出演/08 はいからさん.mp3 +/mnt/trollshotlol@maeve/Music/パスピエ/演出家出演/09 △.mp3 +/mnt/trollshotlol@maeve/Music/パスピエ/演出家出演/10 ワールドエンド.mp3 +/mnt/trollshotlol@maeve/Music/パスピエ/演出家出演/11 カーニバル.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/oddloop/01 オドループ.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/oddloop/02 ディスコプール.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/oddloop/03 幸せっていう怪物.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/oddloop/04 砂利道.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/oddloop/05 もう帰る汽船.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/oddloop/06 うわさのケムリの女の子.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/oddloop/07 人魚のはなし.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/01 オンリーワンダー.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/02 リリリピート.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/03 レプリカパプリカ.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/04 KITAKU BEATS.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/05 サービスナーバス.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/06 スピカの住み処.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/07 バジルの宴.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/08 ナイトステップ.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/09 POOLSIDE DOG.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/10 オドループ.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/11 CYNICALTURE.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/12 ふしだらフラミンゴ.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/13 音楽という名前の服.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/14 オワラセナイト.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム/15 ハローグッバイ.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/01 LIGHT.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/02 かなしいうれしい.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/03 エンドレスメーデー.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/04 対価.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/05 逃避行.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/06 スキライズム.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/07 他所のピラニア.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/08 TOGENKYO.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/09 YELLOW.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/10 CLIMAX NUMBER.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/11 夜にロックを聴いてしまったら.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/12 シンセンス.mp3 +/mnt/trollshotlol@maeve/Music/フレデリック/フレデリズム2/13 飄々とエモーション.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/01 アセテート.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/02 nero.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/03 仮想過去.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/04 覆面調査員.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/05 スカイバストーキョー.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/06 スプロウル.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/07 ローウイッツアーク.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/08 わたしのイエスマン.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/09 砂と硝子.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/10 マージナル.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/11 サパラン.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/12 キュプラ.mp3 +/mnt/trollshotlol@maeve/Music/フレネシ/キュプラ/13 超臨界流体.mp3 +/mnt/trollshotlol@maeve/Music/ポルカドットスティングレイ/新世紀/01 SQUEEZE.mp3 +/mnt/trollshotlol@maeve/Music/ポルカドットスティングレイ/新世紀/02 sp813.mp3 +/mnt/trollshotlol@maeve/Music/ポルカドットスティングレイ/新世紀/03 トゲめくスピカ.mp3 +/mnt/trollshotlol@maeve/Music/ポルカドットスティングレイ/新世紀/04 女神.mp3 +/mnt/trollshotlol@maeve/Music/ポルカドットスティングレイ/JET/01 JET.m4a +/mnt/trollshotlol@maeve/Music/ポルカドットスティングレイ/JET/02 JET (Instrumental).m4a +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/01 ゆめadventureのはじまり (Intro).mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/02 Suki スキ.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/03 Find Me.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/04 Plastic Beatのダンス.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/05 Adventure アドベンチャー.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/06 Cute Girls Doing Cute Things _3.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/07 小さな恋 in my heart.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/08 Originalの情愛ラヴ.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/09 Memories1989.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/10 Sentimental センチメンタル.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/11 Believe 信じる.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/12 SHINYWAVE.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/13 魔法少女ミカヅキちゃん!! 『Magical Girl Mikazuki-chan!!』.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/14 Platinum Groove 白金グルーヴ.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/15 ハートのGROOVE II.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/16 Spla Groove.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/WAVESウェーブス - EP/17 Nyancat Groove.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/星空ROMANTIC/01 I Wanna Be With You.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/星空ROMANTIC/02 都会の女 City Lady.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/星空ROMANTIC/03 Bless you.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/星空ROMANTIC/04 Yumeみさせてよッ!!.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/星空ROMANTIC/05 Be Myself.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/星空ROMANTIC/06 咲きましたBloomin'!!.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/星空ROMANTIC/07 海姫Sea Princess.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/星空ROMANTIC/08 潮風バイパス.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/星空ROMANTIC/09 イタズラキッスKISS.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/星空ROMANTIC/10 Need You.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/星空ROMANTIC/11 キラキラでダンス.mp3 +/mnt/trollshotlol@maeve/Music/ミカヅキBIGWAVE/星空ROMANTIC/12 Tear of Joy.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/ファースト/01 わっしょい。.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/ファースト/02 お猿.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/ファースト/03 ああ嫌.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/ファースト/04 A・N・A.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/ファースト/05 ロマンティック夏モード.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/ファースト/06 POP.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/セカンド/01 ドーピング☆ノイズノイズキッス.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/セカンド/02 うわさのあの子.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/セカンド/03 今日は彼氏がいないから….mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/セカンド/04 声を聞きたいのですが、聞こえないのです.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/セカンド/05 あたしのお歌.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/セカンド/06 獄衣deサンバ.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/セカンド/07 愛のうた.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/セカンド/08 あんたは誰や.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/セカンド/09 都会のにおい。.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/清水/01 愛って悲しいね(宴会バージョン).mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/清水/02 愛って悲しいね.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/清水/03 犬、走る。.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/清水/04 エゾシカ・ダンス!!.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/清水/05 ロマンティック夏モード.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/清水/06 グッバイ.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/あらためまして、はじめまして、ミドリです。/01 スキ.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/あらためまして、はじめまして、ミドリです。/02 ゆきこさん.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/あらためまして、はじめまして、ミドリです。/03 かなしい日々。.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/あらためまして、はじめまして、ミドリです。/04 お猿.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/あらためまして、はじめまして、ミドリです。/05 根性無しあたし、あほぼけかす.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/あらためまして、はじめまして、ミドリです。/06 ちはるの恋.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/あらためまして、はじめまして、ミドリです。/07 ひみつの2人.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/あらためまして、はじめまして、ミドリです。/08 5拍子.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/あらためまして、はじめまして、ミドリです。/09 ハウリング地獄.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/あらためまして、はじめまして、ミドリです。/10 無欲の無力.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/shinsekai/01 鳩.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/shinsekai/02 凡庸VS茫洋.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/shinsekai/03 さよなら、パーフェクトワールド。.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/shinsekai/04 メカ.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/shinsekai/05 スピードビート.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/shinsekai/06 春メロ.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/shinsekai/07 リズム.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/shinsekai/08 あたし、ギターになっちゃった!!!!!.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/shinsekai/09 鉄塔の上の2人.mp3 +/mnt/trollshotlol@maeve/Music/ミドリ/shinsekai/10 どんぞこ.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/夏草が邪魔をする/01 夏陰、ピアノを弾く.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/夏草が邪魔をする/02 カトレア.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/夏草が邪魔をする/03 言って。.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/夏草が邪魔をする/04 あの夏に咲け.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/夏草が邪魔をする/05 飛行.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/夏草が邪魔をする/06 靴の花火.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/夏草が邪魔をする/07 雲と幽霊.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/負け犬にアンコールはいらない/01 前世.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/負け犬にアンコールはいらない/02 負け犬にアンコールはいらない.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/負け犬にアンコールはいらない/03 爆弾魔.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/負け犬にアンコールはいらない/04 ヒッチコック.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/負け犬にアンコールはいらない/05 落下.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/負け犬にアンコールはいらない/06 準透明少年.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/負け犬にアンコールはいらない/07 ただ君に晴れ.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/負け犬にアンコールはいらない/08 冬眠.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/負け犬にアンコールはいらない/09 夏、バス停、君を待つ.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/01 8_31.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/02 藍二乗.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/03 八月、某、月明かり.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/04 詩書きとコーヒー.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/05 7_13.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/06 踊ろうぜ.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/07 六月は雨上がりの街を書く.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/08 五月は花緑青の窓辺から.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/09 夜紛い.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/10 5_6.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/11 パレード.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/12 エルマ.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/13 4_10.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/だから僕は音楽を辞めた/14 だから僕は音楽を辞めた.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/01 車窓.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/02 憂一乗.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/03 夕凪、某、花惑い.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/04 雨とカプチーノ.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/05 湖の街.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/06 神様のダンス.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/07 雨晴るる.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/08 歩く.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/09 心に穴が空いた.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/10 森の教会.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/11 声.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/12 エイミー.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/13 海底、月明かり.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/エルマ/14 ノーチラス.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/花に亡霊/01 花に亡霊.m4a +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/01 音楽泥棒の自白.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/02 昼鳶.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/03 春ひさぎ.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/04 爆弾魔.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/05 青年期、空き巣.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/06 レプリカント.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/07 花人局.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/08 朱夏期、音楽泥棒.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/09 盗作.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/10 思想犯.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/11 逃亡.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/12 幼年期、思い出の中.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/13 夜行.mp3 +/mnt/trollshotlol@maeve/Music/ヨルシカ/盗作/14 花に亡霊.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/22 Tobiuo.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/01 あなたは煙草 私はシャボン.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/02 PART-TIME ROBOT.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/03 青い瞬きの途中で.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/04 202 (New Mix).mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/05 私の好きなもの (New Mix).mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/06 月の光り方.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/07 水星.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/08 わたしのうた.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/09 魚の目シンパシー.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/10 ベッドルームの夢 (New Recording).mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/11 天国はまだ遠い.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/12 僕らなら.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/13 LOVE□でしょ_ (Pro.by 無敵DEAD SNAKE).mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/14 Song 4 U.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/15 First Regrets.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/16 Another Sunny Daze.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/17 最高の夜だぜ.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/18 Divine Hammer.mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/19 私の好きなもの (Yunomi Remix).mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/20 笑い話 (Lovely Club Mix).mp3 +/mnt/trollshotlol@maeve/Music/ラブリーサマーちゃん/LSC/21 あなたは煙草 わたしはシャボン (Herrokkin Remix).mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/17 FLASH BACK.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/18 トキヲ・ファンカ.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/19 magician's operation.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/20 妄想〆Question.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/21 TRUTH〜A Great Detective of Love〜.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/22 おこちゃま戦争.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/01 -nil-.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/02 極彩色.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/03 生命線.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/04 水底游歩道.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/05 ハルシアン.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/06 ロジックエージェント.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/07 -orderly-.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/08 mede_mede.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/09 Syrup.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/10 ラ・タタン.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/11 ミッドナイトストロウラ.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/12 Behind The Night.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/13 ROXY.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/14 約束の蒼.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/15 MONSTER.mp3 +/mnt/trollshotlol@maeve/Music/Reol/極彩色/16 染.mp3 +/mnt/trollshotlol@maeve/Music/三月のパンタシア/ガールズブルー・ハッピーサッド/01 三月がずっと続けばいい.mp3 +/mnt/trollshotlol@maeve/Music/三月のパンタシア/ガールズブルー・ハッピーサッド/02 ピンクレモネード.mp3 +/mnt/trollshotlol@maeve/Music/三月のパンタシア/ガールズブルー・ハッピーサッド/03 風の声を聴きながら.mp3 +/mnt/trollshotlol@maeve/Music/三月のパンタシア/ガールズブルー・ハッピーサッド/04 パステルレイン.mp3 +/mnt/trollshotlol@maeve/Music/三月のパンタシア/ガールズブルー・ハッピーサッド/05 青春なんていらないわ.mp3 +/mnt/trollshotlol@maeve/Music/三月のパンタシア/ガールズブルー・ハッピーサッド/06 ソーダアイス.mp3 +/mnt/trollshotlol@maeve/Music/三月のパンタシア/ガールズブルー・ハッピーサッド/07 ビタースイート.mp3 +/mnt/trollshotlol@maeve/Music/三月のパンタシア/ガールズブルー・ハッピーサッド/08 ラフスケッチ.mp3 +/mnt/trollshotlol@maeve/Music/三月のパンタシア/ガールズブルー・ハッピーサッド/09 ルビコン.mp3 +/mnt/trollshotlol@maeve/Music/三月のパンタシア/ガールズブルー・ハッピーサッド/10 街路、ライトの灯りだけ.mp3 +/mnt/trollshotlol@maeve/Music/三月のパンタシア/ガールズブルー・ハッピーサッド/11 コラージュ.mp3 +/mnt/trollshotlol@maeve/Music/三月のパンタシア/ガールズブルー・ハッピーサッド/12 東京.mp3 +/mnt/trollshotlol@maeve/Music/佐井好子/萬花鏡/01 夜の精.mp3 +/mnt/trollshotlol@maeve/Music/佐井好子/萬花鏡/02 冬の地下道.mp3 +/mnt/trollshotlol@maeve/Music/佐井好子/萬花鏡/03 逢魔ヶ時.mp3 +/mnt/trollshotlol@maeve/Music/佐井好子/萬花鏡/04 恋した人へ.mp3 +/mnt/trollshotlol@maeve/Music/佐井好子/萬花鏡/05 椿は落ちたかや.mp3 +/mnt/trollshotlol@maeve/Music/佐井好子/萬花鏡/06 酔ひどれ芝居.mp3 +/mnt/trollshotlol@maeve/Music/佐井好子/萬花鏡/07 紅い花.mp3 +/mnt/trollshotlol@maeve/Music/佐井好子/萬花鏡/08 二十才になれば.mp3 +/mnt/trollshotlol@maeve/Music/佐井好子/萬花鏡/09 雪女.mp3 +/mnt/trollshotlol@maeve/Music/佐井好子/萬花鏡/10 見果てぬ夢.mp3 +/mnt/trollshotlol@maeve/Music/凛として時雨/Inspiration is DEAD/01 nakano kill you.mp3 +/mnt/trollshotlol@maeve/Music/凛として時雨/Inspiration is DEAD/02 COOL J.mp3 +/mnt/trollshotlol@maeve/Music/凛として時雨/Inspiration is DEAD/03 DISCO FLIGHT.mp3 +/mnt/trollshotlol@maeve/Music/凛として時雨/Inspiration is DEAD/04 knife vacation.mp3 +/mnt/trollshotlol@maeve/Music/凛として時雨/Inspiration is DEAD/05 am3_45.mp3 +/mnt/trollshotlol@maeve/Music/凛として時雨/Inspiration is DEAD/06 赤い誘惑.mp3 +/mnt/trollshotlol@maeve/Music/凛として時雨/Inspiration is DEAD/07 1_fの感触.mp3 +/mnt/trollshotlol@maeve/Music/凛として時雨/Inspiration is DEAD/08 i not crazy am you are.mp3 +/mnt/trollshotlol@maeve/Music/凛として時雨/Inspiration is DEAD/09 夕景の記憶.mp3 +/mnt/trollshotlol@maeve/Music/喜多嶋修/Benzaiten/01 Benzaiten - God of Music & Water.mp3 +/mnt/trollshotlol@maeve/Music/喜多嶋修/Benzaiten/02 Taiyo - The Sun.mp3 +/mnt/trollshotlol@maeve/Music/喜多嶋修/Benzaiten/03 Tengu - A Long-Nosed Goblin.mp3 +/mnt/trollshotlol@maeve/Music/喜多嶋修/Benzaiten/04 Benzaiten (reprise).mp3 +/mnt/trollshotlol@maeve/Music/喜多嶋修/Benzaiten/05 Whoma - Immortality.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/01 ミッドナイト清純異性交遊.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/02 絶対彼女.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/03 Re_ Re_ Love.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/04 非国民的ヒーロー.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/05 マジックミラー.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/06 TOKYO BLACK HOLE.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/07 ドグマ・マグマ.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/08 アナログシンコペーション.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/09 魔法が使えないなら.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/10 きもいかわ.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/11 死神.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/12 流星ヘブン.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/13 音楽を捨てよ、そして音楽へ -シン・ガイアズ ver.-.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/14 ハンドメイドホーム.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/15 絶対絶望絶好.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/16 生kill the time 4 you、、❤.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/17 JUSTadICE.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/18 draw (A) drow.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/19 POSITIVE STRESS.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/20 超新世代カステラスタンダードMAGICマジKISS.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/21 7_77.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/22 ZOC実験室.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/23 焼肉デート.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/24 さっちゃんのセクシーカレー.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/25 少女漫画少年漫画.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/26 勹″ッと_るSUMMER.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/27 ピンクメトセラ.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/28 オリオン座.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/29 LOW hAPPYENDROLL --少女のままで死ぬ--.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/30 PINK -MONDO GROSSO Remix-.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/31 きゅるきゅる.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/32 IDOL SONG.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/33 イミテーションガール.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/34 GIRL'S GIRL.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/35 愛してる.com.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/36 子供じゃないもん17.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/37 みっくしゅじゅーちゅ.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/38 VOID -シン・ガイアズ ver.-.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/39 ノスタルジックJ-pop.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/40 あまい.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/41 君に届くな -kitixxxgaia ver.-.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/42 わたしみ.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/43 呪いは水色.mp3 +/mnt/trollshotlol@maeve/Music/大森靖子/大森靖子/44 絶対彼女.mp3 +/mnt/trollshotlol@maeve/Music/大比良瑞希/TRUE ROMANCE/01 Romance Intro.mp3 +/mnt/trollshotlol@maeve/Music/大比良瑞希/TRUE ROMANCE/02 TIME LIMIT.mp3 +/mnt/trollshotlol@maeve/Music/大比良瑞希/TRUE ROMANCE/03 微熱.mp3 +/mnt/trollshotlol@maeve/Music/大比良瑞希/TRUE ROMANCE/04 Everything Gives Me Chance What I Love It.mp3 +/mnt/trollshotlol@maeve/Music/大比良瑞希/TRUE ROMANCE/05 焚き火.mp3 +/mnt/trollshotlol@maeve/Music/大比良瑞希/TRUE ROMANCE/06 Good Night.mp3 +/mnt/trollshotlol@maeve/Music/大比良瑞希/TRUE ROMANCE/07 帆掛け舟.mp3 +/mnt/trollshotlol@maeve/Music/大比良瑞希/TRUE ROMANCE/08 Sunday Monday.mp3 +/mnt/trollshotlol@maeve/Music/大比良瑞希/TRUE ROMANCE/09 aspiration.mp3 +/mnt/trollshotlol@maeve/Music/大比良瑞希/TRUE ROMANCE/10 ハッピーバースデー.mp3 +/mnt/trollshotlol@maeve/Music/大比良瑞希/TRUE ROMANCE/11 目覚めのラブソング.mp3 +/mnt/trollshotlol@maeve/Music/大比良瑞希/TRUE ROMANCE/12 High-end Veil.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/01 Summer Connection.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/02 くすりをたくさん.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/03 何もいらない.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/04 都会.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/05 からっぽの椅子.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/06 Law Of Nature.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/07 誰のために.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/08 Silent Screamer.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/09 Sargasso Sea.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/10 振子の山羊.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/11 サマー・コネクション.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/12 部屋.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/SUNSHOWER/13 荒涼.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/Mignonne/01 じゃじゃ馬娘.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/Mignonne/02 横顔.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/Mignonne/03 黄昏れ.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/Mignonne/04 空をとべたら.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/Mignonne/05 風のオルガン.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/Mignonne/06 言い出せなくて.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/Mignonne/07 4_00 A.M_.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/Mignonne/08 突然の贈りもの.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/Mignonne/09 海と少年.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/Mignonne/10 あこがれ.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/copine_/01 Les aventures de TINTIN.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/copine_/02 ベジタブル.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/copine_/03 春の嵐.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/copine_/04 Siena.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/copine_/05 Amico, sei felice_.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/copine_/06 OUT OF AFRICA.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/copine_/07 Leave me alone.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/copine_/08 Jaques-Henri Lartigue.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/copine_/09 しあわせな男達へ.mp3 +/mnt/trollshotlol@maeve/Music/大貫妙子/copine_/10 野辺.mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/01 This Is Love.mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/02 Keep Tryin'.mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/03 BLUE.mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/04 日曜の朝.mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/05 Making Love.mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/06 誰かの願いが叶うころ.mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/07 COLORS.mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/08 One Night Magic.mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/09 海路.mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/10 WINGS.mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/11 Be My Last.mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/12 Eclipse (Interlude).mp3 +/mnt/trollshotlol@maeve/Music/宇多田ヒカル/ULTRA BLUE/13 Passion.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/299792458/01 HARDCORE LIFE.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/299792458/02 ままく.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/299792458/03 M@HφU☆少女。。.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/299792458/04 うーちゃん.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/299792458/05 ゆうびんやさん.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/299792458/06 ドローン.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/299792458/07 ユートピア.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/299792458/08 あたしの衝動.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/299792458/09 299792458_TOKYO-U.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/ゲンズブールに愛されて/01 Loved by Gainsbourg_.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/ゲンズブールに愛されて/02 真冬の甲子園.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/ゲンズブールに愛されて/03 ONIGOROSHI.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/ゲンズブールに愛されて/04 replay ATAMI.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/ゲンズブールに愛されて/05 HEAVEN.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/ゲンズブールに愛されて/06 四畳半箪笥ダンス.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/ゲンズブールに愛されて/07 Breeeeeak out!!!!!.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/ゲンズブールに愛されて/08 畳 so good!!!!!.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/ゲンズブールに愛されて/09 LSD.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/ゲンズブールに愛されて/10 ねばーえんでぃんぐすとーり.mp3 +/mnt/trollshotlol@maeve/Music/後藤まりこ/ゲンズブールに愛されて/11 おばけ.mp3 +/mnt/trollshotlol@maeve/Music/新井正人/MASAHITO ARAI +1/01 君は今….mp3 +/mnt/trollshotlol@maeve/Music/新井正人/MASAHITO ARAI +1/02 夢にリザーブ.mp3 +/mnt/trollshotlol@maeve/Music/新井正人/MASAHITO ARAI +1/03 ムーンレディ.mp3 +/mnt/trollshotlol@maeve/Music/新井正人/MASAHITO ARAI +1/04 モーニング・サブウェイ.mp3 +/mnt/trollshotlol@maeve/Music/新井正人/MASAHITO ARAI +1/05 やさしさの中へ.mp3 +/mnt/trollshotlol@maeve/Music/新井正人/MASAHITO ARAI +1/06 ローリング・ハート.mp3 +/mnt/trollshotlol@maeve/Music/新井正人/MASAHITO ARAI +1/07 冬のフォトグラフ.mp3 +/mnt/trollshotlol@maeve/Music/新井正人/MASAHITO ARAI +1/08 ダンス、ダンス、ダンス.mp3 +/mnt/trollshotlol@maeve/Music/新井正人/MASAHITO ARAI +1/09 ラブレア.mp3 +/mnt/trollshotlol@maeve/Music/新井正人/MASAHITO ARAI +1/10 ラブ.mp3 +/mnt/trollshotlol@maeve/Music/新井正人/MASAHITO ARAI +1/11 LOVE(English Version).mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/アトム・ハート・マザー/01 空気人形.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/アトム・ハート・マザー/02 いのちになって.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/アトム・ハート・マザー/03 ぼくは最終兵器.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/アトム・ハート・マザー/04 zzz.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/アトム・ハート・マザー/05 SAYONARA BABY PINK.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/アトム・ハート・マザー/06 TOKYO CALLING.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/アトム・ハート・マザー/07 アンサー・ワルツ・ロマンス.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/01 MAKE MORE NOISE OF YOU.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/02 鳴らして.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/03 アンダーグラウンド.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/04 春と修羅.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/05 zzz.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/06 ロストプラネット.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/07 せかいをとりかえしておくれ.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/08 夜を泳いでた.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/09 zzz.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/10 ナインティーン.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/11 ゆめをみよう.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/12 zzz.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/13 ロックンロールは死なない.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/14 zzz.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/15 夜を泳いでた(Nemu remix).mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/16 アンダーグラウンド(shnkuti remix).mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/17 鳴らして(長谷川白紙 remix).mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/LOVETHEISM/01 ファンファーレ.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/LOVETHEISM/02 愛よりたしかなものなんてない.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/LOVETHEISM/03 Pink Unicorn.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/LOVETHEISM/04 Lovetheism.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/LOVETHEISM/05 海になって.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/LOVETHEISM/06 Riot.mp3 +/mnt/trollshotlol@maeve/Music/春ねむり/LOVETHEISM/07 りんごのうた.mp3 +/mnt/trollshotlol@maeve/Music/杏里/TIMELY!!/01\ CAT'S\ EYE\ \(NEW\ TAKE\).mp3 +/mnt/trollshotlol@maeve/Music/杏里/TIMELY!!/02 WINDY SUMMER.mp3 +/mnt/trollshotlol@maeve/Music/杏里/TIMELY!!/03 STAY BY ME.mp3 +/mnt/trollshotlol@maeve/Music/杏里/TIMELY!!/04 A HOPE FROM SAD STREET.mp3 +/mnt/trollshotlol@maeve/Music/杏里/TIMELY!!/05 YOU ARE NOT ALONE.mp3 +/mnt/trollshotlol@maeve/Music/杏里/TIMELY!!/06 悲しみがとまらない I CAN’T STOP THE LONELINESS.mp3 +/mnt/trollshotlol@maeve/Music/杏里/TIMELY!!/07 SHYNESS BOY.mp3 +/mnt/trollshotlol@maeve/Music/杏里/TIMELY!!/08 LOST LOVE IN THE RAIN.mp3 +/mnt/trollshotlol@maeve/Music/杏里/TIMELY!!/09 DRIVING MY LOVE.mp3 +/mnt/trollshotlol@maeve/Music/杏里/TIMELY!!/10 GOOD‐NIGHT FOR YOU.mp3 +/mnt/trollshotlol@maeve/Music/杏里/TIMELY!!/11 Remember Summer Days.mp3 +/mnt/trollshotlol@maeve/Music/東京ブラススタイル/ブラスタジブリ/01 さんぽ~オープニング・ジングル~.mp3 +/mnt/trollshotlol@maeve/Music/東京ブラススタイル/ブラスタジブリ/02 ハトと少年.mp3 +/mnt/trollshotlol@maeve/Music/東京ブラススタイル/ブラスタジブリ/03 崖の上のポニョ.mp3 +/mnt/trollshotlol@maeve/Music/東京ブラススタイル/ブラスタジブリ/04 風の谷のナウシカ~オープニング~.mp3 +/mnt/trollshotlol@maeve/Music/東京ブラススタイル/ブラスタジブリ/05 さんぽ.mp3 +/mnt/trollshotlol@maeve/Music/東京ブラススタイル/ブラスタジブリ/06 風の丘.mp3 +/mnt/trollshotlol@maeve/Music/東京ブラススタイル/ブラスタジブリ/07 もののけ姫.mp3 +/mnt/trollshotlol@maeve/Music/東京ブラススタイル/ブラスタジブリ/08 いつも何度でも.mp3 +/mnt/trollshotlol@maeve/Music/東京ブラススタイル/ブラスタジブリ/09 人生のメリーゴーランド.mp3 +/mnt/trollshotlol@maeve/Music/東京ブラススタイル/ブラスタジブリ/10 カントリー・ロード(Take Me Home,Country Roads).mp3 +/mnt/trollshotlol@maeve/Music/松下誠/FIRST LIGHT/01 First Light.mp3 +/mnt/trollshotlol@maeve/Music/松下誠/FIRST LIGHT/02 One Hot Love.mp3 +/mnt/trollshotlol@maeve/Music/松下誠/FIRST LIGHT/03 Resort for Blue.mp3 +/mnt/trollshotlol@maeve/Music/松下誠/FIRST LIGHT/04 September Rain.mp3 +/mnt/trollshotlol@maeve/Music/松下誠/FIRST LIGHT/05 Lazy Night.mp3 +/mnt/trollshotlol@maeve/Music/松下誠/FIRST LIGHT/06 This Is All I Have for You.mp3 +/mnt/trollshotlol@maeve/Music/松下誠/FIRST LIGHT/07 I Know….mp3 +/mnt/trollshotlol@maeve/Music/松下誠/FIRST LIGHT/08 Love Was Really Gone.mp3 +/mnt/trollshotlol@maeve/Music/松下誠/FIRST LIGHT/09 Sunset.mp3 +/mnt/trollshotlol@maeve/Music/松下誠/FIRST LIGHT/10 September Rain (Japanese Version).mp3 +/mnt/trollshotlol@maeve/Music/椎名林檎×SOIL&“PIMP”SESSIONS/カリソメ乙女(DEATH JAZZ ver.)/01 カリソメ乙女(DEATH JAZZ ver.).mp3 +/mnt/trollshotlol@maeve/Music/永田茂/海がきこえる/01 ファースト インプレッション.mp3 +/mnt/trollshotlol@maeve/Music/永田茂/海がきこえる/02 海がきこえる.mp3 +/mnt/trollshotlol@maeve/Music/永田茂/海がきこえる/03 シーサイド ストリート.mp3 +/mnt/trollshotlol@maeve/Music/永田茂/海がきこえる/04 少女の想い.mp3 +/mnt/trollshotlol@maeve/Music/永田茂/海がきこえる/05 夜更けにひとり.mp3 +/mnt/trollshotlol@maeve/Music/永田茂/海がきこえる/06 ある晴れた日.mp3 +/mnt/trollshotlol@maeve/Music/永田茂/海がきこえる/07 陽気なよっぱらい.mp3 +/mnt/trollshotlol@maeve/Music/永田茂/海がきこえる/08 風の並木道.mp3 +/mnt/trollshotlol@maeve/Music/永田茂/海がきこえる/09 心が旅立つ時.mp3 +/mnt/trollshotlol@maeve/Music/永田茂/海がきこえる/10 海になれたら(エンディング).mp3 +/mnt/trollshotlol@maeve/Music/沢井美空/カラフル。/01 カラフル。.mp3 +/mnt/trollshotlol@maeve/Music/清水靖晃/案山子/01 睡蓮.mp3 +/mnt/trollshotlol@maeve/Music/清水靖晃/案山子/02 案山子.mp3 +/mnt/trollshotlol@maeve/Music/清水靖晃/案山子/03 このように詠めり(その一).mp3 +/mnt/trollshotlol@maeve/Music/清水靖晃/案山子/04 セミ取りの日.mp3 +/mnt/trollshotlol@maeve/Music/清水靖晃/案山子/05 このように詠めり(その二).mp3 +/mnt/trollshotlol@maeve/Music/清水靖晃/案山子/06 夢では.mp3 +/mnt/trollshotlol@maeve/Music/清水靖晃/案山子/07 海の上から.mp3 +/mnt/trollshotlol@maeve/Music/清水靖晃/案山子/08 美しき天然.mp3 +/mnt/trollshotlol@maeve/Music/相対性理論/ハイファイ新書/01 テレ東.mp3 +/mnt/trollshotlol@maeve/Music/相対性理論/ハイファイ新書/02 地獄先生.mp3 +/mnt/trollshotlol@maeve/Music/相対性理論/ハイファイ新書/03 ふしぎデカルト.mp3 +/mnt/trollshotlol@maeve/Music/相対性理論/ハイファイ新書/04 四角革命.mp3 +/mnt/trollshotlol@maeve/Music/相対性理論/ハイファイ新書/05 品川ナンバー.mp3 +/mnt/trollshotlol@maeve/Music/相対性理論/ハイファイ新書/06 学級崩壊.mp3 +/mnt/trollshotlol@maeve/Music/相対性理論/ハイファイ新書/07 さわやか会社員.mp3 +/mnt/trollshotlol@maeve/Music/相対性理論/ハイファイ新書/08 ルネサンス.mp3 +/mnt/trollshotlol@maeve/Music/相対性理論/ハイファイ新書/09 バーモント・キッス.mp3 +/mnt/trollshotlol@maeve/Music/矢野顕子/JAPANESE GIRL/01 気球にのって.mp3 +/mnt/trollshotlol@maeve/Music/矢野顕子/JAPANESE GIRL/02 クマ.mp3 +/mnt/trollshotlol@maeve/Music/矢野顕子/JAPANESE GIRL/03 電話線.mp3 +/mnt/trollshotlol@maeve/Music/矢野顕子/JAPANESE GIRL/04 津軽ツアー.mp3 +/mnt/trollshotlol@maeve/Music/矢野顕子/JAPANESE GIRL/05 ふなまち唄PartⅡ.mp3 +/mnt/trollshotlol@maeve/Music/矢野顕子/JAPANESE GIRL/06 大いなる椎の木.mp3 +/mnt/trollshotlol@maeve/Music/矢野顕子/JAPANESE GIRL/07 へこりぷたあ.mp3 +/mnt/trollshotlol@maeve/Music/矢野顕子/JAPANESE GIRL/08 風太.mp3 +/mnt/trollshotlol@maeve/Music/矢野顕子/JAPANESE GIRL/09 丘を越えて.mp3 +/mnt/trollshotlol@maeve/Music/矢野顕子/JAPANESE GIRL/10 ふなまち唄PartⅠ.mp3 +/mnt/trollshotlol@maeve/Music/神聖かまってちゃん/つまんね/01 白いたまご.mp3 +/mnt/trollshotlol@maeve/Music/神聖かまってちゃん/つまんね/02 天使じゃ地上じゃちっそく死.mp3 +/mnt/trollshotlol@maeve/Music/神聖かまってちゃん/つまんね/03 美ちなる方へ.mp3 +/mnt/trollshotlol@maeve/Music/神聖かまってちゃん/つまんね/04 芋虫さん.mp3 +/mnt/trollshotlol@maeve/Music/神聖かまってちゃん/つまんね/05 黒いたまご.mp3 +/mnt/trollshotlol@maeve/Music/神聖かまってちゃん/つまんね/06 笛吹き花ちゃん.mp3 +/mnt/trollshotlol@maeve/Music/神聖かまってちゃん/つまんね/07 夜空の虫とどこまでも.mp3 +/mnt/trollshotlol@maeve/Music/神聖かまってちゃん/つまんね/08 通学LOW.mp3 +/mnt/trollshotlol@maeve/Music/神聖かまってちゃん/つまんね/09 いかれたNeet.mp3 +/mnt/trollshotlol@maeve/Music/神聖かまってちゃん/つまんね/10 さわやかな朝.mp3 +/mnt/trollshotlol@maeve/Music/神聖かまってちゃん/つまんね/11 聖天脱力.mp3 +/mnt/trollshotlol@maeve/Music/神聖かまってちゃん/つまんね/12 オーディオトラック.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Love Songs/01 FLY AWAY.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Love Songs/02 さよならの夜明け.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Love Songs/03 磁気嵐.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Love Songs/04 象牙海岸.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Love Songs/05 五線紙.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Love Songs/06 LONELY WIND.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Love Songs/07 恋の終わりに.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Love Songs/08 待っているわ.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Love Songs/09 SEPTEMBER.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Love Songs/10 不思議なピーチパイ.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Love Songs/11 little lullaby.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Variety/01 もう一度.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Variety/02 Plastic Love.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Variety/03 本気でオンリーユー (Let's Get Married).mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Variety/04 One Night Stand.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Variety/05 Broken Heart.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Variety/06 アンフィシアターの夜.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Variety/07 とどかぬ想い.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Variety/08 マージービートで唄わせて.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Variety/09 水とあなたと太陽と.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Variety/10 ふたりはステディ.mp3 +/mnt/trollshotlol@maeve/Music/竹内まりや/Variety/11 シェットランドに頬をうずめて.mp3 +/mnt/trollshotlol@maeve/Music/米津玄師/Flamingo _ TEENAGE RIOT/01 Flamingo.mp3 +/mnt/trollshotlol@maeve/Music/米津玄師/Flamingo _ TEENAGE RIOT/02 TEENAGE RIOT.mp3 +/mnt/trollshotlol@maeve/Music/米津玄師/Flamingo _ TEENAGE RIOT/03 ごめんね.mp3 +/mnt/trollshotlol@maeve/Music/細野晴臣、鈴木茂、山下達郎/Pacific/01 最後の楽園.mp3 +/mnt/trollshotlol@maeve/Music/細野晴臣、鈴木茂、山下達郎/Pacific/02 コーラル・リーフ.mp3 +/mnt/trollshotlol@maeve/Music/細野晴臣、鈴木茂、山下達郎/Pacific/03 ノスタルジア・オブ・アイランド~パート1:バード・ウィンド/パート2:ウォーキング・オン・ザ・ビーチ.mp3 +/mnt/trollshotlol@maeve/Music/細野晴臣、鈴木茂、山下達郎/Pacific/04 スラック・キー・ルンバ.mp3 +/mnt/trollshotlol@maeve/Music/細野晴臣、鈴木茂、山下達郎/Pacific/05 パッション・フラワー.mp3 +/mnt/trollshotlol@maeve/Music/細野晴臣、鈴木茂、山下達郎/Pacific/06 ノアノア.mp3 +/mnt/trollshotlol@maeve/Music/細野晴臣、鈴木茂、山下達郎/Pacific/07 キスカ.mp3 +/mnt/trollshotlol@maeve/Music/細野晴臣、鈴木茂、山下達郎/Pacific/08 コズミック・サーフィン.mp3 +/mnt/trollshotlol@maeve/Music/菊池桃子/ADVENTURE/01 Overture.mp3 +/mnt/trollshotlol@maeve/Music/菊池桃子/ADVENTURE/02 Adventure.mp3 +/mnt/trollshotlol@maeve/Music/菊池桃子/ADVENTURE/03 もう逢えないかもしれない.mp3 +/mnt/trollshotlol@maeve/Music/菊池桃子/ADVENTURE/04 波になりたい.mp3 +/mnt/trollshotlol@maeve/Music/菊池桃子/ADVENTURE/05 Night Cruising.mp3 +/mnt/trollshotlol@maeve/Music/菊池桃子/ADVENTURE/06 雨のRealize.mp3 +/mnt/trollshotlol@maeve/Music/菊池桃子/ADVENTURE/07 赤い稲妻.mp3 +/mnt/trollshotlol@maeve/Music/菊池桃子/ADVENTURE/08 Good Friend.mp3 +/mnt/trollshotlol@maeve/Music/菊池桃子/ADVENTURE/09 Mystical Composer.mp3 +/mnt/trollshotlol@maeve/Music/菊池桃子/ADVENTURE/10 Tomorrow.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/01 日本人.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/02 SKOOL KILL.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/03 あの娘に1ミリでもちょっかいかけたら殺す.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/04 童貞フォーク少年、高円寺にて爆死寸前.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/05 トラッシュ.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/06 なんて悪意に満ちた平和なんだろう.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/07 もしも君が泣くならば.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/08 駆け抜けて性春.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/09 BABY BABY.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/10 漂流教室.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/11 YOU & I VS. THE WORLD.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/12 若者たち.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/13 青春時代.mp3 +/mnt/trollshotlol@maeve/Music/銀杏BOYZ/君と僕の第三次世界大戦的恋愛革命/14 東京.mp3 +/mnt/trollshotlol@maeve/Music/間宮貴子/Love Trip/01 Love Trip.mp3 +/mnt/trollshotlol@maeve/Music/間宮貴子/Love Trip/02 チャイニーズ・レストラン.mp3 +/mnt/trollshotlol@maeve/Music/間宮貴子/Love Trip/03 真夜中のジョーク.mp3 +/mnt/trollshotlol@maeve/Music/間宮貴子/Love Trip/04 哀しみは夜の向こう.mp3 +/mnt/trollshotlol@maeve/Music/間宮貴子/Love Trip/05 All Or Nothing.mp3 +/mnt/trollshotlol@maeve/Music/間宮貴子/Love Trip/06 渚でダンス.mp3 +/mnt/trollshotlol@maeve/Music/間宮貴子/Love Trip/07 One More Night.mp3 +/mnt/trollshotlol@maeve/Music/間宮貴子/Love Trip/08 モーニング・フライト.mp3 +/mnt/trollshotlol@maeve/Music/間宮貴子/Love Trip/09 たそがれは銀箔の.._.mp3 +/mnt/trollshotlol@maeve/Music/間宮貴子/Love Trip/10 What A Broken Heart Can Do.mp3 +/mnt/trollshotlol@maeve/Music/飯島真理/Rosé/01 Blueberry Jam.mp3 +/mnt/trollshotlol@maeve/Music/飯島真理/Rosé/02 まりン.mp3 +/mnt/trollshotlol@maeve/Music/飯島真理/Rosé/03 My Best Friend.mp3 +/mnt/trollshotlol@maeve/Music/飯島真理/Rosé/04 Lovesick.mp3 +/mnt/trollshotlol@maeve/Music/飯島真理/Rosé/05 Secret Time.mp3 +/mnt/trollshotlol@maeve/Music/飯島真理/Rosé/06 きっと言える.mp3 +/mnt/trollshotlol@maeve/Music/飯島真理/Rosé/07 Shine Love.mp3 +/mnt/trollshotlol@maeve/Music/飯島真理/Rosé/08 ガラスのこびん.mp3 +/mnt/trollshotlol@maeve/Music/飯島真理/Rosé/09 ひまわり.mp3 +/mnt/trollshotlol@maeve/Music/飯島真理/Rosé/10 ひみつの扉.mp3 +/mnt/trollshotlol@maeve/Music/飯島真理/Rosé/11 おでこにKiss.mp3 +/mnt/trollshotlol@maeve/Music/高橋洋子 _ Claire/残酷な天使のテーゼ _ FLY ME TO THE MOON/01 残酷な天使のテーゼ.mp3 +/mnt/trollshotlol@maeve/Music/高橋洋子 _ Claire/残酷な天使のテーゼ _ FLY ME TO THE MOON/02 FLY ME TO THE MOON.mp3 diff --git a/cmus/playlists/default b/cmus/playlists/default new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/cmus/playlists/default diff --git a/cmus/queue.pl b/cmus/queue.pl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/cmus/queue.pl diff --git a/cmus/resume b/cmus/resume new file mode 100644 index 0000000..38a37c9 --- /dev/null +++ b/cmus/resume @@ -0,0 +1,7 @@ +status playing +file /mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/01 MAKE MORE NOISE OF YOU.mp3 +position 5 +lib_file /mnt/trollshotlol@maeve/Music/春ねむり/春と修羅/01 MAKE MORE NOISE OF YOU.mp3 +view tree +browser-dir /mnt/trollshotlol@maeve +marked-pl default diff --git a/cmus/search-history b/cmus/search-history new file mode 100644 index 0000000..20576d5 --- /dev/null +++ b/cmus/search-history @@ -0,0 +1,16 @@ +random +stop +jungo +masar +queue +reol +update +myth +dao +playing +hyper +cross +seek +forward +clear +71 diff --git a/compton.conf b/compton.conf new file mode 100644 index 0000000..c42d00f --- /dev/null +++ b/compton.conf @@ -0,0 +1,105 @@ +# Shadow +shadow = false; +no-dnd-shadow = true; +no-dock-shadow = true; +clear-shadow = true; +shadow-radius = 7; +shadow-offset-x = -7; +shadow-offset-y = -7; +shadow-opacity = 0.7; +# shadow-red = 0.0; +# shadow-green = 0.0; +# shadow-blue = 0.0; +shadow-exclude = [ + "! name~=''", + "name = 'Notification'", + "name = 'Plank'", + "name = 'Docky'", + "name = 'Kupfer'", + "name = 'xfce4-notifyd'", + "name *= 'VLC'", + "name *= 'compton'", + "name *= 'Chromium'", + "name *= 'Chrome'", + "name *= 'Firefox'", + "class_g = 'launcher.exe'", + "class_g = 'Conky'", + "class_g = 'Kupfer'", + "class_g = 'Synapse'", + "class_g ?= 'Notify-osd'", + "class_g ?= 'Cairo-dock'", + "class_g ?= 'Xfce4-notifyd'", + "class_g ?= 'Xfce4-power-manager'" +]; +# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners) +shadow-ignore-shaped = false; +# shadow-exclude = "n:e:Notification"; +# shadow-exclude-reg = "x10+0+0"; +# xinerama-shadow-crop = true; + +# Opacity +menu-opacity = 1.0; +# inactive-opacity = 0.8; +# active-opacity = 0.8; +# frame-opacity = 0.7; +inactive-opacity-override = false; +#alpha-step = 0.06; +# inactive-dim = 0.2; +# inactive-dim-fixed = true; +# blur-background = true; +# blur-background-frame = true; +# blur-kern = "3x3box"; +# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; +# blur-background-fixed = true; +blur-background-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'", + "_GTK_FRAME_EXTENTS@:c" +]; +# opacity-rule = [ "80:class_g = 'URxvt'" ]; + +# Fading +fading = true; +fade-delta = 5; +fade-in-step = 0.04; +fade-out-step = 0.04; +no-fading-openclose = false; +# no-fading-destroyed-argb = true; +fade-exclude = [ ]; + +# Other +backend = "glx"; +mark-wmwin-focused = true; +mark-ovredir-focused = true; +# use-ewmh-active-win = true; +detect-rounded-corners = true; +detect-client-opacity = true; +refresh-rate = 0; +vsync = "opengl-swc"; +dbe = false; +#paint-on-overlay = true; +# sw-opti = true; +unredir-if-possible = false; +# unredir-if-possible-delay = 5000; +# unredir-if-possible-exclude = [ ]; +focus-exclude = [ "class_g = 'Cairo-clock'" ]; +detect-transient = true; +detect-client-leader = true; +invert-color-include = [ ]; +# resize-damage = 1; + +# GLX backend +glx-no-stencil = true; +glx-copy-from-front = false; +# glx-use-copysubbuffermesa = true; +# glx-no-rebind-pixmap = true; +glx-swap-method = "1"; +# glx-use-gpushader4 = true; +# xrender-sync = true; +# xrender-sync-fence = true; + +# Window type settings +wintypes: +{ + tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; }; +}; diff --git a/dunst/dunstrc b/dunst/dunstrc new file mode 100644 index 0000000..cfe583a --- /dev/null +++ b/dunst/dunstrc @@ -0,0 +1,92 @@ +[colors] + background = "#1c2734" + foreground = "#d8ffff" + +[global] + ### Display ### + + monitor = 0 + follow = mouse + + geometry = "540x5-10+32" + indicate_hidden = yes + shrink = yes + transparency = 0 + notification_height = 0 + separator_height = 3 + padding = 12 + horizontal_padding = 12 + frame_width = 3 + + frame_color = "#414b4e" + separator_color = auto + sort = yes + idle_threshold = 120 + + ### Text ### + font = go mono 9 + line_height = 0 + + markup = full + + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # %% Literal % + # Markup is allowed + format = "<b>%s </b>\n%b" + alignment = left + show_age_threshold = 60 + word_wrap = yes + ellipsize = middle + ignore_newline = no + stack_duplicates = true + hide_duplicate_count = false + show_indicators = yes + + ### Icons ### + icon_position = left + max_icon_size = 64 + icon_path = .icons/flattrcolor/status/24:.icons/flattrcolor/devices/48:.icons/flattrcolor/apps/scalable:.icons/flattrcolor/actions/scalable + + ### History ### + sticky_history = yes + history_length = 20 + + ### Misc/Advanced ### + dmenu = /usr/bin/rofi -show run -p dunst: + browser = /usr/bin/google-chrome-stable + always_run_script = true + title = Dunst + class = Dunst + startup_notification = false + force_xinerama = false + +[experimental] + per_monitor_dpi = false + +[shortcuts] + close = ctrl+space + close_all = ctrl+shift+space + context = ctrl+shift+period + +[urgency_low] + background = colors.background + foreground = colors.foreground + timeout = 5 + +[urgency_normal] + background = colors.background + foreground = colors.foreground + timeout = 5 + +[urgency_critical] + background = colors.background + foreground = colors.foreground + frame_color = "#6e4156" + timeout = 0 diff --git a/dunst/dunstrc.bak b/dunst/dunstrc.bak new file mode 100644 index 0000000..0bd6f40 --- /dev/null +++ b/dunst/dunstrc.bak @@ -0,0 +1,92 @@ +[colors] + background = "#2b2b1e" + foreground = "#fffff7" + +[global] + ### Display ### + + monitor = 0 + follow = mouse + + geometry = "540x5-10+32" + indicate_hidden = yes + shrink = yes + transparency = 0 + notification_height = 0 + separator_height = 3 + padding = 12 + horizontal_padding = 12 + frame_width = 3 + + frame_color = "#814e39" + separator_color = auto + sort = yes + idle_threshold = 120 + + ### Text ### + font = go mono 9 + line_height = 0 + + markup = full + + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # %% Literal % + # Markup is allowed + format = "<b>%s </b>\n%b" + alignment = left + show_age_threshold = 60 + word_wrap = yes + ellipsize = middle + ignore_newline = no + stack_duplicates = true + hide_duplicate_count = false + show_indicators = yes + + ### Icons ### + icon_position = left + max_icon_size = 64 + icon_path = .icons/flattrcolor/status/24:.icons/flattrcolor/devices/48:.icons/flattrcolor/apps/scalable:.icons/flattrcolor/actions/scalable + + ### History ### + sticky_history = yes + history_length = 20 + + ### Misc/Advanced ### + dmenu = /usr/bin/rofi -show run -p dunst: + browser = /usr/bin/google-chrome-stable + always_run_script = true + title = Dunst + class = Dunst + startup_notification = false + force_xinerama = false + +[experimental] + per_monitor_dpi = false + +[shortcuts] + close = ctrl+space + close_all = ctrl+shift+space + context = ctrl+shift+period + +[urgency_low] + background = colors.background + foreground = colors.foreground + timeout = 10 + +[urgency_normal] + background = colors.background + foreground = colors.foreground + timeout = 10 + +[urgency_critical] + background = colors.background + foreground = colors.foreground + frame_color = "#4c596a" + timeout = 0 diff --git a/fontconfig/fonts.conf b/fontconfig/fonts.conf new file mode 100644 index 0000000..40425ba --- /dev/null +++ b/fontconfig/fonts.conf @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> +<fontconfig> + <match target="font"> + <edit name="antialias" mode="assign"> + <bool>true</bool> + </edit> + <edit name="hinting" mode="assign"> + <bool>true</bool> + </edit> + <edit name="hintstyle" mode="assign"> + <const>hintmedium</const> + </edit> + <edit name="rgba" mode="assign"> + <const>rgb</const> + </edit> + <edit name="autohint" mode="assign"> + <bool>false</bool> + </edit> + <edit name="lcdfilter" mode="assign"> + <const>lcdlight</const> + </edit> + <edit name="dpi" mode="assign"> + <double>102</double> + </edit> + </match> + <match> + <edit mode="prepend" name="family"><string>Noto Sans Display</string></edit> + </match> + <match target="pattern"> + <test qual="any" name="family"><string>serif</string></test> + <edit name="family" mode="assign" binding="same"><string>Noto Serif</string></edit> + </match> + <match target="pattern"> + <test qual="any" name="family"><string>sans-serif</string></test> + <edit name="family" mode="assign" binding="same"><string>Noto Sans</string></edit> + </match> + <match target="pattern"> + <test qual="any" name="family"><string>monospace</string></test> + <edit name="family" mode="assign" binding="same"><string>Jetbrains Mono</string></edit> + </match> +</fontconfig> diff --git a/herbstluftwm/autostart b/herbstluftwm/autostart new file mode 100755 index 0000000..ead28c3 --- /dev/null +++ b/herbstluftwm/autostart @@ -0,0 +1,198 @@ +#!/usr/bin/env bash + +# this is a simple config for herbstluftwm + +hc() { + herbstclient "$@" +} + +hc emit_hook reload + +xsetroot -solid '#5A8E3A' +mumble-overlay picom & +dunst & +$HOME/.config/herbstluftwm/scripts/lasttag.sh & + +# remove all existing keybindings +hc keyunbind --all + +# keybindings +# if you have a super key you will be much happier with Mod set to Mod4 +#Mod=Mod1 # Use alt as the main modifier +Mod=Mod4 # Use the super key as the main modifier + +hc keybind $Mod-Shift-e quit +hc keybind $Mod-Shift-r reload +hc keybind $Mod-Shift-q close_and_remove +#hc keybind $Mod-Return spawn "${TERMINAL:-xterm}" # use your $TERMINAL with xterm as fallback + +# basic movement in tiling and floating mode +# focusing clients +hc keybind $Mod-Left focus left +hc keybind $Mod-Down focus down +hc keybind $Mod-Up focus up +hc keybind $Mod-Right focus right +hc keybind $Mod-h focus left +hc keybind $Mod-j focus down +hc keybind $Mod-k focus up +hc keybind $Mod-l focus right + +# moving clients in tiling and floating mode +hc keybind $Mod-Shift-Left shift left +hc keybind $Mod-Shift-Down shift down +hc keybind $Mod-Shift-Up shift up +hc keybind $Mod-Shift-Right shift right +hc keybind $Mod-Shift-h shift left +hc keybind $Mod-Shift-j shift down +hc keybind $Mod-Shift-k shift up +hc keybind $Mod-Shift-l shift right + +# splitting frames +# create an empty frame at the specified direction +hc keybind $Mod-u split bottom 0.5 +hc keybind $Mod-o split right 0.5 +# let the current frame explode into subframes +hc keybind $Mod-Control-space split explode + +# resizing frames and floating clients +resizestep=0.02 +hc keybind $Mod-Control-h resize left +$resizestep +hc keybind $Mod-Control-j resize down +$resizestep +hc keybind $Mod-Control-k resize up +$resizestep +hc keybind $Mod-Control-l resize right +$resizestep +hc keybind $Mod-Control-Left resize left +$resizestep +hc keybind $Mod-Control-Down resize down +$resizestep +hc keybind $Mod-Control-Up resize up +$resizestep +hc keybind $Mod-Control-Right resize right +$resizestep + +# tags +tag_names=( {1..9} ) +tag_keys=( {1..9} 0 ) + +hc rename default "${tag_names[0]}" || true +for i in "${!tag_names[@]}" ; do + hc add "${tag_names[$i]}" + key="${tag_keys[$i]}" + if ! [ -z "$key" ] ; then + hc keybind "$Mod-$key" use_index "$i" + hc keybind "$Mod-Shift-$key" move_index "$i" + fi +done + +# cycle through tags +hc keybind $Mod-Tab use_index +1 --skip-visible +hc keybind $Mod-Shift-Tab use_index -1 --skip-visible +hc keybind $Mod-q emit_hook goto_last_tag + +# layouting +#hc keybind $Mod-c remove +hc keybind $Mod-s floating toggle +hc keybind $Mod-f fullscreen toggle +hc keybind $Mod-Shift-f set_attr clients.focus.floating toggle +hc keybind $Mod-t pseudotile toggle +# The following cycles through the available layouts within a frame, but skips +# layouts, if the layout change wouldn't affect the actual window positions. +# I.e. if there are two windows within a frame, the grid layout is skipped. +hc keybind $Mod-space \ + or , and . compare tags.focus.curframe_wcount = 2 \ + . cycle_layout +1 vertical horizontal max vertical grid \ + , cycle_layout +1 + +# mouse +hc mouseunbind --all +hc mousebind $Mod-Button1 move +hc mousebind $Mod-Button2 zoom +hc mousebind $Mod-Button3 resize + +# focus +#hc keybind $Mod-BackSpace cycle_monitor +#hc keybind $Mod-Tab cycle_all +1 +#hc keybind $Mod-Shift-Tab cycle_all -1 +#hc keybind $Mod-c cycle +#hc keybind $Mod-i jumpto urgent + +# theme +hc attr theme.tiling.reset 1 +hc attr theme.floating.reset 1 +hc set frame_border_active_color '#2a84d2' +hc set frame_border_normal_color '#44475a' +hc set frame_bg_normal_color '#6272a4' +hc set frame_bg_active_color '#6272a4' +hc set frame_border_width 3 +hc set always_show_frame 0 +hc set frame_bg_transparent 1 +hc set frame_transparent_width 0 +hc set frame_gap 5 + +hc attr theme.active.color '#2a84d2' +hc attr theme.normal.color '#44475a' +hc attr theme.urgent.color orange +hc attr theme.inner_width 0 +hc attr theme.inner_color black +hc attr theme.border_width 0 +hc attr theme.floating.border_width 0 +hc attr theme.floating.outer_width 0 +hc attr theme.floating.outer_color black +#hc attr theme.active.inner_color '#414b4e' +#hc attr theme.active.outer_color '#414b4e' +hc attr theme.background_color '#141414' + +hc set window_gap 0 +hc set frame_padding 0 +hc set smart_window_surroundings off +hc set smart_frame_surroundings on +hc set mouse_recenter_gap 0 +hc set focus_follows_mouse 1 + +# rules +hc unrule -F +#hc rule class=XTerm tag=3 # move all xterms to tag 3 +hc rule focus=on # normally focus new clients +#hc rule focus=off # normally do not focus new clients +# give focus to most common terminals +#hc rule class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole)' focus=on +hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' floating=on +hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on +hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off + +# assign to tag rules +hc rule class="qutebrowser" tag=1 +hc rule class="unimatrix" fullscreen=on +hc rule class="Pale moon" tag=1 +hc rule class="qutebrowser" tag=1 +hc rule class="firefox" tag=1 +hc rule class="LibreWolf" tag=1 +hc rule class="Brave-browser" tag=1 +hc rule class="IceCat" tag=1 +hc rule class="Chromium" tag=1 +hc rule class="Spotify" tag=2 +hc rule class="Rhythmbox" tag=2 +hc rule class="Lutris" tag=4 +hc rule class="Mumble" tag=4 +hc rule class="Riot" tag=5 +hc rule class="discord" tag=5 +hc rule class="Ripcord" tag=5 +hc rule class="Thunderbird" tag=6 +hc rule class="keepassx2" tag=7 +hc rule class="keepassxc" tag=7 +hc rule class="Transmission-gtk" tag=8 +hc rule class="Steam" tag=8 +hc rule class="Thunar" tag=9 + +hc set tree_style '╾│ ├└╼─┐' + +# unlock, just to be sure +hc unlock + +# do multi monitor setup here, e.g.: +# hc set_monitors 1280x1024+0+0 1280x1024+1280+0 +# or simply: +# hc detect_monitors + +# find the panel +panel=~/.local/bin/launch_polybar +[ -x "$panel" ] || panel=/etc/xdg/herbstluftwm/panel.sh +for monitor in $(hc list_monitors | cut -d: -f1) ; do + # start it on each monitor + "$panel" "$monitor" & +done diff --git a/herbstluftwm/scripts/hide.sh b/herbstluftwm/scripts/hide.sh new file mode 100755 index 0000000..8450f17 --- /dev/null +++ b/herbstluftwm/scripts/hide.sh @@ -0,0 +1,18 @@ +#!/bin/sh +function tag() { + herbstclient list_monitors | grep ‘[FOCUS]’ | cut -d’”’ -f2 +} + +tag=$(tag) +case "$@" in + +1) herbstclient dump “‘$tag” || herbstclient add “‘$tag” + herbstclient move “‘$tag” + ;; + -1) if herbstclient dump “‘$tag”; then + herbstclient chain . lock . use “‘$tag” + winid=$(herbstclient attr clients.focus.winid) + herbstclient chain . use $tag . bring $winid . unlock + fi + ;; + 0|*) herbstclient dump “‘$tag” && herbstclient merge_tag “‘$tag” ;; +esac diff --git a/herbstluftwm/scripts/lasttag.sh b/herbstluftwm/scripts/lasttag.sh new file mode 100755 index 0000000..dd89314 --- /dev/null +++ b/herbstluftwm/scripts/lasttag.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +# usage: start this script in anywhere your autostart (but *after* the +# emit_hook reload line) + +# to switch to the last tag, call: herbstclient emit_hook goto_last_tag +# or bind it: herbstclient keybind Mod1-Escape emit_hook goto_last_tag + +hc() { "${herbstclient_command[@]:-herbstclient}" "$@" ;} +hc --idle '(tag_changed|goto_last_tag|reload)' \ + | while read line ; do + IFS=$'\t' read -ra args <<< "$line" + case ${args[0]} in + tag_changed) + lasttag="$tag" + tag=${args[1]} + ;; + goto_last_tag) + [ "$lasttag" ] && hc use "$lasttag" + ;; + reload) + exit + ;; + esac + done diff --git a/htop/htoprc b/htop/htoprc new file mode 100644 index 0000000..1233057 --- /dev/null +++ b/htop/htoprc @@ -0,0 +1,39 @@ +# 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_direction=1 +tree_sort_key=0 +tree_sort_direction=1 +hide_kernel_threads=0 +hide_userland_threads=0 +shadow_other_users=0 +show_thread_names=0 +show_program_path=0 +highlight_base_name=0 +highlight_megabytes=1 +highlight_threads=1 +highlight_changes=0 +highlight_changes_delay_secs=5 +find_comm_in_cmdline=1 +strip_exe_from_cmdline=1 +show_merged_command=0 +tree_view=0 +tree_view_always_by_pid=0 +header_margin=1 +detailed_cpu_time=0 +cpu_count_from_one=1 +show_cpu_usage=1 +show_cpu_frequency=0 +show_cpu_temperature=1 +degree_fahrenheit=0 +update_process_names=0 +account_guest_in_cpu_meter=0 +color_scheme=0 +enable_mouse=1 +delay=15 +left_meters=AllCPUs +left_meter_modes=1 +right_meters=CPU Memory Swap Battery Uptime Tasks +right_meter_modes=1 1 1 1 2 2 +hide_function_bar=0 diff --git a/i3/config b/i3/config new file mode 100644 index 0000000..1eff55d --- /dev/null +++ b/i3/config @@ -0,0 +1,269 @@ +set $mod Mod4 + +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +font pango:Noto Sans 9 + +# Before i3 v4.8, we used to recommend this one as the default: +# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 +# The font above is very space-efficient, that is, it looks good, sharp and +# clear in small sizes. However, its unicode glyph coverage is limited, the old +# X core fonts rendering does not support right-to-left and this being a bitmap +# font, it doesn’t scale on retina/hidpi displays. + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +# bindsym $mod+Return exec urxvtc +# start browser +# bindsym $mod+Mod2+KP_1 exec palemoon +#start file browser +# bindsym $mod+Mod2+KP_9 exec urxvtc -e vifm +# kill focused window +bindsym $mod+Shift+q kill +# start pulsemixer +# bindsym $mod+Mod2+KP_3 exec urxvt -e pulsemixer +# start riot +# bindsym $mod+Mod2+KP_5 exec riot-desktop +# start ncmpcpp +# bindsym $mod+Mod2+KP_2 exec urxvtc -e ncmpcpp +# start lutris +# bindsym $mod+Mod2+KP_4 exec lutris +# start neomutt +# bindsym $mod+Mod2+KP_6 exec urxvtc -e neomutt +# start keepass +# bindsym $mod+Mod2+KP_7 exec keepassx2 +# start steam +# bindsym $mod+Mod2+KP_8 exec steam +# passmenu +# bindsym $mod+Mod2+KP_7 exec passmenu + +# equalizer +# bindsym $mod+p exec pulseaudio-equalizer toggle + +# dmenu network manager +bindsym $mod+n exec networkmanager_dmenu -fn "Noto Sans:style=Regular:size=11" -dim 0.5 -w 650 -x 365 -y 244 -nb "$bg" -nf "$fg" -sb "$fg" -sf "$bg" -p ">>" -l 15 + +# dmenu +bindsym $mod+r exec --no-startup-id dmenu_run -fn "Noto Sans:style=Regular:size=11" -dim 0.5 -w 650 -x 365 -y 244 -nb "$bg" -nf "$fg" -sb "$fg" -sf "$bg" -p ">>" -l 15 + +# rofi +#bindsym $mod+r exec rofi -show run -disable-history + +# screenshot +# bindsym --release Print exec import -window root ~/Pictures/Screenshots/$(date +%F_%H%M%S_%N).png + +# bindsym --release Shift+Print exec import ~/Pictures/Screenshots/$(date +%F_%H%M%S_%N).png + +# htop +# bindsym $mod+Escape exec urxvt -e htop + +# screenkey +# bindsym $mod+grave exec screenkey +# bindsym $mod+Shift+grave exec killall screenkey + +# emojis +# bindsym $mod+c exec dmenu-emoji.sh + +# change focus +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+h move left +bindsym $mod+Shift+j move down +bindsym $mod+Shift+k move up +bindsym $mod+Shift+l move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+b split h + +# split in vertical orientation +bindsym $mod+v split v + +bindsym $mod+q workspace back_and_forth + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +#bindsym $mod+d focus child + +# switch to workspace +bindsym $mod+1 workspace 1:一 +bindsym $mod+2 workspace 2:二 +bindsym $mod+3 workspace 3:三 +bindsym $mod+4 workspace 4:四 +bindsym $mod+5 workspace 5:五 +bindsym $mod+6 workspace 6:六 +bindsym $mod+7 workspace 7:七 +bindsym $mod+8 workspace 8:八 +bindsym $mod+9 workspace 9:九 +bindsym $mod+0 workspace 10:十 +bindsym $mod+Shift+Tab workspace prev +bindsym $mod+Tab workspace next + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace 1:一 +bindsym $mod+Shift+2 move container to workspace 2:二 +bindsym $mod+Shift+3 move container to workspace 3:三 +bindsym $mod+Shift+4 move container to workspace 4:四 +bindsym $mod+Shift+5 move container to workspace 5:五 +bindsym $mod+Shift+6 move container to workspace 6:六 +bindsym $mod+Shift+7 move container to workspace 7:七 +bindsym $mod+Shift+8 move container to workspace 8:八 +bindsym $mod+Shift+9 move container to workspace 9:九 +bindsym $mod+Shift+0 move container to workspace 10:十 + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'Do you want to exit i3?' -b 'Yes, exit i3' 'i3-msg exit'" + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym h resize shrink width 5 px or 5 ppt + bindsym j resize grow height 5 px or 5 ppt + bindsym k resize shrink height 5 px or 5 ppt + bindsym l resize grow width 5 px or 5 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 5 px or 5 ppt + bindsym Down resize grow height 5 px or 5 ppt + bindsym Up resize shrink height 5 px or 5 ppt + bindsym Right resize grow width 5 px or 5 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+d mode "resize" + +# wallpaper +exec_always feh --bg-fill /home/trollshotlol/Pictures/Wallpapers/1544213727893.jpg + +# Color +set_from_resource $fg i3wm.foreground #f0f0f0 +set_from_resource $fg-alt i3wm.color9 #f0f0f0 +set_from_resource $bg i3wm.background #f0f0f0 + +# class border backgr. text indicator child_border +client.focused $bg $bg $fg $bg $fg +client.focused_inactive $bg $bg $fg $bg $fg-alt +client.unfocused $bg $bg $fg $bg $fg-alt +client.urgent $bg $bg $fg $bg $fg-alt +client.placeholder $bg $bg $fg $bg $fg-alt +client.background $bg $bg $fg $bg $fg-alt + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) + +# gaps +gaps inner 5 +gaps outer 0 +smart_gaps on +smart_borders on + +# bindsym $mod+Shift+x exec i3lock --blur 5 + +# increase sound volume +# bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume alsa_output.pci-0000_00_1f.3.analog-stereo +5% + +# bindsym Shift+XF86AudioRaiseVolume exec --no-startup-id playerctl volume 0.02+ + +# decrease sound volume +# bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume alsa_output.pci-0000_00_1f.3.analog-stereo -5% + +# bindsym Shift+XF86AudioLowerVolume exec --no-startup-id playerctl volume 0.02- + +# Next/Previous Song +# bindsym XF86AudioNext exec --no-startup-id playerctl next +# bindsym XF86AudioPrev exec --no-startup-id playerctl previous +# bindsym XF86AudioPause exec --no-startup-id playerctl play-pause + +# mute sound +# bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute alsa_output.pci-0000_00_1f.3.analog-stereo toggle + +# Sreen brightness controls +# bindsym XF86MonBrightnessUp exec light -A 10 # increase screen brightness +# bindsym XF86MonBrightnessDown exec light -U 10 # decrease screen brightness + +# autostart programs +exec urxvtd +exec_always --no-startup-id dunst -lb "$bg" -nb "$bg" -cb "$bg" -lf "$fg" -nf "$fg" -cf "$fg" -frame_width 6 +exec_always mumble-overlay compton +exec palemoon +exec_always --no-startup-id $HOME/.config/polybar/launch.sh +#exec keepassx2 +exec wal -R + +# assign various programs workspaces +assign [class="Chromium"] 1:一 +assign [class="IceCat"] 1:一 +assign [class="Pale moon"] 1:一 +assign [class="Auryo"] 2:二 +assign [title="newsboat"] 2:二 +assign [class="Spotify"] 2:二 +assign [title="pulsemixer"] 3:三 +assign [class="Lutris"] 4:四 +assign [title="irssi"] 4:四 +assign [class="Mumble"] 5:五 +assign [class="discord"] 5:五 +assign [class="Riot"] 5:五 +assign [title="neomutt"] 6:六 +assign [class="Thunderbird"] 6:六 +assign [class="Keepassx2"] 7:七 +assign [class="keepassxc"] 7:七 +assign [class="Transmission-gtk"] 8:八 +assign [class="Steam"] 8:八 +assign [class="Thunar"] 9:九 +assign [title="ranger"] 9:九 +assign [title="vifm"] 9:九 + +# specific program rules +for_window [class="Tor Browser"] floating enable + +bindsym $mod+y border pixel 4 +bindsym $mod+u border none + +focus_follows_mouse yes +new_window pixel 4 +#workspace_auto_back_and_forth yes @@ -0,0 +1 @@ +set editing-mode vi diff --git a/irssi/config b/irssi/config new file mode 100644 index 0000000..0588204 --- /dev/null +++ b/irssi/config @@ -0,0 +1,306 @@ +servers = ( + { address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; }, + { + address = "ssl.efnet.org"; + chatnet = "EFNet"; + port = "9999"; + use_tls = "yes"; + }, + { + address = "irc.esper.net"; + chatnet = "EsperNet"; + port = "6697"; + use_tls = "yes"; + tls_verify = "yes"; + }, + { + address = "chat.freenode.net"; + chatnet = "Freenode"; + port = "6697"; + use_tls = "yes"; + tls_verify = "yes"; + }, + { + address = "irc.gamesurge.net"; + chatnet = "GameSurge"; + port = "6667"; + }, + { + address = "eu.irc6.net"; + chatnet = "IRCnet"; + port = "6667"; + use_tls = "yes"; + }, + { address = "open.ircnet.net"; chatnet = "IRCnet"; port = "6667"; }, + { + address = "irc.ircsource.net"; + chatnet = "IRCSource"; + port = "6667"; + }, + { address = "irc.netfuze.net"; chatnet = "NetFuze"; port = "6667"; }, + { + address = "irc.oftc.net"; + chatnet = "OFTC"; + port = "6697"; + use_tls = "yes"; + tls_verify = "yes"; + }, + { + address = "irc.quakenet.org"; + chatnet = "QuakeNet"; + port = "6667"; + }, + { + address = "irc.rizon.net"; + chatnet = "Rizon"; + port = "6697"; + use_tls = "yes"; + tls_verify = "yes"; + }, + { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; }, + { + address = "irc.undernet.org"; + chatnet = "Undernet"; + port = "6667"; + } +); + +chatnets = { + DALnet = { + type = "IRC"; + max_kicks = "4"; + max_msgs = "20"; + max_whois = "30"; + }; + EFNet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "4"; + max_whois = "1"; + }; + EsperNet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "4"; + max_whois = "1"; + }; + Freenode = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "4"; + max_whois = "1"; + }; + GameSurge = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "1"; + max_whois = "1"; + }; + IRCnet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "1"; + max_whois = "1"; + }; + IRCSource = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "4"; + max_whois = "1"; + }; + NetFuze = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "1"; + max_whois = "1"; + }; + OFTC = { type = "IRC"; max_kicks = "1"; max_msgs = "1"; max_whois = "1"; }; + QuakeNet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "1"; + max_whois = "1"; + }; + Rizon = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "1"; + max_whois = "1"; + }; + SILC = { type = "SILC"; }; + Undernet = { + type = "IRC"; + max_kicks = "1"; + max_msgs = "1"; + max_whois = "1"; + }; +}; + +channels = ( + { name = "#lobby"; chatnet = "EsperNet"; autojoin = "No"; }, + { name = "#freenode"; chatnet = "Freenode"; autojoin = "No"; }, + { name = "#irssi"; chatnet = "Freenode"; autojoin = "No"; }, + { name = "#gamesurge"; chatnet = "GameSurge"; autojoin = "No"; }, + { name = "#irssi"; chatnet = "IRCNet"; autojoin = "No"; }, + { name = "#ircsource"; chatnet = "IRCSource"; autojoin = "No"; }, + { name = "#netfuze"; chatnet = "NetFuze"; autojoin = "No"; }, + { name = "#oftc"; chatnet = "OFTC"; autojoin = "No"; }, + { name = "silc"; chatnet = "SILC"; autojoin = "No"; } +); + +aliases = { + ATAG = "WINDOW SERVER"; + ADDALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL ADD -auto \\$channel->{name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}"; + B = "BAN"; + BACK = "AWAY"; + BANS = "BAN"; + BYE = "QUIT"; + C = "CLEAR"; + CALC = "EXEC - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi"; + CHAT = "DCC CHAT"; + DATE = "TIME"; + DEHIGHLIGHT = "DEHILIGHT"; + DESCRIBE = "ACTION"; + DHL = "DEHILIGHT"; + EXEMPTLIST = "MODE $C +e"; + EXIT = "QUIT"; + GOTO = "SCROLLBACK GOTO"; + HIGHLIGHT = "HILIGHT"; + HL = "HILIGHT"; + HOST = "USERHOST"; + INVITELIST = "MODE $C +I"; + J = "JOIN"; + K = "KICK"; + KB = "KICKBAN"; + KN = "KNOCKOUT"; + LAST = "LASTLOG"; + LEAVE = "PART"; + M = "MSG"; + MUB = "UNBAN *"; + N = "NAMES"; + NMSG = "^MSG"; + P = "PART"; + Q = "QUERY"; + RESET = "SET -default"; + RUN = "SCRIPT LOAD"; + SAY = "MSG *"; + SB = "SCROLLBACK"; + SBAR = "STATUSBAR"; + SIGNOFF = "QUIT"; + SV = "MSG * Irssi $J ($V) - https://irssi.org"; + T = "TOPIC"; + UB = "UNBAN"; + UMODE = "MODE $N"; + UNSET = "SET -clear"; + W = "WHO"; + WC = "WINDOW CLOSE"; + WG = "WINDOW GOTO"; + WJOIN = "JOIN -window"; + WI = "WHOIS"; + WII = "WHOIS $0 $0"; + WL = "WINDOW LIST"; + WN = "WINDOW NEW HIDDEN"; + WQUERY = "QUERY -window"; + WW = "WHOWAS"; +}; + +statusbar = { + + items = { + + barstart = "{sbstart}"; + barend = "{sbend}"; + + topicbarstart = "{topicsbstart}"; + topicbarend = "{topicsbend}"; + + time = "{sb $Z}"; + user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}"; + + window = "{sb $winref:$tag/$itemname{sbmode $M}}"; + window_empty = "{sb $winref{sbservertag $tag}}"; + + prompt = "{prompt $[.15]itemname}"; + prompt_empty = "{prompt $winname}"; + + topic = " $topic"; + topic_empty = " Irssi v$J - https://irssi.org"; + + lag = "{sb Lag: $0-}"; + act = "{sb Act: $0-}"; + more = "-- more --"; + }; + + default = { + + window = { + + disabled = "no"; + type = "window"; + placement = "bottom"; + position = "1"; + visible = "active"; + + items = { + barstart = { priority = "100"; }; + time = { }; + user = { }; + window = { }; + window_empty = { }; + lag = { priority = "-1"; }; + act = { priority = "10"; }; + more = { priority = "-1"; alignment = "right"; }; + barend = { priority = "100"; alignment = "right"; }; + }; + }; + + window_inact = { + + type = "window"; + placement = "bottom"; + position = "1"; + visible = "inactive"; + + items = { + barstart = { priority = "100"; }; + window = { }; + window_empty = { }; + more = { priority = "-1"; alignment = "right"; }; + barend = { priority = "100"; alignment = "right"; }; + }; + }; + + prompt = { + + type = "root"; + placement = "bottom"; + position = "100"; + visible = "always"; + + items = { + prompt = { priority = "-1"; }; + prompt_empty = { priority = "-1"; }; + input = { priority = "10"; }; + }; + }; + + topic = { + + type = "root"; + placement = "top"; + position = "1"; + visible = "always"; + + items = { + topicbarstart = { priority = "100"; }; + topic = { }; + topic_empty = { }; + topicbarend = { priority = "100"; alignment = "right"; }; + }; + }; + }; +}; +settings = { + core = { real_name = "Unknown"; user_name = "train"; nick = "train"; }; + "fe-text" = { actlist_sort = "refnum"; }; +}; diff --git a/jellyfin-mpv-shim/conf.json b/jellyfin-mpv-shim/conf.json new file mode 100644 index 0000000..53a8aa7 --- /dev/null +++ b/jellyfin-mpv-shim/conf.json @@ -0,0 +1,96 @@ +{ + "always_transcode": false, + "audio_output": "hdmi", + "auto_play": true, + "check_updates": true, + "client_uuid": "e7972db2-fd05-4d3a-b037-b6ce4031e8a3", + "connect_retry_mins": 0, + "desktop_fullscreen": false, + "desktop_keep_pos": false, + "desktop_keep_size": true, + "desktop_scale": 1.0, + "direct_paths": false, + "discord_presence": false, + "display_mirroring": true, + "enable_desktop": false, + "enable_gui": true, + "enable_osc": true, + "fullscreen": true, + "idle_cmd": null, + "idle_cmd_delay": 60, + "idle_when_paused": false, + "ignore_ssl_cert": false, + "kb_debug": "~", + "kb_fullscreen": "f", + "kb_kill_shader": "k", + "kb_menu": "c", + "kb_menu_down": "down", + "kb_menu_esc": "esc", + "kb_menu_left": "left", + "kb_menu_ok": "enter", + "kb_menu_right": "right", + "kb_menu_up": "up", + "kb_next": ">", + "kb_pause": "space", + "kb_prev": "<", + "kb_stop": "q", + "kb_unwatched": "u", + "kb_watched": "w", + "lang": null, + "lang_filter": "und,eng,jpn,mis,mul,zxx", + "lang_filter_audio": false, + "lang_filter_sub": false, + "local_kbps": 2147483, + "log_decisions": false, + "media_ended_cmd": null, + "media_key_seek": false, + "media_keys": true, + "menu_mouse": true, + "mpv_ext": true, + "mpv_ext_ipc": null, + "mpv_ext_no_ovr": true, + "mpv_ext_path": "/usr/bin/mpv", + "mpv_ext_start": true, + "mpv_log_level": "info", + "notify_updates": true, + "playback_timeout": 30, + "player_name": "mavis", + "pre_media_cmd": null, + "remote_direct_paths": false, + "remote_kbps": 10000, + "sanitize_output": true, + "screenshot_dir": null, + "screenshot_menu": true, + "seek_down": -60, + "seek_h_exact": false, + "seek_left": -5, + "seek_right": 5, + "seek_up": 60, + "seek_v_exact": false, + "shader_pack_custom": false, + "shader_pack_enable": true, + "shader_pack_profile": null, + "shader_pack_remember": true, + "stop_cmd": null, + "stop_idle": false, + "subtitle_color": "#FFFFFFFF", + "subtitle_position": "bottom", + "subtitle_size": 100, + "svp_enable": true, + "svp_socket": null, + "svp_url": "http://127.0.0.1:9901/", + "sync_attempts": 5, + "sync_max_delay_skip": 300, + "sync_max_delay_speed": 50, + "sync_method_thresh": 2000, + "sync_osd_message": true, + "sync_revert_seek": true, + "sync_speed_attempts": 3, + "sync_speed_time": 1000, + "transcode_h265": false, + "transcode_hi10p": false, + "transcode_to_h265": false, + "transcode_warning": true, + "use_web_seek": false, + "write_logs": false +}
\ No newline at end of file diff --git a/jellyfin-mpv-shim/cred.json b/jellyfin-mpv-shim/cred.json new file mode 100644 index 0000000..fd1302d --- /dev/null +++ b/jellyfin-mpv-shim/cred.json @@ -0,0 +1 @@ +[{"address": "http://192.168.1.12:8096", "Name": "maeve", "Id": "9d84963cf34941e09182c096694bb27b", "DateLastAccessed": "2021-01-01T18:38:39Z", "UserId": null, "AccessToken": null, "Users": [{"Id": "7674ac43312742b989aaa7dcb16c1cfa", "IsSignedInOffline": true}], "uuid": "d81c4475-81d7-49a5-9638-6b78d13b8cf4", "username": "train", "connected": false}, {"address": "http://192.168.1.12:8096", "Name": "maeve", "Id": "9d84963cf34941e09182c096694bb27b", "DateLastAccessed": "2021-01-08T17:02:47Z", "UserId": "7674ac43312742b989aaa7dcb16c1cfa", "AccessToken": "eec7577506dc4fbfb8760e8d307937bd", "Users": [{"Id": "7674ac43312742b989aaa7dcb16c1cfa", "IsSignedInOffline": true}], "uuid": "ecf3d8e4-7a03-4cd9-b617-e66ea76fc1b6", "username": "train", "connected": true}]
\ No newline at end of file diff --git a/jellyfin-mpv-shim/input.conf b/jellyfin-mpv-shim/input.conf new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/jellyfin-mpv-shim/input.conf diff --git a/jellyfin-mpv-shim/mpv.conf b/jellyfin-mpv-shim/mpv.conf new file mode 100644 index 0000000..ca9df5a --- /dev/null +++ b/jellyfin-mpv-shim/mpv.conf @@ -0,0 +1 @@ +force-window=yes diff --git a/keepassxc/keepassxc.ini b/keepassxc/keepassxc.ini new file mode 100644 index 0000000..6b318f9 --- /dev/null +++ b/keepassxc/keepassxc.ini @@ -0,0 +1,18 @@ +[General] +ConfigVersion=1 +HideWindowOnCopy=false +MinimizeOnCopy=true +UpdateCheckMessageShown=true +UseAtomicSaves=false + +[GUI] +ApplicationTheme=dark +CheckForUpdates=false +HideUsernames=false + +[PasswordGenerator] +AdditionalChars= +AdvancedMode=true +ExcludedChars= +Length=25 +SpecialChars=false diff --git a/live-latex-preview/activepid b/live-latex-preview/activepid new file mode 100644 index 0000000..e9e2f50 --- /dev/null +++ b/live-latex-preview/activepid @@ -0,0 +1 @@ +31132
\ No newline at end of file diff --git a/live-latex-preview/lastresult b/live-latex-preview/lastresult new file mode 100644 index 0000000..0f0c913 --- /dev/null +++ b/live-latex-preview/lastresult @@ -0,0 +1 @@ +success
\ No newline at end of file diff --git a/mpd/mpd.conf b/mpd/mpd.conf new file mode 100644 index 0000000..797a2fd --- /dev/null +++ b/mpd/mpd.conf @@ -0,0 +1,274 @@ +# An example configuration file for MPD. +# Read the user manual for documentation: http://www.musicpd.org/doc/user/ + + +# Files and directories ####################################################### +# +# This setting controls the top directory which MPD will search to discover the +# available audio files and add them to the daemon's online database. This +# setting defaults to the XDG directory, otherwise the music directory will be +# be disabled and audio files will only be accepted over ipc socket (using +# file:// protocol) or streaming files over an accepted protocol. +# +music_directory "~/music" +#music_directory "/mnt/Music" +# +# This setting sets the MPD internal playlist directory. The purpose of this +# directory is storage for playlists created by MPD. The server will use +# playlist files not created by the server but only if they are in the MPD +# format. This setting defaults to playlist saving being disabled. +# +playlist_directory "~/.config/mpd/playlists" +# +# This setting sets the location of the MPD database. This file is used to +# load the database at server start up and store the database while the +# server is not up. This setting defaults to disabled which will allow +# MPD to accept files over ipc socket (using file:// protocol) or streaming +# files over an accepted protocol. +# +db_file "~/.config/mpd/database" +# +# These settings are the locations for the daemon log files for the daemon. +# These logs are great for troubleshooting, depending on your log_level +# settings. +# +# The special value "syslog" makes MPD use the local syslog daemon. This +# setting defaults to logging to syslog, otherwise logging is disabled. +# +log_file "~/.config/mpd/log" +# +# This setting sets the location of the file which stores the process ID +# for use of mpd --kill and some init scripts. This setting is disabled by +# default and the pid file will not be stored. +# +pid_file "~/.config/mpd/pid" +# +# This setting sets the location of the file which contains information about +# most variables to get MPD back into the same general shape it was in before +# it was brought down. This setting is disabled by default and the server +# state will be reset on server start up. +# +state_file "~/.config/mpd/state" +# +# The location of the sticker database. This is a database which +# manages dynamic information attached to songs. +# +sticker_file "~/.config/mpd/sticker.sql" +# +############################################################################### + + +# General music daemon options ################################################ +# +# This setting specifies the user that MPD will run as. MPD should never run as +# root and you may use this setting to make MPD change its user ID after +# initialization. This setting is disabled by default and MPD is run as the +# current user. +# +#user "nobody" +# +# This setting specifies the group that MPD will run as. If not specified +# primary group of user specified with "user" setting will be used (if set). +# This is useful if MPD needs to be a member of group such as "audio" to +# have permission to use sound card. +# +#group "nogroup" +# +# This setting sets the address for the daemon to listen on. Careful attention +# should be paid if this is assigned to anything other then the default, any. +# This setting can deny access to control of the daemon. Not effective if +# systemd socket activiation is in use. +# +# For network +#bind_to_address "any" +# +# And for Unix Socket +#bind_to_address "~/.mpd/socket" +# +# This setting is the TCP port that is desired for the daemon to get assigned +# to. +# +port "6600" +# +# This setting controls the type of information which is logged. Available +# setting arguments are "default", "secure" or "verbose". The "verbose" setting +# argument is recommended for troubleshooting, though can quickly stretch +# available resources on limited hardware storage. +# +#log_level "default" +# +# If you have a problem with your MP3s ending abruptly it is recommended that +# you set this argument to "no" to attempt to fix the problem. If this solves +# the problem, it is highly recommended to fix the MP3 files with vbrfix +# (available from <http://www.willwap.co.uk/Programs/vbrfix.php>), at which +# point gapless MP3 playback can be enabled. +# +#gapless_mp3_playback "yes" +# +# Setting "restore_paused" to "yes" puts MPD into pause mode instead +# of starting playback after startup. +# +#restore_paused "no" +# +# This setting enables MPD to create playlists in a format usable by other +# music players. +# +#save_absolute_paths_in_playlists "no" +# +# This setting defines a list of tag types that will be extracted during the +# audio file discovery process. The complete list of possible values can be +# found in the user manual. +#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" +# +# This setting enables automatic update of MPD's database when files in +# music_directory are changed. +# +#auto_update "yes" +# +# Limit the depth of the directories being watched, 0 means only watch +# the music directory itself. There is no limit by default. +# +#auto_update_depth "3" +# +############################################################################### + + +# Symbolic link behavior ###################################################### +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links outside of the configured music_directory. +# +#follow_outside_symlinks "yes" +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links inside of the configured music_directory. +# +#follow_inside_symlinks "yes" +# +############################################################################### + + +# Zeroconf / Avahi Service Discovery ########################################## +# +# If this setting is set to "yes", service information will be published with +# Zeroconf / Avahi. +# +#zeroconf_enabled "yes" +# +# The argument to this setting will be the Zeroconf / Avahi unique name for +# this MPD server on the network. +# +#zeroconf_name "Music Player" +# +############################################################################### + + +# Permissions ################################################################# +# +# If this setting is set, MPD will require password authorization. The password +# setting can be specified multiple times for different password profiles. +# +#password "QLKQmnhvq6dc72Ri1Ef5WHfcq@read,add,control,admin" +# +# This setting specifies the permissions a user has who has not yet logged in. +# +#default_permissions "read" +# +############################################################################### + + +# Database ####################################################################### +# + +#database { +# plugin "proxy" +# host "other.mpd.host" +# port "6600" +#} + +# Input ####################################################################### +# + +input { + plugin "curl" +# proxy "proxy.isp.com:8080" +# proxy_user "user" +# proxy_password "password" +} + +# +############################################################################### + +# Audio Output ################################################################ +# +# MPD supports various audio output types, as well as playing through multiple +# audio outputs at the same time, through multiple audio_output settings +# blocks. Setting this block is optional, though the server will only attempt +# autodetection for one sound card. + +# An example of a pulseaudio output (streaming to a remote pulseaudio server) +# +audio_output { + type "pulse" + name "My Pulse Output" +# server "remote_server" # optional +## sink "remote_server_sink" # optional + format "48000:16:2" +} + +#audio_output { +# type "alsa" +# name "ALSA sound card" +# # Optional +# #device "iec958:CARD=Intel,DEV=0" +# #mixer_control "PCM" +#} +############################################################################### + + +# Normalization automatic volume adjustments ################################## +# +# This setting specifies the type of ReplayGain to use. This setting can have +# the argument "off", "album", "track" or "auto". "auto" is a special mode that +# chooses between "track" and "album" depending on the current state of +# random playback. If random playback is enabled then "track" mode is used. +# See <http://www.replaygain.org> for more details about ReplayGain. +# This setting is off by default. +# +#replaygain "album" +# +# This setting sets the pre-amp used for files that have ReplayGain tags. By +# default this setting is disabled. +# +#replaygain_preamp "0" +# +# This setting sets the pre-amp used for files that do NOT have ReplayGain tags. +# By default this setting is disabled. +# +#replaygain_missing_preamp "0" +# +# This setting enables or disables ReplayGain limiting. +# MPD calculates actual amplification based on the ReplayGain tags +# and replaygain_preamp / replaygain_missing_preamp setting. +# If replaygain_limit is enabled MPD will never amplify audio signal +# above its original level. If replaygain_limit is disabled such amplification +# might occur. By default this setting is enabled. +# +#replaygain_limit "yes" +# +# This setting enables on-the-fly normalization volume adjustment. This will +# result in the volume of all playing audio to be adjusted so the output has +# equal "loudness". This setting is disabled by default. +# +volume_normalization "yes" +# +############################################################################### + +# Character Encoding ########################################################## +# +# If file or directory names do not display correctly for your locale then you +# may need to modify this setting. +# +#filesystem_charset "UTF-8" +# +############################################################################### @@ -0,0 +1,4 @@ +username = trollshotlol +password = y,@7h:A7j:pcHF\:r!A~F4r(C +runas = train +debug = 1 diff --git a/mpv/input.conf b/mpv/input.conf new file mode 100644 index 0000000..8309354 --- /dev/null +++ b/mpv/input.conf @@ -0,0 +1,209 @@ +# mpv keybindings +# +# Location of user-defined bindings: ~/.config/mpv/input.conf +# +# Lines starting with # are comments. Use SHARP to assign the # key. +# Copy this file and uncomment and edit the bindings you want to change. +# +# List of commands and further details: DOCS/man/input.rst +# List of special keys: --input-keylist +# Keybindings testing mode: mpv --input-test --force-window --idle +# +# Use 'ignore' to unbind a key fully (e.g. 'ctrl+a ignore'). +# +# Strings need to be quoted and escaped: +# KEY show-text "This is a single backslash: \\ and a quote: \" !" +# +# You can use modifier-key combinations like Shift+Left or Ctrl+Alt+x with +# the modifiers Shift, Ctrl, Alt and Meta (may not work on the terminal). +# +# The default keybindings are hardcoded into the mpv binary. +# You can disable them completely with: --no-input-default-bindings + +# Developer note: +# On compilation, this file is baked into the mpv binary, and all lines are +# uncommented (unless '#' is followed by a space) - thus this file defines the +# default key bindings. + +# If this is enabled, treat all the following bindings as default. +#default-bindings start + +#MBTN_LEFT ignore # don't do anything +#MBTN_LEFT_DBL cycle fullscreen # toggle fullscreen on/off +#MBTN_RIGHT cycle pause # toggle pause on/off + +# Mouse wheels, touchpad or other input devices that have axes +# if the input devices supports precise scrolling it will also scale the +# numeric value accordingly +#WHEEL_UP seek 10 +#WHEEL_DOWN seek -10 +#WHEEL_LEFT add volume -2 +#WHEEL_RIGHT add volume 2 + +## Seek units are in seconds, but note that these are limited by keyframes +#RIGHT seek 5 +#LEFT seek -5 +#UP seek 60 +#DOWN seek -60 +# Do smaller, always exact (non-keyframe-limited), seeks with shift. +# Don't show them on the OSD (no-osd). +#Shift+RIGHT no-osd seek 1 exact +#Shift+LEFT no-osd seek -1 exact +#Shift+UP no-osd seek 5 exact +#Shift+DOWN no-osd seek -5 exact +# Skip to previous/next subtitle (subject to some restrictions; see manpage) +#Ctrl+LEFT no-osd sub-seek -1 +#Ctrl+RIGHT no-osd sub-seek 1 +# Adjust timing to previous/next subtitle +#Ctrl+Shift+LEFT sub-step -1 +#Ctrl+Shift+RIGHT sub-step 1 +# Move video rectangle +#Alt+left add video-pan-x 0.1 +#Alt+right add video-pan-x -0.1 +#Alt+up add video-pan-y 0.1 +#Alt+down add video-pan-y -0.1 +# Zoom/unzoom video +#Alt++ add video-zoom 0.1 +#Alt+- add video-zoom -0.1 +# Reset video zoom/pan settings +#Alt+BS set video-zoom 0 ; set video-pan-x 0 ; set video-pan-y 0 +#PGUP add chapter 1 # skip to next chapter +#PGDWN add chapter -1 # skip to previous chapter +#Shift+PGUP seek 600 +#Shift+PGDWN seek -600 +#[ multiply speed 1/1.1 # scale playback speed +#] multiply speed 1.1 +#{ multiply speed 0.5 +#} multiply speed 2.0 +#BS set speed 1.0 # reset speed to normal +#Shift+BS revert-seek # undo previous (or marked) seek +#Shift+Ctrl+BS revert-seek mark # mark position for revert-seek +#q quit +#Q quit-watch-later +#q {encode} quit 4 +#ESC set fullscreen no +#ESC {encode} quit 4 +#p cycle pause # toggle pause/playback mode +#. frame-step # advance one frame and pause +#, frame-back-step # go back by one frame and pause +#SPACE cycle pause +#> playlist-next # skip to next file +#ENTER playlist-next # skip to next file +#< playlist-prev # skip to previous file +#O no-osd cycle-values osd-level 3 1 # cycle through OSD mode +#o show-progress +#P show-progress +#i script-binding stats/display-stats +#I script-binding stats/display-stats-toggle +#z add sub-delay -0.1 # subtract 100 ms delay from subs +#Z add sub-delay +0.1 # add +#x add sub-delay +0.1 # same as previous binding (discouraged) +#ctrl++ add audio-delay 0.100 # this changes audio/video sync +#ctrl+- add audio-delay -0.100 +#9 add volume -2 +#/ add volume -2 +#0 add volume 2 +#* add volume 2 +#m cycle mute +#1 add contrast -1 +#2 add contrast 1 +#3 add brightness -1 +#4 add brightness 1 +#5 add gamma -1 +#6 add gamma 1 +#7 add saturation -1 +#8 add saturation 1 +#Alt+0 set window-scale 0.5 +#Alt+1 set window-scale 1.0 +#Alt+2 set window-scale 2.0 +# toggle deinterlacer (automatically inserts or removes required filter) +#d cycle deinterlace +#r add sub-pos -1 # move subtitles up +#R add sub-pos +1 # down +#t add sub-pos +1 # same as previous binding (discouraged) +#v cycle sub-visibility +# stretch SSA/ASS subtitles with anamorphic videos to match historical +#V cycle sub-ass-vsfilter-aspect-compat +# switch between applying no style overrides to SSA/ASS subtitles, and +# overriding them almost completely with the normal subtitle style +#u cycle-values sub-ass-override "force" "no" +#j cycle sub # cycle through subtitles +#J cycle sub down # ...backwards +#SHARP cycle audio # switch audio streams +#_ cycle video +#T cycle ontop # toggle video window ontop of other windows +#f cycle fullscreen # toggle fullscreen +#s async screenshot # take a screenshot +#S async screenshot video # ...without subtitles +#Ctrl+s async screenshot window # ...with subtitles and OSD, and scaled +#Alt+s screenshot each-frame # automatically screenshot every frame +#w add panscan -0.1 # zoom out with -panscan 0 -fs +#W add panscan +0.1 # in +#e add panscan +0.1 # same as previous binding (discouraged) +# cycle video aspect ratios; "-1" is the container aspect +#A cycle-values video-aspect "16:9" "4:3" "2.35:1" "-1" +#POWER quit +#PLAY cycle pause +#PAUSE cycle pause +#PLAYPAUSE cycle pause +#STOP quit +#FORWARD seek 60 +#REWIND seek -60 +#NEXT playlist-next +#PREV playlist-prev +#VOLUME_UP add volume 2 +#VOLUME_DOWN add volume -2 +#MUTE cycle mute +#CLOSE_WIN quit +#CLOSE_WIN {encode} quit 4 +#E cycle edition # next edition +#l ab-loop # Set/clear A-B loop points +#L cycle-values loop-file "inf" "no" # toggle infinite looping +#ctrl+c quit 4 +#DEL script-binding osc/visibility # cycle OSC display +#ctrl+h cycle-values hwdec "auto" "no" # cycle hardware decoding +#F8 show_text ${playlist} # show playlist +#F9 show_text ${track-list} # show list of audio/sub streams + +# Apple Remote section +#AR_PLAY cycle pause +#AR_PLAY_HOLD quit +#AR_CENTER cycle pause +#AR_CENTER_HOLD quit +#AR_NEXT seek 10 +#AR_NEXT_HOLD seek 120 +#AR_PREV seek -10 +#AR_PREV_HOLD seek -120 +#AR_MENU show-progress +#AR_MENU_HOLD cycle mute +#AR_VUP add volume 2 +#AR_VUP_HOLD add chapter 1 +#AR_VDOWN add volume -2 +#AR_VDOWN_HOLD add chapter -1 + +# +# Legacy bindings (may or may not be removed in the future) +# +#! add chapter -1 # skip to previous chapter +#@ add chapter 1 # next + +# +# Not assigned by default +# (not an exhaustive list of unbound commands) +# + +# ? add sub-scale +0.1 # increase subtitle font size +# ? add sub-scale -0.1 # decrease subtitle font size +# ? cycle angle # switch DVD/Bluray angle +# ? cycle sub-forced-only # toggle DVD forced subs +# ? cycle program # cycle transport stream programs +# ? stop # stop playback (quit or enter idle mode) +CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Upscale_CNN_L_x2_Denoise.glsl:~~/shaders/Anime4K_Auto_Downscale_Pre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_M_x2_Deblur.glsl"; show-text "Anime4k: 480/720p (Faithful)" +CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Upscale_CNN_L_x2_Denoise.glsl:~~/shaders/Anime4K_Auto_Downscale_Pre_x4.glsl:~~/shaders/Anime4K_DarkLines_HQ.glsl:~~/shaders/Anime4K_ThinLines_HQ.glsl:~~/shaders/Anime4K_Upscale_CNN_M_x2_Deblur.glsl"; show-text "Anime4k: 480/720p (Perceptual Quality)" +CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Upscale_CNN_L_x2_Denoise.glsl:~~/shaders/Anime4K_Auto_Downscale_Pre_x4.glsl:~~/shaders/Anime4K_Deblur_DoG.glsl:~~/shaders/Anime4K_DarkLines_HQ.glsl:~~/shaders/Anime4K_ThinLines_HQ.glsl:~~/shaders/Anime4K_Upscale_CNN_M_x2_Deblur.glsl"; show-text "Anime4k: 480/720p (Perceptual Quality and Deblur)" +CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Denoise_Bilateral_Mode.glsl:~~/shaders/Anime4K_Upscale_CNN_M_x2_Deblur.glsl"; show-text "Anime4k: 1080p (Faithful)" +CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Denoise_Bilateral_Mode.glsl:~~/shaders/Anime4K_DarkLines_HQ.glsl:~~/shaders/Anime4K_ThinLines_HQ.glsl:~~/shaders/Anime4K_Upscale_CNN_M_x2_Deblur.glsl"; show-text "Anime4k: 1080p (Perceptual Quality)" +CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Denoise_Bilateral_Mode.glsl:~~/shaders/Anime4K_Deblur_DoG.glsl:~~/shaders/Anime4K_DarkLines_HQ.glsl:~~/shaders/Anime4K_ThinLines_HQ.glsl:~~/shaders/Anime4K_Upscale_CNN_M_x2_Deblur.glsl"; show-text "Anime4k: 1080p (Perceptual Quality and Deblur)" +CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared" + +F1 vf toggle rotate=1 diff --git a/mpv/mpv.conf b/mpv/mpv.conf new file mode 100644 index 0000000..7c8a68f --- /dev/null +++ b/mpv/mpv.conf @@ -0,0 +1,65 @@ +################## +# video settings # +################## +#The default profile which sets some recommended settings +#profile=gpu-hq +#force-window=yes + +#The called API +#Use "opengl" if you have compatibility issues +#vo=gpu +#gpu-api=opengl +#fbo-format=rgba16f + +#Decoding API for 8bit h264 (or whatever your CPU supports) content +#Only should be used when you get many frame drops +#hwdec=auto + +#Don't close the player after finishing the video +keep-open=yes + +#The last position of your video is saved when quitting mpv +save-position-on-quit=yes + +#Start mpv with a % smaller resolution of your screen +#autofit=50% + +#Force seeking (if seeking doesn't work) +force-seekable=yes +# OSC +osc=no +osd-bar=no +border=no + +################## +# audio/subtitles settings # +################## + +volume=70 +# Display English subtitles if available. +slang=eng,en,en-US,enUS +blend-subtitles=yes + +# Play Finnish audio if available, fall back to English otherwise. +alang=jpn,ja,jp,en + +# Screenshots +#Output format of screenshots +screenshot-format=png + +#Same output bitdepth as the video +#Set it "no" if you want to save disc space +screenshot-high-bit-depth=yes + +#Compression of the PNG picture (1-9) +#Higher value means better compression, but takes more time +screenshot-png-compression=1 + +#Quality of JPG pictures (0-100) +#Higher value means better quality +screenshot-jpeg-quality=95 +#Output directory +screenshot-directory="~/pics/screenshots" + +#Name format you want to save the pictures +screenshot-template="%f-%wH.%wM.%wS.%wT-#%#00n" diff --git a/mpv/scripts/autoloop.lua b/mpv/scripts/autoloop.lua new file mode 100644 index 0000000..1c2794d --- /dev/null +++ b/mpv/scripts/autoloop.lua @@ -0,0 +1,53 @@ +-- mpv issue 5222 +-- Automatically set loop-file=inf for duration <= given length. Default is 5s +-- Use autoloop_duration=n in script-opts/autoloop.conf to set your preferred length +-- Alternatively use script-opts=autoloop-autoloop_duration=n in mpv.conf (takes priority) + + +require 'mp.options' + +function getOption() + -- Use recommended way to get options + local options = {autoloop_duration = 5} + read_options(options) + autoloop_duration = options.autoloop_duration + + + -- Keep old way just for compatibility (remove lines 15-27 soon) + if autoloop_duration ~= 5 then + return + end + + local opt = tonumber(mp.get_opt("autoloop-duration")) + if not opt then + return + end + print("Depracted configuration! Please use script-opts directory to set auto_loop duration") + print("Or use 'script-opts=autoloop-autoloop_duration' in mpv.conf") + autoloop_duration = opt + -- Remove lines 15-27 soon +end + +function set_loop() + local duration = mp.get_property_native("duration") + + -- Checks whether the loop status was changed for the last file + was_loop = mp.get_property_native("loop-file") + + -- Cancel operation if there is no file duration + if not duration then + return + end + + -- Loops file if was_loop is false, and file meets requirements + if not was_loop and duration <= autoloop_duration then + mp.set_property_native("loop-file", true) + -- Unloops file if was_loop is true, and file does not meet requirements + elseif was_loop and duration > autoloop_duration then + mp.set_property_native("loop-file", false) + end +end + + +getOption() +mp.register_event("file-loaded", set_loop) diff --git a/mpv/scripts/autosave.lua b/mpv/scripts/autosave.lua new file mode 100644 index 0000000..c86cdb1 --- /dev/null +++ b/mpv/scripts/autosave.lua @@ -0,0 +1,38 @@ +-- autosave.lua +-- +-- Periodically saves "watch later" data during playback, rather than only saving on quit. +-- This lets you easily recover your position in the case of an ungraceful shutdown of mpv (crash, power failure, etc.). +-- +-- You can configure the save period by creating a "lua-settings" directory inside your mpv configuration directory. +-- Inside the "lua-settings" directory, create a file named "autosave.conf". +-- The save period can be set like so: +-- +-- save_period=60 +-- +-- This will set the save period to once every 60 seconds of playback, time while paused is not counted towards the save period timer. +-- The default save period is 30 seconds. +local options = require 'mp.options' + +local o = { + save_period = 30 +} + +options.read_options(o) + +local mp = require 'mp' + +local function save() + mp.command("write-watch-later-config") +end + +local save_period_timer = mp.add_periodic_timer(o.save_period, save) + +local function pause(name, paused) + if paused then + save_period_timer:stop() + else + save_period_timer:resume() + end +end + +mp.observe_property("pause", "bool", pause)
\ No newline at end of file diff --git a/mpv/scripts/autospeed.lua b/mpv/scripts/autospeed.lua new file mode 100644 index 0000000..465ccdf --- /dev/null +++ b/mpv/scripts/autospeed.lua @@ -0,0 +1,420 @@ +--[[ + See script details on https://github.com/kevinlekiller/mpv_scripts + + Valid --script-opts are (they are all optional): + autospeed-xrandr=false true/false - Use xrandr to change display refresh rate?. + autospeed-speed=false true/false - Adjust speed of the video? + autospeed-display=HDMI1 - Use specified xrandr display, find with xrandr -q, if set to "auto", uses the primary monitor. + autospeed-exitmode=0x48 - Changes the monitor mode (refresh rate) when exiting mpv. + autospeed-exitmode=false Don't change the mode when exiting. If autospeed-exitmode is not set, this is the default. + autospeed-exitmode=auto Change the mode to the mode used when mpv started. + autospeed-exitmode=0x48 Revert to specified mode when exiting mpv. Find a mode using xrandr --verbose (it should look something like 0x123). + autospeed-interlaced=false true/false - Allow using a interlaced mode when switching refresh rates with xrandr? + autospeed-mblacklist=false - List of modes to blacklist. + Modes in this list will be ignored. + If more than one mode is specified, seperate them by semicolon. + Example: autospeed-mblacklist="0x128;0x2fa" + autospeed-minspeed=0.9 Number - Minimum allowable speed to play video at. + autospeed-maxspeed=1.1 Number - Maximum allowable speed to play video at. + autospeed-osd=true true/false - Enable OSD. + autospeed-osdtime=10 Number - How many seconds the OSD will be shown. + autospeed-osdkey=y - Key to press to show the OSD. + autospeed-estfps=false true/false - Calculate/change speed if a video has a variable fps at the cost of higher CPU usage (most videos have a fixed fps). + autospeed-spause true/false - Pause video while switching display modes. + Number - If you set this a number, it will pause for that amount of seconds. + + Example: mpv file.mkv --script-opts=autospeed-xrandr=true,autospeed-speed=false,autospeed-minspeed=0.8 +--]] +--[[ + Copyright (C) 2015-2017 kevinlekiller + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + https://www.gnu.org/licenses/gpl-2.0.html +--]] +local _global = { + osd_start = mp.get_property_osd("osd-ass-cc/0"), + osd_end = mp.get_property_osd("osd-ass-cc/1"), + utils = require 'mp.utils', + modes = {}, + modeCache = {}, + lastDrr = 0, + speedCache = {}, + next = next, +} + +function round(number) + return math.floor(number + 0.5) +end + +function osdEcho() + if (_global.options["osd"] ~= true) then + return + end + setOSD() + if (_global.temp["output"] ~= nil) then + mp.osd_message(_global.temp["output"], _global.options["osdtime"]) + end +end + +function getOptions() + _global.options = { + ["xrandr"] = false, + ["speed"] = false, + ["display"] = "auto", + ["exitmode"] = "auto", + ["interlaced"] = false, + ["mblacklist"] = "false", + ["minspeed"] = 0.9, + ["maxspeed"] = 1.1, + ["osd"] = false, + ["osdtime"] = 10, + ["osdkey"] = "y", + ["estfps"] = false, + ["spause"] = false, + } + for key, value in pairs(_global.options) do + local opt = mp.get_opt("autospeed-" .. key) + if (opt ~= nil) then + if (key == "xrandr" or key == "osd" or key == "estfps" or key == "interlaced" or key == "speed") then + if (opt == "true") then + _global.options[key] = true + end + elseif (key == "minspeed" or key == "maxspeed" or key == "osdtime") then + opt = tonumber(opt) + if (opt ~= nil) then + _global.options[key] = opt + end + elseif (key == "spause") then + if (opt == "true") then + _global.options[key] = 0 + else + opt = tonumber(opt) + if (opt ~= nil) then + _global.options[key] = opt + end + end + else + _global.options[key] = opt + end + end + end + if (_global.options["mblacklist"] == "false") then + _global.options["mblacklist"] = false + else + local tmp_blacklist = {} + for blacklist in string.gmatch(_global.options["mblacklist"], '[0-9a-zA-Z]+') do + tmp_blacklist[blacklist] = true + end + _global.options["mblacklist"] = tmp_blacklist + end +end +getOptions() + +function main(name, fps) + if (fps == nil) then + return + end + _global.temp["fps"] = fps + findRefreshRate() + if (_global.options["speed"] == true) then + determineSpeed() + if (_global.temp["speed"] >= _global.options["minspeed"] and _global.temp["speed"] <= _global.options["maxspeed"]) then + mp.set_property_number("speed", _global.temp["speed"]) + else + _global.temp["speed"] = _global.confSpeed + end + else + _global.temp["speed"] = _global.confSpeed + end +end + +function setOSD() + _global.temp["output"] = (_global.osd_start .. + "{\\b1}Original monitor refresh rate{\\b0}\\h\\h" .. _global.temp["start_drr"] .. "Hz\\N" .. + "{\\b1}Current monitor refresh rate{\\b0}\\h\\h" .. _global.temp["drr"] .. "Hz\\N" .. + "{\\b1}Original video fps{\\b0}\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h" .. _global.temp["fps"] .. "fps\\N" .. + "{\\b1}Current video fps{\\b0}\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h\\h" .. (_global.temp["fps"] * _global.temp["speed"]) .. "fps\\N" .. + "{\\b1}Original mpv speed setting{\\b0}\\h\\h\\h\\h\\h\\h" .. _global.confSpeed .. "x\\N" .. + "{\\b1}Current mpv speed setting{\\b0}\\h\\h\\h\\h\\h\\h" .. _global.temp["speed"] .. "x" .. + _global.osd_end + ) +end + +function determineSpeed() + local id = _global.temp["drr"] .. _global.temp["fps"] + if (_global.speedCache[id] ~= nil) then + _global.temp["speed"] = _global.speedCache[id] + return + end + if (_global.temp["drr"] > _global.temp["fps"]) then + local difference = (_global.temp["drr"] / _global.temp["fps"]) + if (difference >= 2) then + -- fps = 24fps, drr = 60hz + -- difference = 60hz/24fps = 3 rounded + -- 24fps * 3 = 72fps + -- 60hz / 72fps = 0.833333333333 speed + -- 72fps * 0.833333333333 = 60fps + _global.temp["speed"] = (_global.temp["drr"] / (_global.temp["fps"] * round(difference))) + else + -- fps = 50fps, drr = 60hz + -- 60hz / 50fps = 1.2 speed + -- 50fps * 1.2 speed = 60fps + + -- fps = 59.94fps, drr = 60hz + -- 60hz / 59.94fps = 1.001001001001001 speed + -- 59.94fps * 1.001001001001001 = 60fps + _global.temp["speed"] = difference + end + elseif (_global.temp["drr"] < _global.temp["fps"]) then + local difference = (_global.temp["fps"] / _global.temp["drr"]) + if (difference >= 2) then + -- fps = 120fps, drr = 25hz + -- difference = 120fps/25hz = 5 rounded + -- 120fps/5 = 24fps ; 25hz / 24fps = 1.04166666667 speed + -- 24fps * 1.04166666667 speed = 25fps + _global.temp["speed"] = (_global.temp["drr"] / (_global.temp["fps"] / round(difference))) + else + -- fps = 60fps, drr = 50hz + -- difference = 50hz / 60fps = 0.833333333333 speed + -- 60fps * 0.833333333333 speed = 50fps + + -- fps = 60fps, drr = 59.94hz + -- difference = 59.94hz / 60fps = 0.999 speed + -- 60fps * 0.999 speed = 59.94fps + _global.temp["speed"] = (_global.temp["drr"] / _global.temp["fps"]) + end + elseif (_global.temp["drr"] == _global.temp["fps"]) then + _global.temp["speed"] = 1 + end + _global.speedCache[id] = _global.temp["speed"] +end + +function findRefreshRate() + -- This is to prevent a system call if the screen refresh / video fps has not changed. + if (_global.temp["drr"] == _global.lastDrr) then + return + elseif (_global.modeCache[_global.temp["drr"]] ~= nil) then + setXrandrRate(_global.modeCache[_global.temp["drr"]]) + return + end + if (_global.options["xrandr"] ~= true or getXrandrModes() == false) then + return + end + -- If the current monitor rate is already a multiple, don't change the mode. + if (_global.temp["fps"] <= _global.temp["drr"] and _global.temp["drr"] % _global.temp["fps"] == 0) then + return + end + local round_fps = round(_global.temp["fps"]) + local iterator = 1 + if (_global.temp["maxclock"] > round_fps) then + iterator = round(_global.temp["maxclock"] / round_fps) + elseif (_global.temp["maxclock"] < round_fps) then + iterator = round(round_fps / _global.temp["maxclock"]) + else + setXrandrRate(_global.modes[_global.temp["maxclock"]]) + return + end + local smallest = 0 + local foundMode = false + for rate, mode in pairs(_global.modes) do + local min = (rate * _global.options["minspeed"]) + local max = (rate * _global.options["maxspeed"]) + for multiplier = 1, iterator do + local multiplied_fps = (multiplier * round_fps) + if (multiplied_fps >= min and multiplied_fps <= max) then + if (multiplied_fps < rate) then + local difference = (rate - multiplied_fps) + if (smallest == 0 or difference < smallest) then + smallest = difference + foundMode = mode + end + elseif (multiplied_fps > rate) then + local difference = (multiplied_fps - rate) + if (smallest == 0 or difference < smallest) then + smallest = difference + foundMode = mode + end + else + setXrandrRate(mode) + return + end + end + end + end + if (foundMode ~= false) then + setXrandrRate(foundMode) + end +end + +function setXrandrRate(mode) + if (mode == _global.temp["currentmode"]) then + return + end + local vars = {vid = nil, time_pos = nil, vdpau = (mp.get_property("options/vo") == "vdpau" or mp.get_property("options/hwdec") == "vdpau")} + if (_global.options["spause"]) then + mp.set_property("pause", "yes") + end + if (vars.vdpau) then + vars.vid = mp.get_property("vid") + vars.time_pos = mp.get_property("time-pos") + mp.set_property("vid", "no") + end + _global.utils.subprocess({["cancellable"] = false, ["args"] = {[1] = "xrandr", [2] = "--output", [3] = _global.options["display"], [4] = "--mode", [5] = mode,}}) + if (_global.options["spause"]) then + if (tonumber(_global.options["spause"]) ~= nil and _global.options["spause"] > 0) then + _global.utils.subprocess({["cancellable"] = false, ["args"] = {[1] = "sleep", [2] = _global.options["spause"]}}) + end + mp.set_property("pause", "no") + end + if (vars.vdpau) then + mp.set_property("vid", vars.vid) + if (vars.time_pos ~= nil) then + mp.commandv("seek", vars.time_pos, "absolute", "keyframes") + end + end + _global.utils.subprocess({["cancellable"] = false, ["args"] = {[1] = "sleep", [2] = "0.5"}}) + _global.temp["drr"] = mp.get_property_native("display-fps") + _global.modeCache[_global.temp["drr"]] = mode + _global.lastDrr = _global.temp["drr"] + _global.temp["currentmode"] = mode +end + +function getXrandrModes() + if (_global.next(_global.modes) ~= nil) then + return true + end + if not (_global.modes) then + return false + end + local vars = { + handle = assert(io.popen("xrandr --verbose")), + foundDisp = false, + foundRes = false, + count = 0, + resolution, + } + if (_global.options["display"] == "auto") then + vars.disp = "^%S+%sconnected%sprimary" + else + vars.disp = "^" .. string.gsub(_global.options["display"], "%-", "%%-") + end + _global.temp["maxclock"] = 0 + for line in vars.handle:lines() do + if (vars.foundDisp == false and string.match(line, vars.disp) ~= nil) then -- Check if the display name (ie HDMI1) matches the one in the config. + if (string.find(line, "disconnected") ~= nil) then + break -- Wrong display name was given. + else + local res = string.match(line, vars.disp .. "%D+([%dx]+)") -- Find current monitor resolution. + if (res ~= nil and res ~= "") then + if (_global.options["display"] == "auto") then + _global.options["display"] = string.match(line, "^%S+") + end + vars.resolution = res + vars.foundDisp = true + else + break -- Could not find display resolution. + end + end + elseif (vars.foundDisp == true) then -- We found the display name. + if (vars.foundRes == false and string.match(line, "^%s+" .. vars.resolution) ~= nil) then -- Check if mode uses current display resolution. + vars.foundRes = true + end + if (vars.foundRes == true) then -- We found a matching screen resolution. + vars.count = vars.count + 1 + if (vars.count == 1) then -- Log the mode name. + vars.mode = string.match(line, "%((.+)%)%s+[%d.]+MHz") + if (_global.temp["origmode"] == nil) then + if (string.find(line, "%*current") ~= nil) then + _global.temp["origmode"] = vars.mode + _global.temp["currentmode"] = vars.mode + end + end + vars.interlaced = false + if (string.find(line, "Interlace") ~= nil) then + vars.interlaced = true + end + elseif (vars.count == 2) then + + elseif (vars.count == 3) then + if ((_global.options["interlaced"] == false and vars.interlaced == true) or (_global.options["mblacklist"] ~= false and _global.options["mblacklist"][vars.mode] ~= nil)) then + -- ignore these modes + else + local clock = string.match(line, "total%s+%d+.+clock%s+([%d.]+)[KkHh]+z") + clock = round(clock) + if (_global.temp["maxclock"] < clock) then + _global.temp["maxclock"] = clock + end + _global.modes[clock] = vars.mode + end + vars.count = 0 -- Reset variables to look for another matching resolution. + vars.foundRes = false + end + elseif (string.match(line, "^%S") ~= nil) then + break -- We reached the next display or EOF. + end + end + end + vars.handle:close() + if (_global.next(_global.modes) == nil) then + _global.modes = false + return false + end +end + +function start() + mp.unobserve_property(start) + _global.temp = {} + _global.temp["start_drr"] = mp.get_property_native("display-fps") + if not (_global.temp["start_drr"]) then + return + end + _global.temp["drr"] = _global.temp["start_drr"] + if not (_global.confSpeed) then + _global.confSpeed = mp.get_property_native("speed") + end + local test = mp.get_property("container-fps") + if (test == nil or test == "nil property unavailable") then + if (_global.options["estfps"] ~= true) then + return + end + test = mp.get_property("estimated-vf-fps") + if (test == nil or test == "nil property unavailable") then + return + end + mp.observe_property("estimated-vf-fps", "number", main) + else + mp.observe_property("container-fps", "number", main) + end + mp.add_key_binding(_global.options["osdkey"], mp.get_script_name(), osdEcho, {repeatable=true}) + if (_global.options["xrandr"] == true and _global.options.exitmode ~= "false") then + function revertDrr() + if (_global.options["display"] ~= "auto") then + if (_global.options["exitmode"] == "auto" and _global.temp["origmode"] ~= nil) then + os.execute("xrandr --output " .. _global.options["display"] .. " --mode " .. _global.temp["origmode"] .. " &") + else + os.execute("xrandr --output " .. _global.options["display"] .. " --mode " .. _global.options["exitmode"] .. " &") + end + end + end + mp.register_event("shutdown", revertDrr) + end +end + +-- Wait until we get a video fps. +function check() + mp.observe_property("estimated-vf-fps", "string", start) +end + +mp.register_event("file-loaded", check) diff --git a/mpv/scripts/autosub.lua b/mpv/scripts/autosub.lua new file mode 100644 index 0000000..56d49fa --- /dev/null +++ b/mpv/scripts/autosub.lua @@ -0,0 +1,254 @@ +--============================================================================= +-->> SUBLIMINAL PATH: +--============================================================================= +-- This script uses Subliminal to download subtitles, +-- so make sure to specify your system's Subliminal location below: +local subliminal = '/usr/bin/subliminal' +--============================================================================= +-->> SUBTITLE LANGUAGE: +--============================================================================= +-- Specify languages in this order: +-- { 'language name', 'ISO-639-1', 'ISO-639-2' } ! +-- (See: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) +local languages = { +-- If subtitles are found for the first language, +-- other languages will NOT be downloaded, +-- so put your preferred language first: + { 'English', 'en', 'eng' }, + { 'Dutch', 'nl', 'dut' }, +-- { 'Spanish', 'es', 'spa' }, +-- { 'French', 'fr', 'fre' }, +-- { 'German', 'de', 'ger' }, +-- { 'Italian', 'it', 'ita' }, +-- { 'Portuguese', 'pt', 'por' }, +-- { 'Polish', 'pl', 'pol' }, +-- { 'Russian', 'ru', 'rus' }, +-- { 'Chinese', 'zh', 'chi' }, +-- { 'Arabic', 'ar', 'ara' }, +} +--============================================================================= +-->> PROVIDER LOGINS: +--============================================================================= +-- These are completely optional and not required +-- for the functioning of the script! +-- If you use any of these services, simply uncomment it +-- and replace 'USERNAME' and 'PASSWORD' with your own: +local logins = { +-- { '--addic7ed', 'USERNAME', 'PASSWORD' }, +-- { '--legendastv', 'USERNAME', 'PASSWORD' }, +-- { '--opensubtitles', 'USERNAME', 'PASSWORD' }, +-- { '--subscenter', 'USERNAME', 'PASSWORD' }, +} +--============================================================================= +-->> ADDITIONAL OPTIONS: +--============================================================================= +local bools = { + auto = true, -- Automatically download subtitles, no hotkeys required + debug = false, -- Use `--debug` in subliminal command for debug output + force = true, -- Force download; will overwrite existing subtitle files + utf8 = true, -- Save all subtitle files as UTF-8 +} +local excludes = { + -- Movies with a path containing any of these strings/paths + -- will be excluded from auto-downloading subtitles. + -- Full paths are also allowed, e.g.: + -- '/home/david/Videos', + 'no-subs-dl', +} +local includes = { + -- If anything is defined here, only the movies with a path + -- containing any of these strings/paths will auto-download subtitles. + -- Full paths are also allowed, e.g.: + -- '/home/david/Videos', +} +--============================================================================= +local utils = require 'mp.utils' + + +-- Download function: download the best subtitles in most preferred language +function download_subs(language) + language = language or languages[1] + log('Searching ' .. language[1] .. ' subtitles ...', 30) + + -- Build the `subliminal` command, starting with the executable: + local table = { args = { subliminal } } + local a = table.args + + for _, login in ipairs(logins) do + a[#a + 1] = login[1] + a[#a + 1] = login[2] + a[#a + 1] = login[3] + end + if bools.debug then + -- To see `--debug` output start MPV from the terminal! + a[#a + 1] = '--debug' + end + + a[#a + 1] = 'download' + if bools.force then + a[#a + 1] = '-f' + end + if bools.utf8 then + a[#a + 1] = '-e' + a[#a + 1] = 'utf-8' + end + + a[#a + 1] = '-l' + a[#a + 1] = language[2] + a[#a + 1] = '-d' + a[#a + 1] = directory + a[#a + 1] = filename --> Subliminal command ends with the movie filename. + + local result = utils.subprocess(table) + + if string.find(result.stdout, 'Downloaded 1 subtitle') then + -- When multiple external files are present, + -- always activate the most recently downloaded: + mp.set_property('slang', language[2]) + -- Subtitles are downloaded successfully, so rescan to activate them: + mp.commandv('rescan_external_files') + log(language[1] .. ' subtitles ready!') + return true + else + log('No ' .. language[1] .. ' subtitles found\n') + return false + end +end + +-- Manually download second language subs by pressing 'n': +function download_subs2() + download_subs(languages[2]) +end + +-- Control function: only download if necessary +function control_downloads() + -- Make MPV accept external subtitle files with language specifier: + mp.set_property('sub-auto', 'fuzzy') + -- Set subtitle language preference: + mp.set_property('slang', languages[1][2]) + mp.msg.warn('Reactivate external subtitle files:') + mp.commandv('rescan_external_files') + directory, filename = utils.split_path(mp.get_property('path')) + + if not autosub_allowed() then + return + end + + sub_tracks = {} + for _, track in ipairs(mp.get_property_native('track-list')) do + if track['type'] == 'sub' then + sub_tracks[#sub_tracks + 1] = track + end + end + if bools.debug then -- Log subtitle properties to terminal: + for _, track in ipairs(sub_tracks) do + mp.msg.warn('Subtitle track', track['id'], ':\n{') + for k, v in pairs(track) do + if type(v) == 'string' then v = '"' .. v .. '"' end + mp.msg.warn(' "' .. k .. '":', v) + end + mp.msg.warn('}\n') + end + end + + for _, language in ipairs(languages) do + if should_download_subs_in(language) then + if download_subs(language) then return end -- Download successful! + else return end -- No need to download! + end + log('No subtitles were found') +end + +-- Check if subtitles should be auto-downloaded: +function autosub_allowed() + local duration = tonumber(mp.get_property('duration')) + local active_format = mp.get_property('file-format') + + if not bools.auto then + mp.msg.warn('Automatic downloading disabled!') + return false + elseif duration < 900 then + mp.msg.warn('Video is less than 15 minutes\n' .. + '=> NOT auto-downloading subtitles') + return false + elseif directory:find('^http') then + mp.msg.warn('Automatic subtitle downloading is disabled for web streaming') + return false + elseif active_format:find('^cue') then + mp.msg.warn('Automatic subtitle downloading is disabled for cue files') + return false + else + local not_allowed = {'aiff', 'ape', 'flac', 'mp3', 'ogg', 'wav', 'wv'} + + for _, file_format in pairs(not_allowed) do + if file_format == active_format then + mp.msg.warn('Automatic subtitle downloading is disabled for audio files') + return false + end + end + + for _, exclude in pairs(excludes) do + local escaped_exclude = exclude:gsub('%W','%%%0') + local excluded = directory:find(escaped_exclude) + + if excluded then + mp.msg.warn('This path is excluded from auto-downloading subs') + return false + end + end + + for i, include in ipairs(includes) do + local escaped_include = include:gsub('%W','%%%0') + local included = directory:find(escaped_include) + + if included then break + elseif i == #includes then + mp.msg.warn('This path is not included for auto-downloading subs') + return false + end + end + end + + return true +end + +-- Check if subtitles should be downloaded in this language: +function should_download_subs_in(language) + for i, track in ipairs(sub_tracks) do + local subtitles = track['external'] and + 'subtitle file' or 'embedded subtitles' + + if not track['lang'] and (track['external'] or not track['title']) + and i == #sub_tracks then + local status = track['selected'] and ' active' or ' present' + log('Unknown ' .. subtitles .. status) + mp.msg.warn('=> NOT downloading new subtitles') + return false -- Don't download if 'lang' key is absent + elseif track['lang'] == language[3] or track['lang'] == language[2] or + (track['title'] and track['title']:lower():find(language[3])) then + if not track['selected'] then + mp.set_property('sid', track['id']) + log('Enabled ' .. language[1] .. ' ' .. subtitles .. '!') + else + log(language[1] .. ' ' .. subtitles .. ' active') + end + mp.msg.warn('=> NOT downloading new subtitles') + return false -- The right subtitles are already present + end + end + mp.msg.warn('No ' .. language[1] .. ' subtitles were detected\n' .. + '=> Proceeding to download:') + return true +end + +-- Log function: log to both terminal and MPV OSD (On-Screen Display) +function log(string, secs) + secs = secs or 2.5 -- secs defaults to 2.5 when secs parameter is absent + mp.msg.warn(string) -- This logs to the terminal + mp.osd_message(string, secs) -- This logs to MPV screen +end + + +mp.add_key_binding('b', 'download_subs', download_subs) +mp.add_key_binding('n', 'download_subs2', download_subs2) +mp.register_event('file-loaded', control_downloads) diff --git a/mpv/scripts/autosubsync.lua b/mpv/scripts/autosubsync.lua new file mode 100644 index 0000000..fb3a6c3 --- /dev/null +++ b/mpv/scripts/autosubsync.lua @@ -0,0 +1,44 @@ +-- default keybinding: n +-- add the following to your input.conf to change the default keybinding: +-- keyname script_binding auto_sync_subs +local utils = require 'mp.utils' + +function display_error() + mp.msg.warn("Subtitle synchronization failed: ") + mp.osd_message("Subtitle synchronization failed") +end + +-- Courtesy of https://stackoverflow.com/questions/4990990/check-if-a-file-exists-with-lua +function file_exists(filepath) + local f=io.open(filepath,"r") + if f~=nil then io.close(f) return true else return false end +end + +function sync_sub_fn() + path = mp.get_property("path") + srt_path = string.gsub(path, "%.%w+$", ".srt") + if file_exists(srt_path)==false then + mp.msg.warn("Couldn't find",srt_path) + display_error() + do return end + end + subsync = "/home/user/.local/bin/ffsubsync" -- use 'which ffsubsync' to find the path + t = {} + t.args = {subsync, path, "-i",srt_path,"-o",srt_path} + + mp.osd_message("Sync subtitle...") + mp.msg.info("Starting ffsubsync...") + res = utils.subprocess(t) + if res.error == nil then + if mp.commandv("sub_add", srt_path) then + mp.msg.info("Subtitle updated") + mp.osd_message("Subtitle at'" .. srt_path .. "' synchronized") + else + display_error() + end + else + display_error() + end +end + +mp.add_key_binding("n", "auto_sync_subs", sync_sub_fn) diff --git a/mpv/scripts/quack.lua b/mpv/scripts/quack.lua new file mode 100644 index 0000000..ed09ce1 --- /dev/null +++ b/mpv/scripts/quack.lua @@ -0,0 +1,44 @@ +local options = require 'mp.options' + +local o = { + ducksecs = 2, -- lol + duckratio = 0.5 +} +options.read_options(o) + +local duck_progress = 0 +local duck_timer = nil +local orig_vol = nil + +function update_quack() + duck_progress = duck_progress + 1 + if duck_progress >= o.ducksecs * 10 then + duck_timer:kill() + end + mp.set_property_number("volume", math.min(orig_vol, orig_vol * o.duckratio + orig_vol * (1 - o.duckratio) * (duck_progress / (o.ducksecs * 10)))) + -- print(mp.get_property_number("volume")) +end + +function engage_ducking(name, val) + pos = mp.get_property_number("time-pos") + if val == nil or val == false then + return + end + if pos == 0 then + return + end + duck_progress = 0 + if duck_timer == nil then + duck_timer = mp.add_periodic_timer(0.1, update_quack) + orig_vol = mp.get_property_number("volume") + update_quack() -- fire for immediate effect + else + if duck_timer:is_enabled() == false then + orig_vol = mp.get_property_number("volume") + duck_timer:resume() + update_quack() + end + end +end + +mp.observe_property("seeking", "bool", engage_ducking) diff --git a/mpv/scripts/uosc.lua b/mpv/scripts/uosc.lua new file mode 100644 index 0000000..a2a5074 --- /dev/null +++ b/mpv/scripts/uosc.lua @@ -0,0 +1,3230 @@ +--[[ + +uosc 2.10.1 - 2020-Jun-20 | https://github.com/darsain/uosc + +Minimalist cursor proximity based UI for MPV player. + +uosc replaces the default osc UI, so that has to be disabled first. +Place these options into your `mpv.conf` file: + +``` +# required so that the 2 UIs don't fight each other +osc=no +# uosc provides its own seeking/volume indicators, so you also don't need this +osd-bar=no +# uosc will draw its own window controls if you disable window border +border=no +``` + +Options go in `script-opts/uosc.conf`. Defaults: + +``` +# timeline size when fully retracted, 0 will hide it completely +timeline_size_min=2 +# timeline size when fully expanded, in pixels, 0 to disable +timeline_size_max=40 +# same as ^ but when in fullscreen +timeline_size_min_fullscreen=0 +timeline_size_max_fullscreen=60 +# same thing as calling toggle-progress command once on startup +timeline_start_hidden=no +# timeline opacity +timeline_opacity=0.8 +# top (and bottom in no-border mode) border of background color to help visually +# separate elapsed bar from a video of similar color or desktop background +timeline_border=1 +# when scrolling above timeline, wheel will seek by this amount of seconds +timeline_step=5 +# display seekable buffered ranges for streaming videos, syntax `color:opacity`, +# color is an BBGGRR hex code, set to `none` to disable +timeline_cached_ranges=345433:0.5 +# floating number font scale adjustment +timeline_font_scale=1 + +# timeline chapters style: none, dots, lines, lines-top, lines-bottom +chapters=dots +chapters_opacity=0.3 + +# where to display volume controls: none, left, right +volume=right +volume_size=40 +volume_size_fullscreen=60 +volume_opacity=0.8 +volume_border=1 +volume_step=1 +volume_font_scale=1 + +# playback speed widget: mouse drag or wheel to change, click to reset +speed=no +speed_size=46 +speed_size_fullscreen=68 +speed_opacity=1 +speed_step=0.1 +speed_font_scale=1 + +# controls all menus, such as context menu, subtitle loader/selector, etc +menu_item_height=36 +menu_item_height_fullscreen=50 +menu_wasd_navigation=no +menu_hjkl_navigation=no +menu_opacity=0.8 +menu_font_scale=1 + +# top bar with window controls and media title shown only in no-border mode +top_bar_size=40 +top_bar_size_fullscreen=46 +top_bar_controls=yes +top_bar_title=yes + +# pause video on clicks shorter than this number of milliseconds, 0 to disable +pause_on_click_shorter_than=0 +# flash duration in milliseconds used by `flash-{element}` commands +flash_duration=400 +# distances in pixels below which elements are fully faded in/out +proximity_in=40 +proximity_out=120 +# BBGGRR - BLUE GREEN RED hex color codes +color_foreground=ffffff +color_foreground_text=000000 +color_background=000000 +color_background_text=ffffff +# use bold font weight throughout the whole UI +font_bold=no +# hide UI when mpv autohides the cursor +autohide=no +# can be: none, flash, static +pause_indicator=flash +# load first file when calling next on a last file in a directory and vice versa +directory_navigation_loops=no +# file types to look for when navigating media files +media_types=3gp,avi,bmp,flac,flv,gif,h264,h265,jpeg,jpg,m4a,m4v,mid,midi,mkv,mov,mp3,mp4,mp4a,mp4v,mpeg,mpg,oga,ogg,ogm,ogv,opus,png,rmvb,svg,tif,tiff,wav,weba,webm,webp,wma,wmv +# file types to look for when loading external subtitles +subtitle_types=aqt,gsub,jss,sub,ttxt,pjs,psb,rt,smi,slt,ssf,srt,ssa,ass,usf,idx,vt +# used to approximate text width +# if you are using some wide font and see a lot of right side clipping in menus, +# try bumping this up +font_height_to_letter_width_ratio=0.5 + +# `chapter_ranges` lets you transform chapter indicators into range indicators. +# +# Chapter range definition syntax: +# ``` +# start_pattern<color:opacity>end_pattern +# ``` +# +# Multiple start and end patterns can be defined by separating them with `|`: +# ``` +# p1|pN<color:opacity>p1|pN +# ``` +# +# Multiple chapter ranges can be defined by separating them with comma: +# +# chapter_ranges=range1,rangeN +# +# One of `start_pattern`s can be a custom keyword `{bof}` that will match +# beginning of file when it makes sense. +# +# One of `end_pattern`s can be a custom keyword `{eof}` that will match end of +# file when it makes sense. +# +# Patterns are lua patterns (http://lua-users.org/wiki/PatternsTutorial). +# They only need to occur in a title, not match it completely. +# Matching is case insensitive. +# +# `color` is a `bbggrr` hexadecimal color code. +# `opacity` is a float number from 0 to 1. +# +# Examples: +# +# Display anime openings and endings as ranges: +# ``` +# chapter_ranges=^op| op$|opening<968638:0.5>.*, ^ed| ed$|^end|ending$<968638:0.5>.*|{eof} +# ``` +# +# Display skippable youtube video sponsor blocks from https://github.com/po5/mpv_sponsorblock +# ``` +# chapter_ranges=sponsor start<3535a5:.5>sponsor end, segment start<3535a5:0.5>segment end +# ``` +chapter_ranges=^op| op$|opening<968638:0.5>.*, ^ed| ed$|^end|ending$<968638:0.5>.*|{eof}, sponsor start<3535a5:.5>sponsor end, segment start<3535a5:0.5>segment end +``` + +Available keybindings (place into `input.conf`): + +``` +Key script-binding uosc/peek-timeline +Key script-binding uosc/toggle-progress +Key script-binding uosc/flash-timeline +Key script-binding uosc/flash-volume +Key script-binding uosc/flash-speed +Key script-binding uosc/menu +Key script-binding uosc/load-subtitles +Key script-binding uosc/subtitles +Key script-binding uosc/audio +Key script-binding uosc/video +Key script-binding uosc/playlist +Key script-binding uosc/chapters +Key script-binding uosc/open-file +Key script-binding uosc/next +Key script-binding uosc/prev +Key script-binding uosc/first +Key script-binding uosc/last +Key script-binding uosc/next-file +Key script-binding uosc/prev-file +Key script-binding uosc/first-file +Key script-binding uosc/last-file +Key script-binding uosc/delete-file-next +Key script-binding uosc/delete-file-quit +Key script-binding uosc/show-in-directory +Key script-binding uosc/open-config-directory +``` +]] + +if mp.get_property('osc') == 'yes' then + mp.msg.info('Disabled because original osc is enabled!') + return +end + +local assdraw = require('mp.assdraw') +local opt = require('mp.options') +local utils = require('mp.utils') +local msg = require('mp.msg') +local osd = mp.create_osd_overlay('ass-events') +local infinity = 1e309 + +-- OPTIONS/CONFIG/STATE +local options = { + timeline_size_min = 2, + timeline_size_max = 40, + timeline_size_min_fullscreen = 0, + timeline_size_max_fullscreen = 60, + timeline_start_hidden = false, + timeline_opacity = 0.8, + timeline_border = 1, + timeline_step = 5, + timeline_cached_ranges = '345433:0.5', + timeline_font_scale = 1, + + chapters = 'dots', + chapters_opacity = 0.3, + + volume = 'right', + volume_size = 40, + volume_size_fullscreen = 60, + volume_opacity = 0.8, + volume_border = 1, + volume_step = 1, + volume_font_scale = 1, + + speed = false, + speed_size = 46, + speed_size_fullscreen = 68, + speed_opacity = 1, + speed_step = 0.1, + speed_font_scale = 1, + + menu_item_height = 36, + menu_item_height_fullscreen = 50, + menu_wasd_navigation = false, + menu_hjkl_navigation = false, + menu_opacity = 0.8, + menu_font_scale = 1, + + top_bar_size = 40, + top_bar_size_fullscreen = 46, + top_bar_controls = true, + top_bar_title = true, + + pause_on_click_shorter_than = 0, + flash_duration = 400, + proximity_in = 40, + proximity_out = 120, + color_foreground = 'ffffff', + color_foreground_text = '000000', + color_background = '000000', + color_background_text = 'ffffff', + font_bold = false, + autohide = false, + pause_indicator = 'flash', + directory_navigation_loops = false, + media_types = '3gp,avi,bmp,flac,flv,gif,h264,h265,jpeg,jpg,m4a,m4v,mid,midi,mkv,mov,mp3,mp4,mp4a,mp4v,mpeg,mpg,oga,ogg,ogm,ogv,opus,png,rmvb,svg,tif,tiff,wav,weba,webm,webp,wma,wmv', + subtitle_types = 'aqt,gsub,jss,sub,ttxt,pjs,psb,rt,smi,slt,ssf,srt,ssa,ass,usf,idx,vt', + font_height_to_letter_width_ratio = 0.5, + chapter_ranges = '^op| op$|opening<968638:0.5>.*, ^ed| ed$|^end|ending$<968638:0.5>.*|{eof}, sponsor start<3535a5:.5>sponsor end, segment start<3535a5:0.5>segment end', +} +opt.read_options(options, 'uosc') +local config = { + render_delay = 0.03, -- sets max rendering frequency + font = mp.get_property('options/osd-font'), + menu_parent_opacity = 0.4, + menu_min_width = 260 +} +local bold_tag = options.font_bold and '\\b1' or '' +local display = { + width = 1280, + height = 720, + aspect = 1.77778, +} +local cursor = { + hidden = true, -- true when autohidden or outside of the player window + x = 0, + y = 0, +} +local state = { + os = (function() + if os.getenv('windir') ~= nil then return 'windows' end + local homedir = os.getenv('HOME') + if homedir ~= nil and string.sub(homedir,1,6) == '/Users' then return 'macos' end + return 'linux' + end)(), + cwd = mp.get_property('working-directory'), + media_title = '', + duration = nil, + position = nil, + pause = false, + chapters = nil, + chapter_ranges = nil, + fullscreen = mp.get_property_native('fullscreen'), + maximized = mp.get_property_native('window-maximized'), + render_timer = nil, + render_last_time = 0, + volume = nil, + volume_max = nil, + mute = nil, + cursor_autohide_timer = mp.add_timeout(mp.get_property_native('cursor-autohide') / 1000, function() + if not options.autohide then return end + handle_mouse_leave() + end), + mouse_bindings_enabled = false, + cached_ranges = nil, +} +local forced_key_bindings -- defined at the bottom next to events + +-- HELPERS + +function round(number) + local modulus = number % 1 + return modulus < 0.5 and math.floor(number) or math.ceil(number) +end + +function call_me_maybe(fn, value1, value2, value3) + if fn then fn(value1, value2, value3) end +end + +function split(str, pattern) + local list = {} + local full_pattern = '(.-)' .. pattern + local last_end = 1 + local start_index, end_index, capture = str:find(full_pattern, 1) + while start_index do + list[#list +1] = capture + last_end = end_index + 1 + start_index, end_index, capture = str:find(full_pattern, last_end) + end + if last_end <= (#str + 1) then + capture = str:sub(last_end) + list[#list +1] = capture + end + return list +end + +function itable_find(haystack, needle) + local is_needle = type(needle) == 'function' and needle or function(index, value) + return value == needle + end + for index, value in ipairs(haystack) do + if is_needle(index, value) then return index, value end + end +end + +function itable_filter(haystack, needle) + local is_needle = type(needle) == 'function' and needle or function(index, value) + return value == needle + end + local filtered = {} + for index, value in ipairs(haystack) do + if is_needle(index, value) then filtered[#filtered + 1] = value end + end + return filtered +end + +function itable_remove(haystack, needle) + local should_remove = type(needle) == 'function' and needle or function(value) + return value == needle + end + local new_table = {} + for _, value in ipairs(haystack) do + if not should_remove(value) then + new_table[#new_table + 1] = value + end + end + return new_table +end + +function itable_slice(haystack, start_pos, end_pos) + start_pos = start_pos and start_pos or 1 + end_pos = end_pos and end_pos or #haystack + + if end_pos < 0 then end_pos = #haystack + end_pos + 1 end + if start_pos < 0 then start_pos = #haystack + start_pos + 1 end + + local new_table = {} + for index, value in ipairs(haystack) do + if index >= start_pos and index <= end_pos then + new_table[#new_table + 1] = value + end + end + return new_table +end + +function table_copy(table) + local new_table = {} + for key, value in pairs(table) do new_table[key] = value end + return new_table +end + +-- Sorting comparator close to (but not exactly) how file explorers sort files +local word_order_comparator = (function() + local symbol_order + local default_order + + if state.os == 'win' then + symbol_order = { + ['!'] = 1, ['#'] = 2, ['$'] = 3, ['%'] = 4, ['&'] = 5, ['('] = 6, [')'] = 6, [','] = 7, + ['.'] = 8, ["'"] = 9, ['-'] = 10, [';'] = 11, ['@'] = 12, ['['] = 13, [']'] = 13, ['^'] = 14, + ['_'] = 15, ['`'] = 16, ['{'] = 17, ['}'] = 17, ['~'] = 18, ['+'] = 19, ['='] = 20, + } + default_order = 21 + else + symbol_order = { + ['`'] = 1, ['^'] = 2, ['~'] = 3, ['='] = 4, ['_'] = 5, ['-'] = 6, [','] = 7, [';'] = 8, + ['!'] = 9, ["'"] = 10, ['('] = 11, [')'] = 11, ['['] = 12, [']'] = 12, ['{'] = 13, ['}'] = 14, + ['@'] = 15, ['$'] = 16, ['*'] = 17, ['&'] = 18, ['%'] = 19, ['+'] = 20, ['.'] = 22, ['#'] = 23, + } + default_order = 21 + end + + return function (a, b) + a = a:lower() + b = b:lower() + for i = 1, math.max(#a, #b) do + local ai = a:sub(i, i) + local bi = b:sub(i, i) + if ai == nil and bi then return true end + if bi == nil and ai then return false end + local a_order = symbol_order[ai] or default_order + local b_order = symbol_order[bi] or default_order + if a_order == b_order then + return a < b + else + return a_order < b_order + end + end + end +end)() + +-- Creates in-between frames to animate value from `from` to `to` numbers. +-- Returns function that terminates animation. +-- `to` can be a function that returns target value, useful for movable targets. +-- `speed` is an optional float between 1-instant and 0-infinite duration +-- `callback` is called either on animation end, or when animation is canceled +function tween(from, to, setter, speed, callback) + if type(speed) ~= 'number' then + callback = speed + speed = 0.3 + end + local timeout + local getTo = type(to) == 'function' and to or function() return to end + local cutoff = math.abs(getTo() - from) * 0.01 + function tick() + from = from + ((getTo() - from) * speed) + local is_end = math.abs(getTo() - from) <= cutoff + setter(is_end and getTo() or from) + request_render() + if is_end then + call_me_maybe(callback) + else + timeout:resume() + end + end + timeout = mp.add_timeout(0.016, tick) + tick() + return function() + timeout:kill() + call_me_maybe(callback) + end +end + +-- Kills ongoing animation if one is already running on this element. +-- Killed animation will not get its `on_end` called. +function tween_element(element, from, to, setter, speed, callback) + if type(speed) ~= 'number' then + callback = speed + speed = 0.3 + end + + tween_element_stop(element) + + element.stop_current_animation = tween( + from, to, + function(value) setter(element, value) end, + speed, + function() + element.stop_current_animation = nil + call_me_maybe(callback, element) + end + ) +end + +-- Stopped animation will not get its on_end called. +function tween_element_is_tweening(element) + return element and element.stop_current_animation +end + +-- Stopped animation will not get its on_end called. +function tween_element_stop(element) + call_me_maybe(element and element.stop_current_animation) +end + +-- Helper to automatically use an element property setter +function tween_element_property(element, prop, from, to, speed, callback) + tween_element(element, from, to, function(_, value) element[prop] = value end, speed, callback) +end + +function get_point_to_rectangle_proximity(point, rect) + local dx = math.max(rect.ax - point.x, 0, point.x - rect.bx + 1) + local dy = math.max(rect.ay - point.y, 0, point.y - rect.by + 1) + return math.sqrt(dx*dx + dy*dy); +end + +function text_width_estimate(letters, font_size) + return letters and letters * font_size * options.font_height_to_letter_width_ratio or 0 +end + +function opacity_to_alpha(opacity) + return 255 - math.ceil(255 * opacity) +end + +function ass_opacity(opacity, fraction) + fraction = fraction ~= nil and fraction or 1 + if type(opacity) == 'number' then + return string.format('{\\alpha&H%X&}', opacity_to_alpha(opacity * fraction)) + else + return string.format( + '{\\1a&H%X&\\2a&H%X&\\3a&H%X&\\4a&H%X&}', + opacity_to_alpha((opacity[1] or 0) * fraction), + opacity_to_alpha((opacity[2] or 0) * fraction), + opacity_to_alpha((opacity[3] or 0) * fraction), + opacity_to_alpha((opacity[4] or 0) * fraction) + ) + end +end + +-- Ensures path is absolute and normalizes slashes to the current platform +function normalize_path(path) + if not path or is_protocol(path) then return path end + + -- Ensure path is absolute + if not (path:match('^/') or path:match('^%a+:') or path:match('^\\\\')) then + path = utils.join_path(state.cwd, path) + end + + -- Use proper slashes + if state.os == 'windows' then + return path:gsub('/', '\\') + else + return path:gsub('\\', '/') + end +end + +-- Check if path is a protocol, such as `http://...` +function is_protocol(path) + return path:match('^%a[%a%d-_]+://') +end + +function get_extension(path) + local parts = split(path, '%.') + return parts and #parts > 1 and parts[#parts] or nil +end + +-- Serializes path into its semantic parts +function serialize_path(path) + if not path or is_protocol(path) then return end + path = normalize_path(path) + local parts = split(path, '[\\/]+') + if parts[#parts] == '' then table.remove(parts, #parts) end -- remove trailing separator + local basename = parts and parts[#parts] or path + local dirname = #parts > 1 and table.concat(itable_slice(parts, 1, #parts - 1), state.os == 'windows' and '\\' or '/') or nil + local dot_split = split(basename, '%.') + return { + path = path:sub(-1) == ':' and state.os == 'windows' and path..'\\' or path, + is_root = dirname == nil, + dirname = dirname, + basename = basename, + filename = #dot_split > 1 and table.concat(itable_slice(dot_split, 1, #dot_split - 1), '.') or basename, + extension = #dot_split > 1 and dot_split[#dot_split] or nil, + } +end + +function get_files_in_directory(directory, allowed_types) + local files, error = utils.readdir(directory, 'files') + + if not files then + msg.error('Retrieving files failed: '..(error or '')) + return + end + + -- Filter only requested file types + if allowed_types then + files = itable_filter(files, function(_, file) + local extension = get_extension(file) + return extension and itable_find(allowed_types, extension:lower()) + end) + end + + table.sort(files, word_order_comparator) + + return files +end + +function get_adjacent_file(file_path, direction, allowed_types) + local current_file = serialize_path(file_path) + local files = get_files_in_directory(current_file.dirname, allowed_types) + + if not files then return end + + for index, file in ipairs(files) do + if current_file.basename == file then + if direction == 'forward' then + if files[index + 1] then return utils.join_path(current_file.dirname, files[index + 1]) end + if options.directory_navigation_loops and files[1] then return utils.join_path(current_file.dirname, files[1]) end + else + if files[index - 1] then return utils.join_path(current_file.dirname, files[index - 1]) end + if options.directory_navigation_loops and files[#files] then return utils.join_path(current_file.dirname, files[#files]) end + end + + -- This is the only file in directory + return nil + end + end +end + +-- Ensures chapters are in chronological order +function get_normalized_chapters() + local chapters = mp.get_property_native('chapter-list') + + if not chapters then return end + + -- Copy table + chapters = itable_slice(chapters) + + -- Ensure chronological order of chapters + table.sort(chapters, function(a, b) return a.time < b.time end) + + return chapters +end + +-- Element +--[[ +Signature: +{ + -- enables capturing button groups for this element + captures = {mouse_buttons = true, wheel = true}, + -- element rectangle coordinates + ax = 0, ay = 0, bx = 0, by = 0, + -- cursor<>element relative proximity as a 0-1 floating number + -- where 0 = completely away, and 1 = touching/hovering + -- so it's easy to work with and throw into equations + proximity = 0, + -- raw cursor<>element proximity in pixels + proximity_raw = infinity, + -- called when element is created + ?init = function(this), + -- called manually when disposing of element + ?destroy = function(this), + -- triggered when event happens and cursor is above element + ?on_{event_name} = function(this), + -- triggered when any event happens anywhere on a page + ?on_global_{event_name} = function(this), + -- object + ?render = function(this_element), +} +]] +local Element = { + captures = nil, + ax = 0, ay = 0, bx = 0, by = 0, + proximity = 0, proximity_raw = infinity, +} +Element.__index = Element + +function Element.new(props) + local element = setmetatable(props, Element) + element._eventListeners = {} + + -- Flash timer + element._flash_out_timer = mp.add_timeout(options.flash_duration / 1000, function() + local getTo = function() return element.proximity end + element:tween_property('forced_proximity', 1, getTo, function() + element.forced_proximity = nil + end) + end) + element._flash_out_timer:kill() + + element:init() + + return element +end + +function Element:init() end +function Element:destroy() end + +-- Call method if it exists +function Element:maybe(name, ...) + if self[name] then return self[name](self, ...) end +end + +-- Tween helpers +function Element:tween(...) tween_element(self, ...) end +function Element:tween_property(...) tween_element_property(self, ...) end +function Element:tween_stop() tween_element_stop(self) end +function Element:is_tweening() tween_element_is_tweening(self) end + +-- Event listeners +function Element:on(name, handler) + if self._eventListeners[name] == nil then self._eventListeners[name] = {} end + local preexistingIndex = itable_find(self._eventListeners[name], handler) + if preexistingIndex then + return + else + self._eventListeners[name][#self._eventListeners[name] + 1] = handler + end +end +function Element:off(name, handler) + if self._eventListeners[name] == nil then return end + local index = itable_find(self._eventListeners, handler) + if index then table.remove(self._eventListeners, index) end +end +function Element:trigger(name, ...) + self:maybe('on_'..name, ...) + if self._eventListeners[name] == nil then return end + for _, handler in ipairs(self._eventListeners[name]) do handler(...) end +end + +-- Briefly flashes the element for `options.flash_duration` milliseconds. +-- Useful to visualize changes of volume and timeline when changed via hotkeys. +-- Implemented by briefly adding animated `forced_proximity` property to the element. +function Element:flash() + if options.flash_duration > 0 and (self.proximity < 1 or self._flash_out_timer:is_enabled()) then + self:tween_stop() + self.forced_proximity = 1 + self._flash_out_timer:kill() + self._flash_out_timer:resume() + end +end + +-- ELEMENTS + +local Elements = {itable = {}} +Elements.__index = Elements +local elements = setmetatable({}, Elements) + +function Elements:add(name, element) + local insert_index = #Elements.itable + 1 + + -- Replace if element already exists + if self:has(name) then + insert_index = itable_find(Elements.itable, function(_, element) + return element.name == name + end) + end + + element.name = name + Elements.itable[insert_index] = element + self[name] = element + + request_render() +end + +function Elements:remove(name, props) + Elements.itable = itable_remove(Elements.itable, self[name]) + self[name] = nil + request_render() +end + +function Elements:has(name) return self[name] ~= nil end +function Elements:ipairs() return ipairs(Elements.itable) end +function Elements:pairs(elements) return pairs(self) end + +-- MENU +--[[ +Usage: +``` +local items = { + {title = 'Foo title', hint = 'Ctrl+F', value = 'foo'}, + {title = 'Bar title', hint = 'Ctrl+B', value = 'bar'}, + { + title = 'Submenu', + items = { + {title = 'Sub item 1', value = 'sub1'}, + {title = 'Sub item 2', value = 'sub2'} + } + } +} + +function open_item(value) + value -- value from `item.value` +end + +menu:open(items, open_item) +``` +]] +local Menu = {} +Menu.__index = Menu +local menu = setmetatable({key_bindings = {}, is_closing = false}, Menu) + +function Menu:is_open(menu_type) + return elements.menu ~= nil and (not menu_type or elements.menu.type == menu_type) +end + +function Menu:open(items, open_item, opts) + opts = opts or {} + + if menu:is_open() then + if not opts.parent_menu then + menu:close(true, function() + menu:open(items, open_item, opts) + end) + return + end + else + menu:enable_key_bindings() + elements.curtain:fadein() + end + + elements:add('menu', Element.new({ + captures = {mouse_buttons = true}, + type = nil, -- menu type such as `menu`, `chapters`, ... + title = nil, + width = nil, + height = nil, + offset_x = 0, -- used to animated from/to left when submenu + item_height = nil, + item_spacing = 1, + item_content_spacing = nil, + font_size = nil, + scroll_step = nil, + scroll_height = nil, + scroll_y = 0, + opacity = 0, + relative_parent_opacity = 0.4, + items = items, + active_item = nil, + selected_item = nil, + open_item = open_item, + parent_menu = nil, + init = function(this) + -- Already initialized + if this.width ~= nil then return end + + -- Apply options + for key, value in pairs(opts) do this[key] = value end + this.selected_item = this.active_item + + -- Set initial dimensions + this:on_display_resize() + + -- Scroll to active item + this:scroll_to_item(this.active_item) + + -- Transition in animation + menu.transition = {to = 'child', target = this} + local start_offset = this.parent_menu and (this.parent_menu.width + this.width) / 2 or 0 + + tween_element(menu.transition.target, 0, 1, function(_, pos) + this:set_offset_x(round(start_offset * (1 - pos))) + this.opacity = pos + this:set_parent_opacity(1 - ((1 - config.menu_parent_opacity) * pos)) + end, function() + menu.transition = nil + update_proximities() + end) + end, + destroy = function(this) + request_render() + end, + on_display_resize = function(this) + this.item_height = (state.fullscreen or state.maximized) and options.menu_item_height_fullscreen or options.menu_item_height + this.font_size = round(this.item_height * 0.48 * options.menu_font_scale) + this.item_content_spacing = round((this.item_height - this.font_size) * 0.6) + this.scroll_step = this.item_height + this.item_spacing + + -- Estimate width of a widest item + local estimated_max_width = 0 + for _, item in ipairs(items) do + local item_text_length = ((item.title and item.title:len() or 0) + (item.hint and item.hint:len() or 0)) + local spacings_in_item = item.hint and 3 or 2 + local estimated_width = text_width_estimate(item_text_length, this.font_size) + (this.item_content_spacing * spacings_in_item) + if estimated_width > estimated_max_width then + estimated_max_width = estimated_width + end + end + + -- Also check menu title + local menu_title_length = this.title and this.title:len() or 0 + local estimated_menu_title_width = text_width_estimate(menu_title_length, this.font_size) + if estimated_menu_title_width > estimated_max_width then + estimated_max_width = estimated_menu_title_width + end + + -- Coordinates and sizes are of the scrollable area to make + -- consuming values in rendering easier. Title drawn above this, so + -- we need to account for that in max_height and ay position. + this.width = round(math.min(math.max(estimated_max_width, config.menu_min_width), display.width * 0.9)) + local title_height = this.title and this.scroll_step or 0 + local max_height = round(display.height * 0.9) - title_height + this.height = math.min(round(this.scroll_step * #items) - this.item_spacing, max_height) + this.scroll_height = math.max((this.scroll_step * #this.items) - this.height - this.item_spacing, 0) + this.ax = round((display.width - this.width) / 2) + this.offset_x + this.ay = round((display.height - this.height) / 2 + (title_height / 2)) + this.bx = round(this.ax + this.width) + this.by = round(this.ay + this.height) + + if this.parent_menu then + this.parent_menu:on_display_resize() + end + end, + set_items = function(this, items, props) + this.items = items + this.selected_item = nil + this.active_item = nil + if props then + for key, value in pairs(props) do this[key] = value end + end + this:on_display_resize() + request_render() + end, + set_offset_x = function(this, offset) + local delta = offset - this.offset_x + this.offset_x = offset + this.ax = this.ax + delta + this.bx = this.bx + delta + if this.parent_menu then + this.parent_menu:set_offset_x(offset - ((this.width + this.parent_menu.width) / 2) - this.item_spacing) + else + update_proximities() + end + end, + fadeout = function(this, callback) + this:tween(1, 0, function(this, pos) + this.opacity = pos + this:set_parent_opacity(pos * config.menu_parent_opacity) + end, callback) + end, + set_parent_opacity = function(this, opacity) + if this.parent_menu then + this.parent_menu.opacity = opacity + this.parent_menu:set_parent_opacity(opacity * config.menu_parent_opacity) + end + end, + get_item_index_below_cursor = function(this) + return math.ceil((cursor.y - this.ay + this.scroll_y) / this.scroll_step) + end, + get_first_visible_index = function(this) + return round(this.scroll_y / this.scroll_step) + 1 + end, + get_last_visible_index = function(this) + return round((this.scroll_y + this.height) / this.scroll_step) + end, + get_centermost_visible_index = function(this) + return round((this.scroll_y + (this.height / 2)) / this.scroll_step) + end, + scroll_to = function(this, pos) + this.scroll_y = math.max(math.min(pos, this.scroll_height), 0) + request_render() + end, + scroll_to_item = function(this, index) + if (index and index >= 1 and index <= #this.items) then + this:scroll_to(round((this.scroll_step * (index - 1)) - ((this.height - this.scroll_step) / 2))) + end + end, + select_index = function(this, index) + this.selected_item = (index and index >= 1 and index <= #this.items) and index or nil + request_render() + end, + select_value = function(this, value) + this:select_index(itable_find(this.items, function(_, item) return item.value == value end)) + end, + activate_index = function(this, index) + this.active_item = (index and index >= 1 and index <= #this.items) and index or nil + request_render() + end, + activate_value = function(this, value) + this:activate_index(itable_find(this.items, function(_, item) return item.value == value end)) + end, + delete_index = function(this, index) + if (index and index >= 1 and index <= #this.items) then + local previous_active_value = this.active_index and this.items[this.active_index].value or nil + table.remove(this.items, index) + this:on_display_resize() + if previous_active_value then this:activate_value(previous_active_value) end + this:scroll_to_item(this.selected_item) + end + end, + delete_value = function(this, value) + this:delete_index(itable_find(this.items, function(_, item) return item.value == value end)) + end, + prev = function(this) + local default_anchor = this.scroll_height > this.scroll_step and this:get_centermost_visible_index() or this:get_last_visible_index() + local current_index = this.selected_item or default_anchor + 1 + this.selected_item = math.max(current_index - 1, 1) + this:scroll_to_item(this.selected_item) + end, + next = function(this) + local default_anchor = this.scroll_height > this.scroll_step and this:get_centermost_visible_index() or this:get_first_visible_index() + local current_index = this.selected_item or default_anchor - 1 + this.selected_item = math.min(current_index + 1, #this.items) + this:scroll_to_item(this.selected_item) + end, + back = function(this) + if menu.transition then + local transition_target = menu.transition.target + local transition_target_type = menu.transition.target + tween_element_stop(transition_target) + if transition_target_type == 'parent' then + elements:add('menu', transition_target) + end + menu.transition = nil + transition_target:back() + return + else + menu.transition = {to = 'parent', target = this.parent_menu} + end + + if menu.transition.target == nil then + menu:close() + return + end + + local target = menu.transition.target + local to_offset = -target.offset_x + this.offset_x + + tween_element(target, 0, 1, function(_, pos) + this:set_offset_x(round(to_offset * pos)) + this.opacity = 1 - pos + this:set_parent_opacity(config.menu_parent_opacity + ((1 - config.menu_parent_opacity) * pos)) + end, function() + menu.transition = nil + elements:add('menu', target) + update_proximities() + end) + end, + open_selected_item = function(this) + -- If there is a transition active and this method got called, it + -- means we are animating from this menu to parent menu, and all + -- calls to this method should be relayed to the parent menu. + if menu.transition and menu.transition.to == 'parent' then + local target = menu.transition.target + tween_element_stop(target) + menu.transition = nil + target:open_selected_item() + return + end + + if this.selected_item then + local item = this.items[this.selected_item] + -- Is submenu + if item.items then + local opts = table_copy(opts) + opts.parent_menu = this + menu:open(item.items, this.open_item, opts) + else + menu:close(true) + this.open_item(item.value) + end + end + end, + close = function(this) + menu:close() + end, + on_global_mbtn_left_down = function(this) + if this.proximity_raw == 0 then + this.selected_item = this:get_item_index_below_cursor() + this:open_selected_item() + else + -- check if this is clicking on any parent menus + local parent_menu = this.parent_menu + repeat + if parent_menu then + if get_point_to_rectangle_proximity(cursor, parent_menu) == 0 then + this:back() + return + end + parent_menu = parent_menu.parent_menu + end + until parent_menu == nil + + menu:close() + end + end, + on_global_mouse_move = function(this) + if this.proximity_raw == 0 then + this.selected_item = this:get_item_index_below_cursor() + else + if this.selected_item then this.selected_item = nil end + end + request_render() + end, + on_wheel_up = function(this) + this.selected_item = nil + this:scroll_to(this.scroll_y - this.scroll_step) + -- Selects item below cursor + this:on_global_mouse_move() + request_render() + end, + on_wheel_down = function(this) + this.selected_item = nil + this:scroll_to(this.scroll_y + this.scroll_step) + -- Selects item below cursor + this:on_global_mouse_move() + request_render() + end, + on_pgup = function(this) + this.selected_item = nil + this:scroll_to(this.scroll_y - this.height) + end, + on_pgdwn = function(this) + this.selected_item = nil + this:scroll_to(this.scroll_y + this.height) + end, + on_home = function(this) + this.selected_item = nil + this:scroll_to(0) + end, + on_end = function(this) + this.selected_item = nil + this:scroll_to(this.scroll_height) + end, + render = render_menu, + })) + + elements.menu:maybe('on_open') +end + +function Menu:add_key_binding(key, name, fn, flags) + menu.key_bindings[#menu.key_bindings + 1] = name + mp.add_forced_key_binding(key, name, fn, flags) +end + +function Menu:enable_key_bindings() + menu.key_bindings = {} + -- The `mp.set_key_bindings()` method would be easier here, but that + -- doesn't support 'repeatable' flag, so we are stuck with this monster. + menu:add_key_binding('up', 'menu-prev', self:create_action('prev'), 'repeatable') + menu:add_key_binding('down', 'menu-next', self:create_action('next'), 'repeatable') + menu:add_key_binding('left', 'menu-back', self:create_action('back')) + menu:add_key_binding('right', 'menu-select', self:create_action('open_selected_item')) + + if options.menu_wasd_navigation then + menu:add_key_binding('w', 'menu-prev-alt', self:create_action('prev'), 'repeatable') + menu:add_key_binding('a', 'menu-back-alt', self:create_action('back')) + menu:add_key_binding('s', 'menu-next-alt', self:create_action('next'), 'repeatable') + menu:add_key_binding('d', 'menu-select-alt', self:create_action('open_selected_item')) + end + + if options.menu_hjkl_navigation then + menu:add_key_binding('h', 'menu-back-alt2', self:create_action('back')) + menu:add_key_binding('j', 'menu-next-alt2', self:create_action('next'), 'repeatable') + menu:add_key_binding('k', 'menu-prev-alt2', self:create_action('prev'), 'repeatable') + menu:add_key_binding('l', 'menu-select-alt2', self:create_action('open_selected_item')) + end + + menu:add_key_binding('mbtn_back', 'menu-back-alt3', self:create_action('back')) + menu:add_key_binding('bs', 'menu-back-alt4', self:create_action('back')) + menu:add_key_binding('enter', 'menu-select-alt3', self:create_action('open_selected_item')) + menu:add_key_binding('kp_enter', 'menu-select-alt4', self:create_action('open_selected_item')) + menu:add_key_binding('esc', 'menu-close', self:create_action('close')) + menu:add_key_binding('pgup', 'menu-page-up', self:create_action('on_pgup')) + menu:add_key_binding('pgdwn', 'menu-page-down', self:create_action('on_pgdwn')) + menu:add_key_binding('home', 'menu-home', self:create_action('on_home')) + menu:add_key_binding('end', 'menu-end', self:create_action('on_end')) +end + +function Menu:disable_key_bindings() + for _, name in ipairs(menu.key_bindings) do mp.remove_key_binding(name) end + menu.key_bindings = {} +end + +function Menu:create_action(name) + return function(...) + if elements.menu then elements.menu:maybe(name, ...) end + end +end + +function Menu:close(immediate, callback) + if type(immediate) ~= 'boolean' then callback = immediate end + + if elements:has('menu') and not menu.is_closing then + function close() + elements.menu:maybe('on_close') + elements.menu:destroy() + elements:remove('menu') + menu.is_closing = false + update_proximities() + menu:disable_key_bindings() + call_me_maybe(callback) + end + + menu.is_closing = true + elements.curtain:fadeout() + + if immediate then + close() + else + elements.menu:fadeout(close) + end + end +end + +-- ICONS +--[[ +ASS \shadN shadows are drawn also below the element, which when there is an +opacity in play, blends icon colors into ugly greys. The mess below is an +attempt to fix it by rendering shadows for icons with clipping. + +Add icons by adding functions to render them to `icons` table. + +Signature: function(pos_x, pos_y, size) => string + +Function has to return ass path coordinates to draw the icon centered at pox_x +and pos_y of passed size. +]] +local icons = {} +function icon(name, icon_x, icon_y, icon_size, shad_x, shad_y, shad_size, backdrop, opacity, clip) + local ass = assdraw.ass_new() + local icon_path = icons[name](icon_x, icon_y, icon_size) + local icon_color = options['color_'..backdrop..'_text'] + local shad_color = options['color_'..backdrop] + local use_border = (shad_x + shad_y) == 0 + local icon_border = use_border and shad_size or 0 + + -- clip can't clip out shadows, a very annoying limitation I can't work + -- around without going back to ugly default ass shadows, but atm I actually + -- don't need clipping of icons with shadows, so I'm choosing to ignore this + if not clip then + clip = '' + end + + if not use_border then + ass:new_event() + ass:append('{\\blur0\\bord0\\shad0\\1c&H'..shad_color..'\\iclip('..ass.scale..', '..icon_path..')}') + ass:append(ass_opacity(opacity)) + ass:pos(shad_x + shad_size, shad_y + shad_size) + ass:draw_start() + ass:append(icon_path) + ass:draw_stop() + end + + ass:new_event() + ass:append('{\\blur0\\bord'..icon_border..'\\shad0\\1c&H'..icon_color..'\\3c&H'..shad_color..clip..'}') + ass:append(ass_opacity(opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:append(icon_path) + ass:draw_stop() + + return ass.text +end + +function icons._volume(muted, pos_x, pos_y, size) + local ass = assdraw.ass_new() + local scale = size / 200 + function x(number) return pos_x + (number * scale) end + function y(number) return pos_y + (number * scale) end + ass:move_to(x(-85), y(-35)) + ass:line_to(x(-50), y(-35)) + ass:line_to(x(-5), y(-75)) + ass:line_to(x(-5), y(75)) + ass:line_to(x(-50), y(35)) + ass:line_to(x(-85), y(35)) + if muted then + ass:move_to(x(76), y(-35)) ass:line_to(x(50), y(-9)) ass:line_to(x(24), y(-35)) + ass:line_to(x(15), y(-26)) ass:line_to(x(41), y(0)) ass:line_to(x(15), y(26)) + ass:line_to(x(24), y(35)) ass:line_to(x(50), y(9)) ass:line_to(x(76), y(35)) + ass:line_to(x(85), y(26)) ass:line_to(x(59), y(0)) ass:line_to(x(85), y(-26)) + else + ass:move_to(x(20), y(-30)) ass:line_to(x(20), y(30)) + ass:line_to(x(35), y(30)) ass:line_to(x(35), y(-30)) + + ass:move_to(x(55), y(-60)) ass:line_to(x(55), y(60)) + ass:line_to(x(70), y(60)) ass:line_to(x(70), y(-60)) + end + return ass.text +end +function icons.volume(pos_x, pos_y, size) return icons._volume(false, pos_x, pos_y, size) end +function icons.volume_muted(pos_x, pos_y, size) return icons._volume(true, pos_x, pos_y, size) end + +function icons.arrow_right(pos_x, pos_y, size) + local ass = assdraw.ass_new() + local scale = size / 200 + function x(number) return pos_x + (number * scale) end + function y(number) return pos_y + (number * scale) end + ass:move_to(x(-22), y(-80)) + ass:line_to(x(-45), y(-57)) + ass:line_to(x(12), y(0)) + ass:line_to(x(-45), y(57)) + ass:line_to(x(-22), y(80)) + ass:line_to(x(58), y(0)) + return ass.text +end + +-- STATE UPDATES + +function update_display_dimensions() + local o = mp.get_property_native('osd-dimensions') + display.width = o.w + display.height = o.h + display.aspect = o.aspect + + -- Tell elements about this + for _, element in elements:ipairs() do + if element.on_display_resize ~= nil then + element.on_display_resize(element) + end + end +end + +function update_element_cursor_proximity(element) + if cursor.hidden then + element.proximity_raw = infinity + element.proximity = 0 + else + local range = options.proximity_out - options.proximity_in + element.proximity_raw = get_point_to_rectangle_proximity(cursor, element) + element.proximity = menu:is_open() and 0 or 1 - (math.min(math.max(element.proximity_raw - options.proximity_in, 0), range) / range) + end +end + +function update_proximities() + local capture_mouse_buttons = false + local capture_wheel = false + local menu_only = menu:is_open() + local mouse_left_elements = {} + local mouse_entered_elements = {} + + -- Calculates proximities and opacities for defined elements + for _, element in elements:ipairs() do + local previous_proximity_raw = element.proximity_raw + + -- If menu is open, all other elements have to be disabled + if menu_only then + if element.name == 'menu' then + capture_mouse_buttons = true + capture_wheel = true + update_element_cursor_proximity(element) + else + element.proximity_raw = infinity + element.proximity = 0 + end + else + update_element_cursor_proximity(element) + end + + if element.proximity_raw == 0 then + -- Mouse is over element + if element.captures and element.captures.mouse_buttons then capture_mouse_buttons = true end + if element.captures and element.captures.wheel then capture_wheel = true end + + -- Mouse entered element area + if previous_proximity_raw ~= 0 then + mouse_entered_elements[#mouse_entered_elements + 1] = element + end + else + -- Mouse left element area + if previous_proximity_raw == 0 then + mouse_left_elements[#mouse_left_elements + 1] = element + end + end + end + + -- Enable key group captures elements request. + if capture_mouse_buttons then + forced_key_bindings.mouse_buttons:enable() + else + forced_key_bindings.mouse_buttons:disable() + end + if capture_wheel then + forced_key_bindings.wheel:enable() + else + forced_key_bindings.wheel:disable() + end + + -- Trigger `mouse_leave` and `mouse_enter` events + for _, element in ipairs(mouse_left_elements) do element:trigger('mouse_leave') end + for _, element in ipairs(mouse_entered_elements) do element:trigger('mouse_enter') end +end + +-- ELEMENT RENDERERS + +function render_timeline(this) + if this.size_max == 0 or state.duration == nil or state.duration == 0 or state.position == nil then return end + + local size_min = this:get_effective_size_min() + local size = this:get_effective_size() + + if size < 1 then return end + + local ass = assdraw.ass_new() + + -- Text opacity rapidly drops to 0 just before it starts overflowing, or before it reaches timeline.size_min + local hide_text_below = math.max(this.font_size * 0.7, size_min * 2) + local hide_text_ramp = hide_text_below / 2 + local text_opacity = math.max(math.min(size - hide_text_below, hide_text_ramp), 0) / hide_text_ramp + + local spacing = math.max(math.floor((this.size_max - this.font_size) / 2.5), 4) + local progress = state.position / state.duration + + -- Background bar coordinates + local bax = 0 + local bay = display.height - size - this.bottom_border - this.top_border + local bbx = display.width + local bby = display.height + + -- Foreground bar coordinates + local fax = bax + local fay = bay + this.top_border + local fbx = bbx * progress + local fby = bby - this.bottom_border + local foreground_size = bby - bay + local foreground_coordinates = fax..','..fay..','..fbx..','..fby -- for clipping + + -- Background + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..options.color_background..'\\iclip('..foreground_coordinates..')}') + ass:append(ass_opacity(math.max(options.timeline_opacity - 0.1, 0))) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw(bax, bay, bbx, bby) + ass:draw_stop() + + -- Foreground + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..options.color_foreground..'}') + ass:append(ass_opacity(options.timeline_opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw(fax, fay, fbx, fby) + ass:draw_stop() + + -- Seekable ranges + if options.timeline_cached_ranges and state.cached_ranges then + local range_height = math.max(foreground_size / 8, size_min) + local range_ay = fby - range_height + for _, range in ipairs(state.cached_ranges) do + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..options.timeline_cached_ranges.color..'}') + ass:append(ass_opacity(options.timeline_cached_ranges.opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw( + bbx * (range['start'] / state.duration), range_ay, + bbx * (range['end'] / state.duration), range_ay + range_height + ) + ass:draw_stop() + end + end + + -- Custom ranges + if state.chapter_ranges ~= nil then + for i, chapter_range in ipairs(state.chapter_ranges) do + for i, range in ipairs(chapter_range.ranges) do + local rax = display.width * (range['start'].time / state.duration) + local rbx = display.width * (range['end'].time / state.duration) + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..chapter_range.color..'}') + ass:append(ass_opacity(chapter_range.opacity)) + ass:pos(0, 0) + ass:draw_start() + -- for 1px chapter size, use the whole size of the bar including padding + if size <= 1 then + ass:rect_cw(rax, bay, rbx, bby) + else + ass:rect_cw(rax, fay, rbx, fby) + end + ass:draw_stop() + end + end + end + + -- Chapters + if options.chapters ~= 'none' and state.chapters ~= nil and #state.chapters > 0 then + local half_size = size / 2 + local dots = false + local chapter_size, chapter_y + if options.chapters == 'dots' then + dots = true + chapter_size = math.min(6, (foreground_size / 2) + 2) + chapter_y = math.min(fay + chapter_size, fay + half_size) + elseif options.chapters == 'lines' then + chapter_size = size + chapter_y = fay + (chapter_size / 2) + elseif options.chapters == 'lines-top' then + chapter_size = math.min(this.size_max / 3.5, size) + chapter_y = fay + (chapter_size / 2) + elseif options.chapters == 'lines-bottom' then + chapter_size = math.min(this.size_max / 3.5, size) + chapter_y = fay + size - (chapter_size / 2) + end + + if chapter_size ~= nil then + -- for 1px chapter size, use the whole size of the bar including padding + chapter_size = size <= 1 and foreground_size or chapter_size + local chapter_half_size = chapter_size / 2 + + for i, chapter in ipairs(state.chapters) do + local chapter_x = display.width * (chapter.time / state.duration) + local color = chapter_x > fbx and options.color_foreground or options.color_background + + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..color..'}') + ass:append(ass_opacity(options.chapters_opacity)) + ass:pos(0, 0) + ass:draw_start() + + if dots then + local bezier_stretch = chapter_size * 0.67 + ass:move_to(chapter_x - chapter_half_size, chapter_y) + ass:bezier_curve( + chapter_x - chapter_half_size, chapter_y - bezier_stretch, + chapter_x + chapter_half_size, chapter_y - bezier_stretch, + chapter_x + chapter_half_size, chapter_y + ) + ass:bezier_curve( + chapter_x + chapter_half_size, chapter_y + bezier_stretch, + chapter_x - chapter_half_size, chapter_y + bezier_stretch, + chapter_x - chapter_half_size, chapter_y + ) + else + ass:rect_cw(chapter_x, chapter_y - chapter_half_size, chapter_x + 1, chapter_y + chapter_half_size) + end + + ass:draw_stop() + end + end + end + + if text_opacity > 0 then + -- Elapsed time + if state.elapsed_seconds then + ass:new_event() + ass:append('{\\blur0\\bord0\\shad0\\1c&H'..options.color_foreground_text..'\\fn'..config.font..'\\fs'..this.font_size..bold_tag..'\\clip('..foreground_coordinates..')') + ass:append(ass_opacity(math.min(options.timeline_opacity + 0.1, 1), text_opacity)) + ass:pos(spacing, fay + (size / 2)) + ass:an(4) + ass:append(state.elapsed_time) + ass:new_event() + ass:append('{\\blur0\\bord0\\shad1\\1c&H'..options.color_background_text..'\\4c&H'..options.color_background..'\\fn'..config.font..'\\fs'..this.font_size..bold_tag..'\\iclip('..foreground_coordinates..')') + ass:append(ass_opacity(math.min(options.timeline_opacity + 0.1, 1), text_opacity)) + ass:pos(spacing, fay + (size / 2)) + ass:an(4) + ass:append(state.elapsed_time) + end + + -- Remaining time + if state.remaining_seconds then + ass:new_event() + ass:append('{\\blur0\\bord0\\shad0\\1c&H'..options.color_foreground_text..'\\fn'..config.font..'\\fs'..this.font_size..bold_tag..'\\clip('..foreground_coordinates..')') + ass:append(ass_opacity(math.min(options.timeline_opacity + 0.1, 1), text_opacity)) + ass:pos(display.width - spacing, fay + (size / 2)) + ass:an(6) + ass:append('-'..state.remaining_time) + ass:new_event() + ass:append('{\\blur0\\bord0\\shad1\\1c&H'..options.color_background_text..'\\4c&H'..options.color_background..'\\fn'..config.font..'\\fs'..this.font_size..bold_tag..'\\iclip('..foreground_coordinates..')') + ass:append(ass_opacity(math.min(options.timeline_opacity + 0.1, 1), text_opacity)) + ass:pos(display.width - spacing, fay + (size / 2)) + ass:an(6) + ass:append('-'..state.remaining_time) + end + end + + if (this.proximity_raw == 0 or this.pressed) and not (elements.speed and elements.speed.dragging) then + -- Hovered time + local hovered_seconds = state.duration * (cursor.x / display.width) + local box_half_width_guesstimate = (this.font_size * 4.2) / 2 + ass:new_event() + ass:append('{\\blur0\\bord1\\shad0\\1c&H'..options.color_background_text..'\\3c&H'..options.color_background..'\\fn'..config.font..'\\fs'..this.font_size..bold_tag..'') + ass:append(ass_opacity(math.min(options.timeline_opacity + 0.1, 1))) + ass:pos(math.min(math.max(cursor.x, box_half_width_guesstimate), display.width - box_half_width_guesstimate), fay) + ass:an(2) + ass:append(mp.format_time(hovered_seconds)) + + -- Cursor line + ass:new_event() + ass:append('{\\blur0\\bord0\\xshad-1\\yshad0\\1c&H'..options.color_foreground..'\\4c&H'..options.color_background..'}') + ass:append(ass_opacity(0.2)) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw(cursor.x, fay, cursor.x + 1, fby) + ass:draw_stop() + end + + return ass +end + +function render_top_bar(this) + local opacity = this:get_effective_proximity() + + if not this.enabled or opacity == 0 then return end + + local ass = assdraw.ass_new() + + if options.top_bar_controls then + -- Close button + local close = elements.window_controls_close + if close.proximity_raw == 0 then + -- Background on hover + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H2311e8}') + ass:append(ass_opacity(this.button_opacity, opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw(close.ax, close.ay, close.bx, close.by) + ass:draw_stop() + end + ass:new_event() + ass:append('{\\blur0\\bord1\\shad1\\3c&HFFFFFF\\4c&H000000}') + ass:append(ass_opacity(this.button_opacity, opacity)) + ass:pos(close.ax + (this.button_width / 2), (this.size / 2)) + ass:draw_start() + ass:move_to(-this.icon_size, this.icon_size) + ass:line_to(this.icon_size, -this.icon_size) + ass:move_to(-this.icon_size, -this.icon_size) + ass:line_to(this.icon_size, this.icon_size) + ass:draw_stop() + + -- Maximize button + local maximize = elements.window_controls_maximize + if maximize.proximity_raw == 0 then + -- Background on hover + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H222222}') + ass:append(ass_opacity(this.button_opacity, opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw(maximize.ax, maximize.ay, maximize.bx, maximize.by) + ass:draw_stop() + end + ass:new_event() + ass:append('{\\blur0\\bord2\\shad0\\1c\\3c&H000000}') + ass:append(ass_opacity({[3] = this.button_opacity}, opacity)) + ass:pos(maximize.ax + (this.button_width / 2), (this.size / 2)) + ass:draw_start() + ass:rect_cw(-this.icon_size + 1, -this.icon_size + 1, this.icon_size + 1, this.icon_size + 1) + ass:draw_stop() + ass:new_event() + ass:append('{\\blur0\\bord2\\shad0\\1c\\3c&HFFFFFF}') + ass:append(ass_opacity({[3] = this.button_opacity}, opacity)) + ass:pos(maximize.ax + (this.button_width / 2), (this.size / 2)) + ass:draw_start() + ass:rect_cw(-this.icon_size, -this.icon_size, this.icon_size, this.icon_size) + ass:draw_stop() + + -- Minimize button + local minimize = elements.window_controls_minimize + if minimize.proximity_raw == 0 then + -- Background on hover + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H222222}') + ass:append(ass_opacity(this.button_opacity, opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw(minimize.ax, minimize.ay, minimize.bx, minimize.by) + ass:draw_stop() + end + ass:new_event() + ass:append('{\\blur0\\bord1\\shad1\\3c&HFFFFFF\\4c&H000000}') + ass:append(ass_opacity(this.button_opacity, opacity)) + ass:append('{\\1a&HFF&}') + ass:pos(minimize.ax + (this.button_width / 2), (this.size / 2)) + ass:draw_start() + ass:move_to(-this.icon_size, 0) + ass:line_to(this.icon_size, 0) + ass:draw_stop() + end + + -- Window title + if options.top_bar_title and state.media_title then + local clip_coordinates = '0,0,'..(this.title_bx - this.spacing)..','..this.size + + ass:new_event() + ass:append('{\\q2\\blur0\\bord1\\shad0\\1c&HFFFFFF\\3c&H000000\\fn'..config.font..'\\fs'..this.font_size..bold_tag..'\\clip('..clip_coordinates..')') + ass:append(ass_opacity(1, opacity)) + ass:pos(0 + this.spacing, this.size / 2) + ass:an(4) + ass:append(state.media_title) + end + + return ass +end + +function render_volume(this) + local slider = elements.volume_slider + local opacity = this:get_effective_proximity() + + if this.width == 0 or opacity == 0 then return end + + local ass = assdraw.ass_new() + + if slider.height > 0 then + -- Background bar coordinates + local bax = slider.ax + local bay = slider.ay + local bbx = slider.bx + local bby = slider.by + + -- Foreground bar coordinates + local height_without_border = slider.height - (options.volume_border * 2) + local fax = slider.ax + options.volume_border + local fay = slider.ay + (height_without_border * (1 - math.min(state.volume / state.volume_max, 1))) + options.volume_border + local fbx = slider.bx - options.volume_border + local fby = slider.by - options.volume_border + + -- Path to draw a foreground bar with a 100% volume indicator, already + -- clipped by volume level. Can't just clip it with rectangle, as it itself + -- also needs to be used as a path to clip the background bar and volume + -- number. + local fpath = assdraw.ass_new() + fpath:move_to(fbx, fby) + fpath:line_to(fax, fby) + local nudge_bottom_y = slider.nudge_y + slider.nudge_size + if fay <= nudge_bottom_y and slider.draw_nudge then + fpath:line_to(fax, math.min(nudge_bottom_y)) + if fay <= slider.nudge_y then + fpath:line_to((fax + slider.nudge_size), slider.nudge_y) + local nudge_top_y = slider.nudge_y - slider.nudge_size + if fay <= nudge_top_y then + fpath:line_to(fax, nudge_top_y) + fpath:line_to(fax, fay) + fpath:line_to(fbx, fay) + fpath:line_to(fbx, nudge_top_y) + else + local triangle_side = fay - nudge_top_y + fpath:line_to((fax + triangle_side), fay) + fpath:line_to((fbx - triangle_side), fay) + end + fpath:line_to((fbx - slider.nudge_size), slider.nudge_y) + else + local triangle_side = nudge_bottom_y - fay + fpath:line_to((fax + triangle_side), fay) + fpath:line_to((fbx - triangle_side), fay) + end + fpath:line_to(fbx, nudge_bottom_y) + else + fpath:line_to(fax, fay) + fpath:line_to(fbx, fay) + end + fpath:line_to(fbx, fby) + + -- Background + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..options.color_background..'\\iclip('..fpath.scale..', '..fpath.text..')}') + ass:append(ass_opacity(math.max(options.volume_opacity - 0.1, 0), opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:move_to(bax, bay) + ass:line_to(bbx, bay) + local half_border = options.volume_border / 2 + if slider.draw_nudge then + ass:line_to(bbx, math.max(slider.nudge_y - slider.nudge_size + half_border, bay)) + ass:line_to(bbx - slider.nudge_size + half_border, slider.nudge_y) + ass:line_to(bbx, slider.nudge_y + slider.nudge_size - half_border) + end + ass:line_to(bbx, bby) + ass:line_to(bax, bby) + if slider.draw_nudge then + ass:line_to(bax, slider.nudge_y + slider.nudge_size - half_border) + ass:line_to(bax + slider.nudge_size - half_border, slider.nudge_y) + ass:line_to(bax, math.max(slider.nudge_y - slider.nudge_size + half_border, bay)) + end + ass:line_to(bax, bay) + ass:draw_stop() + + -- Foreground + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..options.color_foreground..'}') + ass:append(ass_opacity(options.volume_opacity, opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:append(fpath.text) + ass:draw_stop() + + -- Current volume value + local volume_string = tostring(round(state.volume * 10) / 10) + local font_size = round(((this.width * 0.6) - (#volume_string * (this.width / 20))) * options.volume_font_scale) + if fay < slider.by - slider.spacing then + ass:new_event() + ass:append('{\\blur0\\bord0\\shad0\\1c&H'..options.color_foreground_text..'\\fn'..config.font..'\\fs'..font_size..bold_tag..'\\clip('..fpath.scale..', '..fpath.text..')}') + ass:append(ass_opacity(math.min(options.volume_opacity + 0.1, 1), opacity)) + ass:pos(slider.ax + (slider.width / 2), slider.by - slider.spacing) + ass:an(2) + ass:append(volume_string) + end + if fay > slider.by - slider.spacing - font_size then + ass:new_event() + ass:append('{\\blur0\\bord0\\shad1\\1c&H'..options.color_background_text..'\\4c&H'..options.color_background..'\\fn'..config.font..'\\fs'..font_size..bold_tag..'\\iclip('..fpath.scale..', '..fpath.text..')}') + ass:append(ass_opacity(math.min(options.volume_opacity + 0.1, 1), opacity)) + ass:pos(slider.ax + (slider.width / 2), slider.by - slider.spacing) + ass:an(2) + ass:append(volume_string) + end + end + + -- Mute button + local mute = elements.volume_mute + local icon_name = state.mute and 'volume_muted' or 'volume' + ass:new_event() + ass:append(icon( + icon_name, + mute.ax + (mute.width / 2), mute.ay + (mute.height / 2), mute.width * 0.7, -- x, y, size + 0, 0, options.volume_border, -- shadow_x, shadow_y, shadow_size + 'background', options.volume_opacity * opacity -- backdrop, opacity + )) + return ass +end + +function render_speed(this) + if not this.dragging and (elements.curtain.opacity > 0) then return end + + local timeline = elements.timeline + local proximity = timeline:get_effective_proximity() + local opacity = this.forced_proximity and this.forced_proximity or (this.dragging and 1 or proximity) + + if opacity == 0 then return end + + local ass = assdraw.ass_new() + + -- Coordinates + local ax = this.ax + local ay = this.ay + timeline.size_max - timeline:get_effective_size() - timeline.top_border - timeline.bottom_border + local bx = this.bx + local by = ay + this.height + local half_width = (this.width / 2) + local half_x = ax + half_width + + -- Notches + local speed_at_center = state.speed + if this.dragging then + speed_at_center = this.dragging.start_speed + ((-this.dragging.distance / this.step_distance) * options.speed_step) + speed_at_center = math.min(math.max(speed_at_center, 0.01), 100) + end + local nearest_notch_speed = round(speed_at_center / this.notch_every) * this.notch_every + local nearest_notch_x = half_x + (((nearest_notch_speed - speed_at_center) / this.notch_every) * this.notch_spacing) + local guide_size = math.floor(this.height / 7.5) + local notch_by = by - guide_size + local notch_ay_big = ay + round(this.font_size * 1.1) + local notch_ay_medium = notch_ay_big + ((notch_by - notch_ay_big) * 0.2) + local notch_ay_small = notch_ay_big + ((notch_by - notch_ay_big) * 0.4) + local from_to_index = math.floor(this.notches / 2) + + for i = -from_to_index, from_to_index do + local notch_speed = nearest_notch_speed + (i * this.notch_every) + + if notch_speed < 0 or notch_speed > 100 then goto continue end + + local notch_x = nearest_notch_x + (i * this.notch_spacing) + local notch_thickness = 1 + local notch_ay = notch_ay_small + if (notch_speed % (this.notch_every * 10)) < 0.00000001 then + notch_ay = notch_ay_big + notch_thickness = 1 + elseif (notch_speed % (this.notch_every * 5)) < 0.00000001 then + notch_ay = notch_ay_medium + end + + ass:new_event() + ass:append('{\\blur0\\bord1\\shad0\\1c&HFFFFFF\\3c&H000000}') + ass:append(ass_opacity(math.min(1.2 - (math.abs((notch_x - ax - half_width) / half_width)), 1), opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:move_to(notch_x - notch_thickness, notch_ay) + ass:line_to(notch_x + notch_thickness, notch_ay) + ass:line_to(notch_x + notch_thickness, notch_by) + ass:line_to(notch_x - notch_thickness, notch_by) + ass:draw_stop() + + ::continue:: + end + + -- Center guide + ass:new_event() + ass:append('{\\blur0\\bord1\\shad0\\1c&HFFFFFF\\3c&H000000}') + ass:append(ass_opacity(options.speed_opacity, opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:move_to(half_x, by - 2 - guide_size) + ass:line_to(half_x + guide_size, by - 2) + ass:line_to(half_x - guide_size, by - 2) + ass:draw_stop() + + -- Speed value + local speed_text = (round(state.speed * 100) / 100)..'x' + ass:new_event() + ass:append('{\\blur0\\bord1\\shad0\\1c&H'..options.color_background_text..'\\3c&H'..options.color_background..'\\fn'..config.font..'\\fs'..this.font_size..bold_tag..'}') + ass:append(ass_opacity(options.speed_opacity, opacity)) + ass:pos(half_x, ay) + ass:an(8) + ass:append(speed_text) + + return ass +end + +function render_menu(this) + local ass = assdraw.ass_new() + + if this.parent_menu then + ass:merge(this.parent_menu:render()) + end + + -- Menu title + if this.title then + -- Background + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..options.color_background..'}') + ass:append(ass_opacity(options.menu_opacity, this.opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw(this.ax, this.ay - this.item_height, this.bx, this.ay - 1) + ass:draw_stop() + + -- Title + ass:new_event() + ass:append('{\\blur0\\bord0\\shad1\\b1\\1c&H'..options.color_background_text..'\\4c&H'..options.color_background..'\\fn'..config.font..'\\fs'..this.font_size..'\\q2\\clip('..this.ax..','..this.ay - this.item_height..','..this.bx..','..this.ay..')}') + ass:append(ass_opacity(options.menu_opacity, this.opacity)) + ass:pos(display.width / 2, this.ay - (this.item_height * 0.5)) + ass:an(5) + ass:append(this.title) + end + + local scroll_area_clip = '\\clip('..this.ax..','..this.ay..','..this.bx..','..this.by..')' + + for index, item in ipairs(this.items) do + local item_ay = this.ay - this.scroll_y + (this.item_height * (index - 1) + this.item_spacing * (index - 1)) + local item_by = item_ay + this.item_height + local item_clip = '' + + -- Clip items overflowing scroll area + if item_ay <= this.ay or item_by >= this.by then + item_clip = scroll_area_clip + end + + if item_by < this.ay or item_ay > this.by then goto continue end + + local is_active = this.active_item == index + local font_color, background_color, ass_shadow, ass_shadow_color + local icon_size = this.font_size + + if is_active then + font_color, background_color = options.color_foreground_text, options.color_foreground + ass_shadow, ass_shadow_color = '\\shad0', '' + else + font_color, background_color = options.color_background_text, options.color_background + ass_shadow, ass_shadow_color = '\\shad1', '\\4c&H'..background_color + end + + local has_submenu = item.items ~= nil + local hint_width = 0 + if item.hint then + hint_width = text_width_estimate(item.hint:len(), this.font_size) + this.item_content_spacing + elseif has_submenu then + hint_width = icon_size + this.item_content_spacing + end + + -- Background + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..background_color..item_clip..'}') + ass:append(ass_opacity(options.menu_opacity, this.opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw(this.ax, item_ay, this.bx, item_by) + ass:draw_stop() + + -- Selected highlight + if this.selected_item == index then + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..options.color_foreground..item_clip..'}') + ass:append(ass_opacity(0.1, this.opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw(this.ax, item_ay, this.bx, item_by) + ass:draw_stop() + end + + -- Title + if item.title then + item.ass_save_title = item.ass_save_title or item.title:gsub("([{}])","\\%1") + local title_clip_x = (this.bx - hint_width - this.item_content_spacing) + local title_clip = '\\clip('..this.ax..','..math.max(item_ay, this.ay)..','..title_clip_x..','..math.min(item_by, this.by)..')' + ass:new_event() + ass:append('{\\blur0\\bord0\\shad1\\1c&H'..font_color..'\\4c&H'..background_color..'\\fn'..config.font..'\\fs'..this.font_size..bold_tag..title_clip..'\\q2}') + ass:append(ass_opacity(options.menu_opacity, this.opacity)) + ass:pos(this.ax + this.item_content_spacing, item_ay + (this.item_height / 2)) + ass:an(4) + ass:append(item.ass_save_title) + end + + -- Hint + if item.hint then + item.ass_save_hint = item.ass_save_hint or item.hint:gsub("([{}])","\\%1") + ass:new_event() + ass:append('{\\blur0\\bord0'..ass_shadow..'\\1c&H'..font_color..''..ass_shadow_color..'\\fn'..config.font..'\\fs'..(this.font_size - 1)..bold_tag..item_clip..'}') + ass:append(ass_opacity(options.menu_opacity * (has_submenu and 1 or 0.5), this.opacity)) + ass:pos(this.bx - this.item_content_spacing, item_ay + (this.item_height / 2)) + ass:an(6) + ass:append(item.ass_save_hint) + elseif has_submenu then + ass:new_event() + ass:append(icon( + 'arrow_right', + this.bx - this.item_content_spacing - (icon_size / 2), -- x + item_ay + (this.item_height / 2), -- y + icon_size, -- size + 0, 0, 1, -- shadow_x, shadow_y, shadow_size + is_active and 'foreground' or 'background', this.opacity, -- backdrop, opacity + item_clip + )) + end + + ::continue:: + end + + -- Scrollbar + if this.scroll_height > 0 then + local groove_height = this.height - 2 + local thumb_height = math.max((this.height / (this.scroll_height + this.height)) * groove_height, 40) + local thumb_y = this.ay + 1 + ((this.scroll_y / this.scroll_height) * (groove_height - thumb_height)) + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..options.color_foreground..'}') + ass:append(ass_opacity(options.menu_opacity, this.opacity * 0.8)) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw(this.bx - 3, thumb_y, this.bx - 1, thumb_y + thumb_height) + ass:draw_stop() + end + + return ass +end + +-- MAIN RENDERING + +-- Request that render() is called. +-- The render is then either executed immediately, or rate-limited if it was +-- called a small time ago. +function request_render() + if state.render_timer == nil then + state.render_timer = mp.add_timeout(0, render) + end + + if not state.render_timer:is_enabled() then + local now = mp.get_time() + local timeout = config.render_delay - (now - state.render_last_time) + if timeout < 0 then + timeout = 0 + end + state.render_timer.timeout = timeout + state.render_timer:resume() + end +end + +function render() + state.render_last_time = mp.get_time() + + -- Actual rendering + local ass = assdraw.ass_new() + + for _, element in elements.ipairs() do + local result = element:maybe('render') + if result then + ass:new_event() + ass:merge(result) + end + end + + -- submit + if osd.res_x == display.width and osd.res_y == display.height and osd.data == ass.text then + return + end + + osd.res_x = display.width + osd.res_y = display.height + osd.data = ass.text + osd.z = 2000 + osd:update() +end + +-- STATIC ELEMENTS + +if itable_find({'flash', 'static'}, options.pause_indicator) then + elements:add('pause_indicator', Element.new({ + base_icon_opacity = options.pause_indicator == 'flash' and 1 or 0.8, + paused = false, + is_flash = options.pause_indicator == 'flash', + is_static = options.pause_indicator == 'static', + opacity = 0, + init = function(this) + local initial_call = true + mp.observe_property('pause', 'bool', function(_, paused) + if initial_call then + initial_call = false + return + end + + this.paused = paused + + if options.pause_indicator == 'flash' then + this.opacity = 1 + this:tween_property('opacity', 1, 0, 0.15) + else + this.opacity = paused and 1 or 0 + request_render() + end + + end) + end, + render = function(this) + if this.opacity == 0 then return end + + local ass = assdraw.ass_new() + + -- Background fadeout + if this.is_static then + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..options.color_background..'}') + ass:append(ass_opacity(0.3, this.opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw(0, 0, display.width, display.height) + ass:draw_stop() + end + + -- Icon + local size = round((math.min(display.width, display.height) * (this.is_static and 0.20 or 0.15)) / 2) + + size = size + size * (1 - this.opacity) + + if this.paused then + ass:new_event() + ass:append('{\\blur0\\bord1\\1c&H'..options.color_foreground..'\\3c&H'..options.color_background..'}') + ass:append(ass_opacity(this.base_icon_opacity, this.opacity)) + ass:pos(display.width / 2, display.height / 2) + ass:draw_start() + ass:rect_cw(-size, -size, -size / 3, size) + ass:draw_stop() + + ass:new_event() + ass:append('{\\blur0\\bord1\\1c&H'..options.color_foreground..'\\3c&H'..options.color_background..'}') + ass:append(ass_opacity(this.base_icon_opacity, this.opacity)) + ass:pos(display.width / 2, display.height / 2) + ass:draw_start() + ass:rect_cw(size / 3, -size, size, size) + ass:draw_stop() + elseif this.is_flash then + ass:new_event() + ass:append('{\\blur0\\bord1\\1c&H'..options.color_foreground..'\\3c&H'..options.color_background..'}') + ass:append(ass_opacity(this.base_icon_opacity, this.opacity)) + ass:pos(display.width / 2, display.height / 2) + ass:draw_start() + ass:move_to(-size * 0.6, -size) + ass:line_to(size, 0) + ass:line_to(-size * 0.6, size) + ass:draw_stop() + end + + return ass + end + })) +end +elements:add('timeline', Element.new({ + captures = {mouse_buttons = true, wheel = true}, + pressed = false, + size_max = 0, size_min = 0, -- set in `on_display_resize` handler based on `state.fullscreen` + size_min_override = options.timeline_start_hidden and 0 or nil, -- used for toggle-progress command + font_size = 0, -- calculated in on_display_resize + top_border = options.timeline_border, + bottom_border = 0, -- set dynamically in `border` property observer + init = function(this) + -- Toggle 1px bottom border for timeline in no-border mode + mp.observe_property('border', 'bool', function(_, border) + this.bottom_border = not border and options.timeline_border or 0 + request_render() + end) + end, + get_effective_proximity = function(this) + if (elements.volume_slider and elements.volume_slider.pressed) then return 0 end + if this.pressed then return 1 end + return this.forced_proximity and this.forced_proximity or this.proximity + end, + get_effective_size_min = function(this) + return this.size_min_override or this.size_min + end, + get_effective_size = function(this) + if elements.speed and elements.speed.dragging then return this.size_max end + local size_min = this:get_effective_size_min() + return size_min + math.ceil((this.size_max - size_min) * this:get_effective_proximity()) + end, + on_display_resize = function(this) + if state.fullscreen or state.maximized then + this.size_min = options.timeline_size_min_fullscreen + this.size_max = options.timeline_size_max_fullscreen + else + this.size_min = options.timeline_size_min + this.size_max = options.timeline_size_max + end + this.font_size = math.floor(math.min((this.size_max + 60) * 0.2, this.size_max * 0.96) * options.timeline_font_scale) + this.ax = 0 + this.ay = display.height - this.size_max - this.top_border - this.bottom_border + this.bx = display.width + this.by = display.height + end, + set_from_cursor = function(this) + mp.commandv('seek', ((cursor.x / display.width) * 100), 'absolute-percent+exact') + end, + on_mbtn_left_down = function(this) + this.pressed = true + this:set_from_cursor() + end, + on_global_mbtn_left_up = function(this) this.pressed = false end, + on_global_mouse_leave = function(this) this.pressed = false end, + on_global_mouse_move = function(this) + if this.pressed then this:set_from_cursor() end + end, + on_wheel_up = function(this) + if options.timeline_step > 0 then mp.commandv('seek', -options.timeline_step) end + end, + on_wheel_down = function(this) + if options.timeline_step > 0 then mp.commandv('seek', options.timeline_step) end + end, + render = render_timeline, +})) +if options.top_bar_controls or options.top_bar_title then + elements:add('top_bar', Element.new({ + button_opacity = 0.8, + enabled = false, + init = function(this) + mp.observe_property('border', 'bool', function(_, border) + this.enabled = not border + end) + end, + get_effective_proximity = function(this) + if (elements.volume_slider and elements.volume_slider.pressed) or elements.curtain.opacity > 0 then return 0 end + return this.forced_proximity and this.forced_proximity or this.proximity + end, + on_display_resize = function(this) + this.size = (state.fullscreen or state.maximized) and options.top_bar_size_fullscreen or options.top_bar_size + this.icon_size = round(this.size / 8) + this.spacing = math.ceil(this.size * 0.25) + this.font_size = math.floor(this.size - (this.spacing * 2)) + this.button_width = round(this.size * 1.15) + this.title_bx = display.width - (options.top_bar_controls and (this.button_width * 3) or 0) + this.ax = options.top_bar_title and 0 or this.title_bx + this.ay = 0 + this.bx = display.width + this.by = this.size + end, + render = render_top_bar, + })) +end +if options.top_bar_controls then + elements:add('window_controls_minimize', Element.new({ + captures = {mouse_buttons = true}, + on_display_resize = function(this) + this.ax = display.width - (elements.top_bar.button_width * 3) + this.ay = 0 + this.bx = this.ax + elements.top_bar.button_width + this.by = elements.top_bar.size + end, + on_mbtn_left_down = function() mp.commandv('cycle', 'window-minimized') end + })) + elements:add('window_controls_maximize', Element.new({ + captures = {mouse_buttons = true}, + on_display_resize = function(this) + this.ax = display.width - (elements.top_bar.button_width * 2) + this.ay = 0 + this.bx = this.ax + elements.top_bar.button_width + this.by = elements.top_bar.size + end, + on_mbtn_left_down = function() mp.commandv('cycle', 'window-maximized') end + })) + elements:add('window_controls_close', Element.new({ + captures = {mouse_buttons = true}, + on_display_resize = function(this) + this.ax = display.width - elements.top_bar.button_width + this.ay = 0 + this.bx = this.ax + elements.top_bar.button_width + this.by = elements.top_bar.size + end, + on_mbtn_left_down = function() mp.commandv('quit') end + })) +end +if itable_find({'left', 'right'}, options.volume) then + elements:add('volume', Element.new({ + width = nil, -- set in `on_display_resize` handler based on `state.fullscreen` + height = nil, -- set in `on_display_resize` handler based on `state.fullscreen` + margin = nil, -- set in `on_display_resize` handler based on `state.fullscreen` + get_effective_proximity = function(this) + if elements.volume_slider.pressed then return 1 end + if elements.timeline.proximity_raw == 0 or elements.curtain.opacity > 0 then return 0 end + return this.forced_proximity and this.forced_proximity or this.proximity + end, + on_display_resize = function(this) + this.width = (state.fullscreen or state.maximized) and options.volume_size_fullscreen or options.volume_size + this.height = round(math.min(this.width * 8, (elements.timeline.ay - elements.top_bar.size) * 0.8)) + -- Don't bother rendering this if too small + if this.height < (this.width * 2) then + this.height = 0 + end + this.margin = this.width / 2 + this.ax = round(options.volume == 'left' and this.margin or display.width - this.margin - this.width) + this.ay = round((display.height - this.height) / 2) + this.bx = round(this.ax + this.width) + this.by = round(this.ay + this.height) + end, + render = render_volume, + })) + elements:add('volume_mute', Element.new({ + captures = {mouse_buttons = true}, + width = 0, + height = 0, + on_display_resize = function(this) + this.width = elements.volume.width + this.height = this.width + this.ax = elements.volume.ax + this.ay = elements.volume.by - this.height + this.bx = elements.volume.bx + this.by = elements.volume.by + end, + on_mbtn_left_down = function(this) mp.commandv('cycle', 'mute') end + })) + elements:add('volume_slider', Element.new({ + captures = {mouse_buttons = true, wheel = true}, + pressed = false, + width = 0, + height = 0, + nudge_y = 0, -- vertical position where volume overflows 100 + nudge_size = nil, -- set on resize + font_size = nil, + spacing = nil, + on_display_resize = function(this) + this.ax = elements.volume.ax + this.ay = elements.volume.ay + this.bx = elements.volume.bx + this.by = elements.volume_mute.ay + this.width = this.bx - this.ax + this.height = this.by - this.ay + this.nudge_y = this.by - round(this.height * (100 / state.volume_max)) + this.nudge_size = round(elements.volume.width * 0.18) + this.draw_nudge = this.ay < this.nudge_y + this.spacing = round(this.width * 0.2) + end, + set_from_cursor = function(this) + local volume_fraction = (this.by - cursor.y - options.volume_border) / (this.height - options.volume_border) + local new_volume = math.min(math.max(volume_fraction, 0), 1) * state.volume_max + new_volume = round(new_volume / options.volume_step) * options.volume_step + if state.volume ~= new_volume then mp.commandv('set', 'volume', math.min(new_volume, state.volume_max)) end + end, + on_mbtn_left_down = function(this) + this.pressed = true + this:set_from_cursor() + end, + on_global_mbtn_left_up = function(this) this.pressed = false end, + on_global_mouse_leave = function(this) this.pressed = false end, + on_global_mouse_move = function(this) + if this.pressed then this:set_from_cursor() end + end, + on_wheel_up = function(this) + local current_rounded_volume = round(state.volume / options.volume_step) * options.volume_step + mp.commandv('set', 'volume', math.min(current_rounded_volume + options.volume_step, state.volume_max)) + end, + on_wheel_down = function(this) + local current_rounded_volume = round(state.volume / options.volume_step) * options.volume_step + mp.commandv('set', 'volume', math.min(current_rounded_volume - options.volume_step, state.volume_max)) + end, + })) +end +if options.speed then + elements:add('speed', Element.new({ + captures = {mouse_buttons = true, wheel = true}, + dragging = nil, + width = 0, + height = 0, + notches = 10, + notch_every = 0.1, + step_distance = nil, + font_size = nil, + init = function(this) + -- Fade out/in on timeline mouse enter/leave + elements.timeline:on('mouse_enter', function() + if not this.dragging then this:fadeout() end + end) + elements.timeline:on('mouse_leave', function() + if not this.dragging then this:fadein() end + end) + end, + fadeout = function(this) + this:tween_property('forced_proximity', 1, 0, function(this) + this.forced_proximity = 0 + end) + end, + fadein = function(this) + local get_current_proximity = function() return this.proximity end + this:tween_property('forced_proximity', 0, get_current_proximity, function(this) + this.forced_proximity = nil + end) + end, + on_display_resize = function(this) + this.height = (state.fullscreen or state.maximized) and options.speed_size_fullscreen or options.speed_size + this.width = round(this.height * 3.6) + this.notch_spacing = this.width / this.notches + this.step_distance = this.notch_spacing * (options.speed_step / this.notch_every) + this.ax = (display.width - this.width) / 2 + this.by = display.height - elements.timeline.size_max + this.ay = this.by - this.height + this.bx = this.ax + this.width + this.font_size = round(this.height * 0.48 * options.speed_font_scale) + end, + set_from_cursor = function(this) + local volume_fraction = (this.by - cursor.y - options.volume_border) / (this.height - options.volume_border) + local new_volume = math.min(math.max(volume_fraction, 0), 1) * state.volume_max + new_volume = round(new_volume / options.volume_step) * options.volume_step + if state.volume ~= new_volume then mp.commandv('set', 'volume', new_volume) end + end, + on_mbtn_left_down = function(this) + this:tween_stop() -- Stop and cleanup possible ongoing animations + this.dragging = { + start_time = mp.get_time(), + start_x = cursor.x, + distance = 0, + start_speed = state.speed + } + end, + on_global_mouse_move = function(this) + if not this.dragging then return end + + this.dragging.distance = cursor.x - this.dragging.start_x + local steps_dragged = round(-this.dragging.distance / this.step_distance) + local new_speed = this.dragging.start_speed + (steps_dragged * options.speed_step) + mp.set_property_native('speed', round(new_speed * 100) / 100) + end, + on_mbtn_left_up = function(this) + -- Reset speed on short clicks + if this.dragging and math.abs(this.dragging.distance) < 6 and mp.get_time() - this.dragging.start_time < 0.15 then + mp.set_property_native('speed', 1) + end + end, + on_global_mbtn_left_up = function(this) + if this.dragging and elements.timeline.proximity_raw == 0 then + this:fadeout() + end + this.dragging = nil + request_render() + end, + on_global_mouse_leave = function(this) + this.dragging = nil + request_render() + end, + on_wheel_up = function(this) + mp.set_property_native('speed', state.speed - options.speed_step) + end, + on_wheel_down = function(this) + mp.set_property_native('speed', state.speed + options.speed_step) + end, + render = render_speed, + })) +end +elements:add('curtain', Element.new({ + opacity = 0, + fadeout = function(this) + this:tween_property('opacity', this.opacity, 0); + end, + fadein = function(this) + this:tween_property('opacity', this.opacity, 1); + end, + render = function(this) + if this.opacity > 0 then + local ass = assdraw.ass_new() + ass:new_event() + ass:append('{\\blur0\\bord0\\1c&H'..options.color_background..'}') + ass:append(ass_opacity(0.4, this.opacity)) + ass:pos(0, 0) + ass:draw_start() + ass:rect_cw(0, 0, display.width, display.height) + ass:draw_stop() + return ass + end + end +})) + +-- CHAPTERS SERIALIZATION + +-- Parse `chapter_ranges` option into workable data structure +for _, definition in ipairs(split(options.chapter_ranges, ' *,+ *')) do + local start_patterns, color, opacity, end_patterns = string.match(definition, '([^<]+)<(%x%x%x%x%x%x):(%d?%.?%d*)>([^>]+)') + + -- Invalid definition + if start_patterns == nil then goto continue end + + start_patterns = start_patterns:lower() + end_patterns = end_patterns:lower() + local uses_bof = start_patterns:find('{bof}') ~= nil + local uses_eof = end_patterns:find('{eof}') ~= nil + local chapter_range = { + start_patterns = split(start_patterns, '|'), + end_patterns = split(end_patterns, '|'), + color = color, + opacity = tonumber(opacity), + ranges = {} + } + + -- Filter out special keywords so we don't use them when matching titles + if uses_bof then + chapter_range.start_patterns = itable_remove(chapter_range.start_patterns, '{bof}') + end + if uses_eof and chapter_range.end_patterns then + chapter_range.end_patterns = itable_remove(chapter_range.end_patterns, '{eof}') + end + + chapter_range['serialize'] = function (chapters) + chapter_range.ranges = {} + local current_range = nil + -- bof and eof should be used only once per timeline + -- eof is only used when last range is missing end + local bof_used = false + + function start_range(chapter) + -- If there is already a range started, should we append or overwrite? + -- I chose overwrite here. + current_range = {['start'] = chapter} + end + + function end_range(chapter) + current_range['end'] = chapter + chapter_range.ranges[#chapter_range.ranges + 1] = current_range + -- Mark both chapter objects + current_range['start']._uosc_used_as_range_point = true + current_range['end']._uosc_used_as_range_point = true + -- Clear for next range + current_range = nil + end + + for _, chapter in ipairs(chapters) do + if type(chapter.title) == 'string' then + local lowercase_title = chapter.title:lower() + local is_end = false + local is_start = false + + -- Is ending check and handling + if chapter_range.end_patterns then + for _, end_pattern in ipairs(chapter_range.end_patterns) do + is_end = is_end or lowercase_title:find(end_pattern) ~= nil + end + + if is_end then + if current_range == nil and uses_bof and not bof_used then + bof_used = true + start_range({time = 0}) + end + if current_range ~= nil then + end_range(chapter) + else + is_end = false + end + end + end + + -- Is start check and handling + for _, start_pattern in ipairs(chapter_range.start_patterns) do + is_start = is_start or lowercase_title:find(start_pattern) ~= nil + end + + if is_start then start_range(chapter) end + end + end + + -- If there is an unfinished range and range type accepts eof, use it + if current_range ~= nil and uses_eof then + end_range({time = state.duration or infinity}) + end + end + + state.chapter_ranges = state.chapter_ranges or {} + state.chapter_ranges[#state.chapter_ranges + 1] = chapter_range + + ::continue:: +end + +function parse_chapters() + -- Sometimes state.duration is not initialized yet for some reason + state.duration = mp.get_property_native('duration') + + local chapters = get_normalized_chapters() + + if not chapters or not state.duration then return end + + -- Reset custom ranges + for _, chapter_range in ipairs(state.chapter_ranges or {}) do + chapter_range.serialize(chapters) + end + + -- Filter out chapters that were used as ranges + state.chapters = itable_remove(chapters, function(chapter) + return chapter._uosc_used_as_range_point == true + end) + + request_render() +end + +-- CONTEXT MENU SERIALIZATION + +state.context_menu_items = (function() + local input_conf_path = mp.command_native({'expand-path', '~~/input.conf'}) + local input_conf_meta, meta_error = utils.file_info(input_conf_path) + + -- File doesn't exist + if not input_conf_meta or not input_conf_meta.is_file then return end + + local items = {} + local items_by_command = {} + local submenus_by_id = {} + + for line in io.lines(input_conf_path) do + local key, command, title = string.match(line, ' *([%S]+) +(.*) #! *(.*)') + if key then + local is_dummy = key:sub(1, 1) == '#' + local submenu_id = '' + local target_menu = items + local title_parts = split(title or '', ' *> *') + + for index, title_part in ipairs(#title_parts > 0 and title_parts or {''}) do + if index < #title_parts then + submenu_id = submenu_id .. title_part + + if not submenus_by_id[submenu_id] then + submenus_by_id[submenu_id] = {title = title_part, items = {}} + target_menu[#target_menu + 1] = submenus_by_id[submenu_id] + end + + target_menu = submenus_by_id[submenu_id].items + else + -- If command is already in menu, just append the key to it + if items_by_command[command] then + items_by_command[command].hint = items_by_command[command].hint..', '..key + else + items_by_command[command] = { + title = title_part, + hint = not is_dummy and key or nil, + value = command + } + target_menu[#target_menu + 1] = items_by_command[command] + end + end + end + end + end + + if #items > 0 then return items end +end)() + +-- EVENT HANDLERS + +function create_state_setter(name) + return function(_, value) + state[name] = value + dispatch_event_to_elements('prop_'..name, value) + request_render() + end +end + +function dispatch_event_to_elements(name, ...) + for _, element in pairs(elements) do + if element.proximity_raw == 0 then + element:maybe('on_'..name, ...) + end + element:maybe('on_global_'..name, ...) + end +end + +function create_event_to_elements_dispatcher(name, ...) + return function(...) dispatch_event_to_elements(name, ...) end +end + +function handle_mouse_leave() + -- Slowly fadeout elements that are currently visible + for _, element_name in ipairs({'timeline', 'volume', 'top_bar'}) do + local element = elements[element_name] + if element and element.proximity > 0 then + element:tween_property('forced_proximity', element:get_effective_proximity(), 0, function() + element.forced_proximity = nil + end) + end + end + + cursor.hidden = true + update_proximities() + dispatch_event_to_elements('mouse_leave') +end + +function handle_mouse_enter() + cursor.hidden = false + cursor.x, cursor.y = mp.get_mouse_pos() + tween_element_stop(state) + dispatch_event_to_elements('mouse_enter') +end + +function handle_mouse_move() + -- Handle case when we are in cursor hidden state but not left the actual + -- window (i.e. when autohide simulates mouse_leave). + if cursor.hidden then + handle_mouse_enter() + return + end + + cursor.x, cursor.y = mp.get_mouse_pos() + update_proximities() + dispatch_event_to_elements('mouse_move') + request_render() + + -- Restart timer that hides UI when mouse is autohidden + if options.autohide then + state.cursor_autohide_timer:kill() + state.cursor_autohide_timer:resume() + end +end + +function navigate_directory(direction) + local path = mp.get_property_native("path") + + if not path or is_protocol(path) then return end + + local next_file = get_adjacent_file(path, direction, options.media_types) + + if next_file then + mp.commandv("loadfile", utils.join_path(serialize_path(path).dirname, next_file)) + end +end + +function load_file_in_current_directory(index) + local path = mp.get_property_native("path") + + if not path or is_protocol(path) then return end + + local dirname = serialize_path(path).dirname + local files = get_files_in_directory(dirname, options.media_types) + + if not files then return end + if index < 0 then index = #files + index + 1 end + + if files[index] then + mp.commandv("loadfile", utils.join_path(dirname, files[index])) + end +end + +-- MENUS + +function create_select_tracklist_type_menu_opener(menu_title, track_type, track_prop) + return function() + if menu:is_open(track_type) then menu:close() return end + + local items = {} + local active_item = nil + + for index, track in ipairs(mp.get_property_native('track-list')) do + if track.type == track_type then + if track.selected then active_item = track.id end + + items[#items + 1] = { + title = (track.title and track.title or 'Track '..track.id), + hint = track.lang and track.lang:upper() or nil, + value = track.id + } + end + end + + -- Add option to disable a subtitle track. This works for all tracks, + -- but why would anyone want to disable audio or video? Better to not + -- let people mistakenly select what is unwanted 99.999% of the time. + -- If I'm mistaken and there is an active need for this, feel free to + -- open an issue. + if track_type == 'sub' then + active_item = active_item and active_item + 1 or 1 + table.insert(items, 1, {hint = 'disabled', value = nil}) + end + + menu:open(items, function(id) + mp.commandv('set', track_prop, id and id or 'no') + + -- If subtitle track was selected, assume user also wants to see it + if id and track_type == 'sub' then + mp.commandv('set', 'sub-visibility', 'yes') + end + + menu:close() + end, {type = track_type, title = menu_title, active_item = active_item}) + end +end + +-- `menu_options`: +-- **allowed_types** - table with file extensions to display +-- **active_path** - full path of a file to preselect +-- Rest of the options are passed to `menu:open()` +function open_file_navigation_menu(directory, handle_select, menu_options) + directory = serialize_path(directory) + local directories, error = utils.readdir(directory.path, 'dirs') + local files, error = get_files_in_directory(directory.path, menu_options.allowed_types) + + if not files or not directories then + msg.error('Retrieving files from '..directory..' failed: '..(error or '')) + return + end + + -- Files are already sorted + table.sort(directories, word_order_comparator) + + -- Pre-populate items with parent directory selector if not at root + local items = not directory.dirname and {} or { + {title = '..', hint = 'parent dir', value = directory.dirname} + } + + for _, dir in ipairs(directories) do + local serialized = serialize_path(utils.join_path(directory.path, dir)) + items[#items + 1] = {title = serialized.basename, value = serialized.path, hint = '/'} + end + + menu_options.active_item = nil + + for _, file in ipairs(files) do + local serialized = serialize_path(utils.join_path(directory.path, file)) + local item_index = #items + 1 + + items[item_index] = { + title = serialized.basename, + value = serialized.path, + } + + if menu_options.active_path == serialized.path then + menu_options.active_item = item_index + end + end + + menu_options.title = directory.basename..'/' + + menu:open(items, function(path) + local meta, error = utils.file_info(path) + + if not meta then + msg.error('Retrieving file info for '..path..' failed: '..(error or '')) + return + end + + if meta.is_dir then + open_file_navigation_menu(path, handle_select, menu_options) + else + handle_select(path) + menu:close() + end + end, menu_options) +end + +-- VALUE SERIALIZATION/NORMALIZATION + +options.proximity_out = math.max(options.proximity_out, options.proximity_in + 1) +options.chapters = itable_find({'dots', 'lines', 'lines-top', 'lines-bottom'}, options.chapters) and options.chapters or 'none' +options.media_types = split(options.media_types, ' *, *') +options.subtitle_types = split(options.subtitle_types, ' *, *') +options.timeline_cached_ranges = (function() + if options.timeline_cached_ranges == '' or options.timeline_cached_ranges == 'no' then return nil end + local parts = split(options.timeline_cached_ranges, ':') + return parts[1] and {color = parts[1], opacity = tonumber(parts[2])} or nil +end)() + +-- HOOKS +mp.register_event('file-loaded', parse_chapters) +mp.observe_property('chapter-list', 'native', parse_chapters) +mp.observe_property('duration', 'number', create_state_setter('duration')) +mp.observe_property('media-title', 'string', create_state_setter('media_title')) +mp.observe_property('fullscreen', 'bool', create_state_setter('fullscreen')) +mp.observe_property('window-maximized', 'bool', create_state_setter('maximized')) +mp.observe_property('idle-active', 'bool', create_state_setter('idle')) +mp.observe_property('speed', 'number', create_state_setter('speed')) +mp.observe_property('pause', 'bool', create_state_setter('pause')) +mp.observe_property('volume', 'number', create_state_setter('volume')) +mp.observe_property('volume-max', 'number', create_state_setter('volume_max')) +mp.observe_property('mute', 'bool', create_state_setter('mute')) +mp.observe_property('playback-time', 'number', function(name, val) + -- Ignore the initial call with nil value + if val == nil then return end + + state.position = val + state.elapsed_seconds = val + state.elapsed_time = state.elapsed_seconds and mp.format_time(state.elapsed_seconds) or nil + state.remaining_seconds = mp.get_property_native('playtime-remaining') + state.remaining_time = state.remaining_seconds and mp.format_time(state.remaining_seconds) or nil + + request_render() +end) +mp.observe_property('osd-dimensions', 'native', function(name, val) + update_display_dimensions() + request_render() +end) +mp.observe_property('demuxer-cache-state', 'native', function(prop, cache_state) + if cache_state == nil then + state.cached_ranges = nil + return + end + local cache_ranges = cache_state['seekable-ranges'] + state.cached_ranges = #cache_ranges > 0 and cache_ranges or nil +end) + +-- CONTROLS + +-- Mouse movement key binds +local base_keybinds = { + {'mouse_move', handle_mouse_move}, + {'mouse_leave', handle_mouse_leave}, + {'mouse_enter', handle_mouse_enter}, +} +if options.pause_on_click_shorter_than > 0 then + -- Cycles pause when click is shorter than `options.pause_on_click_shorter_than` + -- while filtering out double clicks. + local duration_seconds = options.pause_on_click_shorter_than / 1000 + local last_down_event; + local click_timer = mp.add_timeout(duration_seconds, function() + mp.command('cycle pause') + end); + click_timer:kill() + base_keybinds[#base_keybinds + 1] = {'mbtn_left', function() + if mp.get_time() - last_down_event < duration_seconds then + click_timer:resume() + end + end, function() + if click_timer:is_enabled() then + click_timer:kill() + last_down_event = 0 + else + last_down_event = mp.get_time() + end + end + } +end +mp.set_key_bindings(base_keybinds, 'mouse_movement', 'force') +mp.enable_key_bindings('mouse_movement', 'allow-vo-dragging+allow-hide-cursor') + +-- Context based key bind groups + +forced_key_bindings = (function() + mp.set_key_bindings({ + {'mbtn_left', create_event_to_elements_dispatcher('mbtn_left_up'), create_event_to_elements_dispatcher('mbtn_left_down')}, + {'mbtn_left_dbl', 'ignore'}, + }, 'mouse_buttons', 'force') + mp.set_key_bindings({ + {'wheel_up', create_event_to_elements_dispatcher('wheel_up')}, + {'wheel_down', create_event_to_elements_dispatcher('wheel_down')}, + }, 'wheel', 'force') + + local groups = {} + for _, group in ipairs({'mouse_buttons', 'wheel'}) do + groups[group] = { + is_enabled = false, + enable = function(this) + if this.is_enabled then return end + this.is_enabled = true + mp.enable_key_bindings(group) + end, + disable = function(this) + if not this.is_enabled then return end + this.is_enabled = false + mp.disable_key_bindings(group) + end, + } + end + return groups +end)() + +-- KEY BINDABLE FEATURES + +mp.add_key_binding(nil, 'peek-timeline', function() + if elements.timeline.proximity > 0.5 then + elements.timeline:tween_property('proximity', elements.timeline.proximity, 0) + else + elements.timeline:tween_property('proximity', elements.timeline.proximity, 1) + end +end) +mp.add_key_binding(nil, 'toggle-progress', function() + local timeline = elements.timeline + if timeline.size_min_override then + timeline:tween_property('size_min_override', timeline.size_min_override, timeline.size_min, function() + timeline.size_min_override = nil + end) + else + timeline:tween_property('size_min_override', timeline.size_min, 0) + end +end) +mp.add_key_binding(nil, 'flash-timeline', function() + elements.timeline:flash() +end) +mp.add_key_binding(nil, 'flash-volume', function() + if elements.volume then elements.volume:flash() end +end) +mp.add_key_binding(nil, 'flash-speed', function() + if elements.speed then elements.speed:flash() end +end) +mp.add_key_binding(nil, 'menu', function() + if menu:is_open('menu') then + menu:close() + elseif state.context_menu_items then + menu:open(state.context_menu_items, function(command) + mp.command(command) + end, {type = 'menu'}) + end +end) +mp.add_key_binding(nil, 'load-subtitles', function() + if menu:is_open('load-subtitles') then menu:close() return end + + local path = mp.get_property_native('path') + if path and not is_protocol(path) then + open_file_navigation_menu( + serialize_path(path).dirname, + function(path) mp.commandv('sub-add', path) end, + { + type = 'load-subtitles', + allowed_types = options.subtitle_types + } + ) + end +end) +mp.add_key_binding(nil, 'subtitles', create_select_tracklist_type_menu_opener('Subtitles', 'sub', 'sid')) +mp.add_key_binding(nil, 'audio', create_select_tracklist_type_menu_opener('Audio', 'audio', 'aid')) +mp.add_key_binding(nil, 'video', create_select_tracklist_type_menu_opener('Video', 'video', 'vid')) +mp.add_key_binding(nil, 'playlist', function() + if menu:is_open('playlist') then menu:close() return end + + function serialize_playlist() + local pos = mp.get_property_number('playlist-pos-1', 0) + local items = {} + local active_item + for index, item in ipairs(mp.get_property_native('playlist')) do + local is_url = item.filename:find('://') + items[index] = { + title = is_url and item.filename or serialize_path(item.filename).basename, + hint = tostring(index), + value = index + } + + if index == pos then active_item = index end + end + return items, active_item + end + + -- Update active index and playlist content on playlist changes + function handle_playlist_change() + if menu:is_open('playlist') then + local items, active_item = serialize_playlist() + elements.menu:set_items(items, { + active_item = active_item, + selected_item = active_item + }) + end + end + + local items, active_item = serialize_playlist() + + menu:open(items, function(index) + mp.commandv('set', 'playlist-pos-1', tostring(index)) + end, { + type = 'playlist', + title = 'Playlist', + active_item = active_item, + on_open = function() + mp.observe_property('playlist', 'native', handle_playlist_change) + mp.observe_property('playlist-pos-1', 'native', handle_playlist_change) + end, + on_close = function() + mp.unobserve_property(handle_playlist_change) + end, + }) +end) +mp.add_key_binding(nil, 'chapters', function() + if menu:is_open('chapters') then menu:close() return end + + local items = {} + local chapters = get_normalized_chapters() + + for index, chapter in ipairs(chapters) do + items[#items + 1] = { + title = chapter.title or '', + hint = mp.format_time(chapter.time), + value = chapter.time + } + end + + -- Select first chapter from the end with time lower + -- than current playing position (with 100ms leeway). + function get_selected_chapter_index() + local position = mp.get_property_native('playback-time') + if not position then return nil end + for index = #items, 1, -1 do + if position - 0.1 > items[index].value then return index end + end + end + + -- Update selected chapter in chapter navigation menu + function seek_handler() + if menu:is_open('chapters') then + elements.menu:activate_index(get_selected_chapter_index()) + end + end + + menu:open(items, function(time) + mp.commandv('seek', tostring(time), 'absolute') + end, { + type = 'chapters', + title = 'Chapters', + active_item = get_selected_chapter_index(), + on_open = function() mp.register_event('seek', seek_handler) end, + on_close = function() mp.unregister_event(seek_handler) end + }) +end) +mp.add_key_binding(nil, 'show-in-directory', function() + local path = mp.get_property_native('path') + + -- Ignore URLs + if not path or is_protocol(path) then return end + + path = normalize_path(path) + + if state.os == 'windows' then + utils.subprocess_detached({args = {'explorer', '/select,', path}, cancellable = false}) + elseif state.os == 'macos' then + utils.subprocess_detached({args = {'open', '-R', path}, cancellable = false}) + elseif state.os == 'linux' then + local result = utils.subprocess({args = {'nautilus', path}, cancellable = false}) + + -- Fallback opens the folder with xdg-open instead + if result.status ~= 0 then + utils.subprocess({args = {'xdg-open', serialize_path(path).dirname}, cancellable = false}) + end + end +end) +mp.add_key_binding(nil, 'open-file', function() + if menu:is_open('open-file') then menu:close() return end + + local path = mp.get_property_native('path') + local directory + local active_file + + if path == nil or is_protocol(path) then + local path = serialize_path(mp.command_native({'expand-path', '~/'})) + directory = path.path + active_file = nil + else + local path = serialize_path(path) + directory = path.dirname + active_file = path.path + end + + -- Update selected file in directory navigation menu + function handle_file_loaded() + if menu:is_open('open-file') then + local path = normalize_path(mp.get_property_native('path')) + elements.menu:activate_value(path) + elements.menu:select_value(path) + end + end + + open_file_navigation_menu( + directory, + function(path) mp.commandv('loadfile', path) end, + { + type = 'open-file', + allowed_types = options.media_types, + active_path = active_file, + on_open = function() mp.register_event('file-loaded', handle_file_loaded) end, + on_close = function() mp.unregister_event(handle_file_loaded) end, + } + ) +end) +mp.add_key_binding(nil, 'next', function() + if mp.get_property_native('playlist-count') > 1 then + mp.command('playlist-next') + else + navigate_directory('forward') + end +end) +mp.add_key_binding(nil, 'prev', function() + if mp.get_property_native('playlist-count') > 1 then + mp.command('playlist-prev') + else + navigate_directory('backward') + end +end) +mp.add_key_binding(nil, 'next-file', function() navigate_directory('forward') end) +mp.add_key_binding(nil, 'prev-file', function() navigate_directory('backward') end) +mp.add_key_binding(nil, 'first', function() + if mp.get_property_native('playlist-count') > 1 then + mp.commandv('set', 'playlist-pos-1', '1') + else + load_file_in_current_directory(1) + end +end) +mp.add_key_binding(nil, 'last', function() + local playlist_count = mp.get_property_native('playlist-count') + if playlist_count > 1 then + mp.commandv('set', 'playlist-pos-1', tostring(playlist_count)) + else + load_file_in_current_directory(-1) + end +end) +mp.add_key_binding(nil, 'first-file', function() load_file_in_current_directory(1) end) +mp.add_key_binding(nil, 'last-file', function() load_file_in_current_directory(-1) end) +mp.add_key_binding(nil, 'delete-file-next', function() + local path = mp.get_property_native('path') + + if not path or is_protocol(path) then return end + + path = normalize_path(path) + local playlist_count = mp.get_property_native('playlist-count') + + if playlist_count > 1 then + mp.commandv('playlist-remove', 'current') + else + local next_file = get_adjacent_file(path, 'forward', options.media_types) + + if menu:is_open('open-file') then + elements.menu:delete_value(path) + end + + if next_file then + mp.commandv('loadfile', next_file) + else + mp.commandv('stop') + end + end + + os.remove(path) +end) +mp.add_key_binding(nil, 'delete-file-quit', function() + local path = mp.get_property_native('path') + if not path or is_protocol(path) then return end + os.remove(normalize_path(path)) + mp.command('quit') +end) +mp.add_key_binding(nil, 'open-config-directory', function() + local config = serialize_path(mp.command_native({'expand-path', '~~/mpv.conf'})) + local args + + if state.os == 'windows' then + args = {'explorer', '/select,', config.path} + elseif state.os == 'macos' then + args = {'open', '-R', config.path} + elseif state.os == 'linux' then + args = {'xdg-open', config.dirname} + end + + utils.subprocess_detached({args = args, cancellable = false}) +end) diff --git a/mpv/scripts/webm.lua b/mpv/scripts/webm.lua new file mode 100644 index 0000000..edfc164 --- /dev/null +++ b/mpv/scripts/webm.lua @@ -0,0 +1,2689 @@ +local mp = require("mp") +local assdraw = require("mp.assdraw") +local msg = require("mp.msg") +local utils = require("mp.utils") +local mpopts = require("mp.options") +local options = { + -- Defaults to shift+w + keybind = "W", + -- If empty, saves on the same directory of the playing video. + -- A starting "~" will be replaced by the home dir. + -- This field is delimited by double-square-brackets - [[ and ]] - instead of + -- quotes, because Windows users might run into a issue when using + -- backslashes as a path separator. Examples of valid inputs for this field + -- would be: [[]] (the default, empty value), [[C:\Users\John]] (on Windows), + -- and [[/home/john]] (on Unix-like systems eg. Linux). + output_directory = [[]], + run_detached = false, + -- Template string for the output file + -- %f - Filename, with extension + -- %F - Filename, without extension + -- %T - Media title, if it exists, or filename, with extension (useful for some streams, such as YouTube). + -- %s, %e - Start and end time, with milliseconds + -- %S, %E - Start and end time, without milliseconds + -- %M - "-audio", if audio is enabled, empty otherwise + -- %R - "-(height)p", where height is the video's height, or scale_height, if it's enabled. + -- More specifiers are supported, see https://mpv.io/manual/master/#options-screenshot-template + -- Property expansion is supported (with %{} at top level, ${} when nested), see https://mpv.io/manual/master/#property-expansion + output_template = "%F-[%s-%e]%M", + -- Scale video to a certain height, keeping the aspect ratio. -1 disables it. + scale_height = -1, + -- Change the FPS of the output video, dropping or duplicating frames as needed. + -- -1 means the FPS will be unchanged from the source. + fps = -1, + -- Target filesize, in kB. This will be used to calculate the bitrate + -- used on the encode. If this is set to <= 0, the video bitrate will be set + -- to 0, which might enable constant quality modes, depending on the + -- video codec that's used (VP8 and VP9, for example). + target_filesize = 2500, + -- If true, will use stricter flags to ensure the resulting file doesn't + -- overshoot the target filesize. Not recommended, as constrained quality + -- mode should work well, unless you're really having trouble hitting + -- the target size. + strict_filesize_constraint = false, + strict_bitrate_multiplier = 0.95, + -- In kilobits. + strict_audio_bitrate = 64, + -- Sets the output format, from a few predefined ones. + -- Currently we have webm-vp8 (libvpx/libvorbis), webm-vp9 (libvpx-vp9/libvorbis) + -- and raw (rawvideo/pcm_s16le). + output_format = "webm-vp8", + twopass = false, + -- If set, applies the video filters currently used on the playback to the encode. + apply_current_filters = true, + -- If set, writes the video's filename to the "Title" field on the metadata. + write_filename_on_metadata = false, + -- Set the number of encoding threads, for codecs libvpx and libvpx-vp9 + libvpx_threads = 4, + additional_flags = "", + -- Constant Rate Factor (CRF). The value meaning and limits may change, + -- from codec to codec. Set to -1 to disable. + crf = 10, + -- Useful for flags that may impact output filesize, such as qmin, qmax etc + -- Won't be applied when strict_filesize_constraint is on. + non_strict_additional_flags = "", + -- Display the encode progress, in %. Requires run_detached to be disabled. + -- On Windows, it shows a cmd popup. "auto" will display progress on non-Windows platforms. + display_progress = "auto", + -- The font size used in the menu. Isn't used for the notifications (started encode, finished encode etc) + font_size = 28, + margin = 10, + message_duration = 5 +} + +mpopts.read_options(options) +local base64_chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' + +-- encoding +function base64_encode(data) + return ((data:gsub('.', function(x) + local r,b='',x:byte() + for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end + return r; + end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x) + if (#x < 6) then return '' end + local c=0 + for i=1,6 do c=c+(x:sub(i,i)=='1' and 2^(6-i) or 0) end + return base64_chars:sub(c+1,c+1) + end)..({ '', '==', '=' })[#data%3+1]) +end + +-- decoding +function base64_decode(data) + data = string.gsub(data, '[^'..base64_chars..'=]', '') + return (data:gsub('.', function(x) + if (x == '=') then return '' end + local r,f='',(base64_chars:find(x)-1) + for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end + return r; + end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x) + if (#x ~= 8) then return '' end + local c=0 + for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(8-i) or 0) end + return string.char(c) + end)) +end +local bold +bold = function(text) + return "{\\b1}" .. tostring(text) .. "{\\b0}" +end +local message +message = function(text, duration) + local ass = mp.get_property_osd("osd-ass-cc/0") + ass = ass .. text + return mp.osd_message(ass, duration or options.message_duration) +end +local append +append = function(a, b) + for _, val in ipairs(b) do + a[#a + 1] = val + end + return a +end +local seconds_to_time_string +seconds_to_time_string = function(seconds, no_ms, full) + if seconds < 0 then + return "unknown" + end + local ret = "" + if not (no_ms) then + ret = string.format(".%03d", seconds * 1000 % 1000) + end + ret = string.format("%02d:%02d%s", math.floor(seconds / 60) % 60, math.floor(seconds) % 60, ret) + if full or seconds > 3600 then + ret = string.format("%d:%s", math.floor(seconds / 3600), ret) + end + return ret +end +local seconds_to_path_element +seconds_to_path_element = function(seconds, no_ms, full) + local time_string = seconds_to_time_string(seconds, no_ms, full) + local _ + time_string, _ = time_string:gsub(":", ".") + return time_string +end +local file_exists +file_exists = function(name) + local info, err = utils.file_info(name) + if info ~= nil then + return true + end + return false +end +local expand_properties +expand_properties = function(text, magic) + if magic == nil then + magic = "$" + end + for prefix, raw, prop, colon, fallback, closing in text:gmatch("%" .. magic .. "{([?!]?)(=?)([^}:]*)(:?)([^}]*)(}*)}") do + local err + local prop_value + local compare_value + local original_prop = prop + local get_property = mp.get_property_osd + if raw == "=" then + get_property = mp.get_property + end + if prefix ~= "" then + for actual_prop, compare in prop:gmatch("(.-)==(.*)") do + prop = actual_prop + compare_value = compare + end + end + if colon == ":" then + prop_value, err = get_property(prop, fallback) + else + prop_value, err = get_property(prop, "(error)") + end + prop_value = tostring(prop_value) + if prefix == "?" then + if compare_value == nil then + prop_value = err == nil and fallback .. closing or "" + else + prop_value = prop_value == compare_value and fallback .. closing or "" + end + prefix = "%" .. prefix + elseif prefix == "!" then + if compare_value == nil then + prop_value = err ~= nil and fallback .. closing or "" + else + prop_value = prop_value ~= compare_value and fallback .. closing or "" + end + else + prop_value = prop_value .. closing + end + if colon == ":" then + local _ + text, _ = text:gsub("%" .. magic .. "{" .. prefix .. raw .. original_prop:gsub("%W", "%%%1") .. ":" .. fallback:gsub("%W", "%%%1") .. closing .. "}", expand_properties(prop_value)) + else + local _ + text, _ = text:gsub("%" .. magic .. "{" .. prefix .. raw .. original_prop:gsub("%W", "%%%1") .. closing .. "}", prop_value) + end + end + return text +end +local format_filename +format_filename = function(startTime, endTime, videoFormat) + local hasAudioCodec = videoFormat.audioCodec ~= "" + local replaceFirst = { + ["%%mp"] = "%%mH.%%mM.%%mS", + ["%%mP"] = "%%mH.%%mM.%%mS.%%mT", + ["%%p"] = "%%wH.%%wM.%%wS", + ["%%P"] = "%%wH.%%wM.%%wS.%%wT" + } + local replaceTable = { + ["%%wH"] = string.format("%02d", math.floor(startTime / (60 * 60))), + ["%%wh"] = string.format("%d", math.floor(startTime / (60 * 60))), + ["%%wM"] = string.format("%02d", math.floor(startTime / 60 % 60)), + ["%%wm"] = string.format("%d", math.floor(startTime / 60)), + ["%%wS"] = string.format("%02d", math.floor(startTime % 60)), + ["%%ws"] = string.format("%d", math.floor(startTime)), + ["%%wf"] = string.format("%s", startTime), + ["%%wT"] = string.sub(string.format("%.3f", startTime % 1), 3), + ["%%mH"] = string.format("%02d", math.floor(endTime / (60 * 60))), + ["%%mh"] = string.format("%d", math.floor(endTime / (60 * 60))), + ["%%mM"] = string.format("%02d", math.floor(endTime / 60 % 60)), + ["%%mm"] = string.format("%d", math.floor(endTime / 60)), + ["%%mS"] = string.format("%02d", math.floor(endTime % 60)), + ["%%ms"] = string.format("%d", math.floor(endTime)), + ["%%mf"] = string.format("%s", endTime), + ["%%mT"] = string.sub(string.format("%.3f", endTime % 1), 3), + ["%%f"] = mp.get_property("filename"), + ["%%F"] = mp.get_property("filename/no-ext"), + ["%%s"] = seconds_to_path_element(startTime), + ["%%S"] = seconds_to_path_element(startTime, true), + ["%%e"] = seconds_to_path_element(endTime), + ["%%E"] = seconds_to_path_element(endTime, true), + ["%%T"] = mp.get_property("media-title"), + ["%%M"] = (mp.get_property_native('aid') and not mp.get_property_native('mute') and hasAudioCodec) and '-audio' or '', + ["%%R"] = (options.scale_height ~= -1) and "-" .. tostring(options.scale_height) .. "p" or "-" .. tostring(mp.get_property_native('height')) .. "p", + ["%%t%%"] = "%%" + } + local filename = options.output_template + for format, value in pairs(replaceFirst) do + local _ + filename, _ = filename:gsub(format, value) + end + for format, value in pairs(replaceTable) do + local _ + filename, _ = filename:gsub(format, value) + end + if mp.get_property_bool("demuxer-via-network", false) then + local _ + filename, _ = filename:gsub("%%X{([^}]*)}", "%1") + filename, _ = filename:gsub("%%x", "") + else + local x = string.gsub(mp.get_property("stream-open-filename", ""), string.gsub(mp.get_property("filename", ""), "%W", "%%%1") .. "$", "") + local _ + filename, _ = filename:gsub("%%X{[^}]*}", x) + filename, _ = filename:gsub("%%x", x) + end + filename = expand_properties(filename, "%") + for format in filename:gmatch("%%t([aAbBcCdDeFgGhHIjmMnprRStTuUVwWxXyYzZ])") do + local _ + filename, _ = filename:gsub("%%t" .. format, os.date("%" .. format)) + end + local _ + filename, _ = filename:gsub("[<>:\"/\\|?*]", "") + return tostring(filename) .. "." .. tostring(videoFormat.outputExtension) +end +local parse_directory +parse_directory = function(dir) + local home_dir = os.getenv("HOME") + if not home_dir then + home_dir = os.getenv("USERPROFILE") + end + if not home_dir then + local drive = os.getenv("HOMEDRIVE") + local path = os.getenv("HOMEPATH") + if drive and path then + home_dir = utils.join_path(drive, path) + else + msg.warn("Couldn't find home dir.") + home_dir = "" + end + end + local _ + dir, _ = dir:gsub("^~", home_dir) + return dir +end +local is_windows = type(package) == "table" and type(package.config) == "string" and package.config:sub(1, 1) == "\\" +local trim +trim = function(s) + return s:match("^%s*(.-)%s*$") +end +local get_null_path +get_null_path = function() + if file_exists("/dev/null") then + return "/dev/null" + end + return "NUL" +end +local run_subprocess +run_subprocess = function(params) + local res = utils.subprocess(params) + msg.verbose("Command stdout: ") + msg.verbose(res.stdout) + if res.status ~= 0 then + msg.verbose("Command failed! Reason: ", res.error, " Killed by us? ", res.killed_by_us and "yes" or "no") + return false + end + return true +end +local shell_escape +shell_escape = function(args) + local ret = { } + for i, a in ipairs(args) do + local s = tostring(a) + if string.match(s, "[^A-Za-z0-9_/:=-]") then + if is_windows then + s = '"' .. string.gsub(s, '"', '"\\""') .. '"' + else + s = "'" .. string.gsub(s, "'", "'\\''") .. "'" + end + end + table.insert(ret, s) + end + local concat = table.concat(ret, " ") + if is_windows then + concat = '"' .. concat .. '"' + end + return concat +end +local run_subprocess_popen +run_subprocess_popen = function(command_line) + local command_line_string = shell_escape(command_line) + command_line_string = command_line_string .. " 2>&1" + msg.verbose("run_subprocess_popen: running " .. tostring(command_line_string)) + return io.popen(command_line_string) +end +local calculate_scale_factor +calculate_scale_factor = function() + local baseResY = 720 + local osd_w, osd_h = mp.get_osd_size() + return osd_h / baseResY +end +local should_display_progress +should_display_progress = function() + if options.display_progress == "auto" then + return not is_windows + end + return options.display_progress +end +local reverse +reverse = function(list) + local _accum_0 = { } + local _len_0 = 1 + local _max_0 = 1 + for _index_0 = #list, _max_0 < 0 and #list + _max_0 or _max_0, -1 do + local element = list[_index_0] + _accum_0[_len_0] = element + _len_0 = _len_0 + 1 + end + return _accum_0 +end +local get_pass_logfile_path +get_pass_logfile_path = function(encode_out_path) + return tostring(encode_out_path) .. "-video-pass1.log" +end +local dimensions_changed = true +local _video_dimensions = { } +local get_video_dimensions +get_video_dimensions = function() + if not (dimensions_changed) then + return _video_dimensions + end + local video_params = mp.get_property_native("video-out-params") + if not video_params then + return nil + end + dimensions_changed = false + local keep_aspect = mp.get_property_bool("keepaspect") + local w = video_params["w"] + local h = video_params["h"] + local dw = video_params["dw"] + local dh = video_params["dh"] + if mp.get_property_number("video-rotate") % 180 == 90 then + w, h = h, w + dw, dh = dh, dw + end + _video_dimensions = { + top_left = { }, + bottom_right = { }, + ratios = { } + } + local window_w, window_h = mp.get_osd_size() + if keep_aspect then + local unscaled = mp.get_property_native("video-unscaled") + local panscan = mp.get_property_number("panscan") + local fwidth = window_w + local fheight = math.floor(window_w / dw * dh) + if fheight > window_h or fheight < h then + local tmpw = math.floor(window_h / dh * dw) + if tmpw <= window_w then + fheight = window_h + fwidth = tmpw + end + end + local vo_panscan_area = window_h - fheight + local f_w = fwidth / fheight + local f_h = 1 + if vo_panscan_area == 0 then + vo_panscan_area = window_h - fwidth + f_w = 1 + f_h = fheight / fwidth + end + if unscaled or unscaled == "downscale-big" then + vo_panscan_area = 0 + if unscaled or (dw <= window_w and dh <= window_h) then + fwidth = dw + fheight = dh + end + end + local scaled_width = fwidth + math.floor(vo_panscan_area * panscan * f_w) + local scaled_height = fheight + math.floor(vo_panscan_area * panscan * f_h) + local split_scaling + split_scaling = function(dst_size, scaled_src_size, zoom, align, pan) + scaled_src_size = math.floor(scaled_src_size * 2 ^ zoom) + align = (align + 1) / 2 + local dst_start = math.floor((dst_size - scaled_src_size) * align + pan * scaled_src_size) + if dst_start < 0 then + dst_start = dst_start + 1 + end + local dst_end = dst_start + scaled_src_size + if dst_start >= dst_end then + dst_start = 0 + dst_end = 1 + end + return dst_start, dst_end + end + local zoom = mp.get_property_number("video-zoom") + local align_x = mp.get_property_number("video-align-x") + local pan_x = mp.get_property_number("video-pan-x") + _video_dimensions.top_left.x, _video_dimensions.bottom_right.x = split_scaling(window_w, scaled_width, zoom, align_x, pan_x) + local align_y = mp.get_property_number("video-align-y") + local pan_y = mp.get_property_number("video-pan-y") + _video_dimensions.top_left.y, _video_dimensions.bottom_right.y = split_scaling(window_h, scaled_height, zoom, align_y, pan_y) + else + _video_dimensions.top_left.x = 0 + _video_dimensions.bottom_right.x = window_w + _video_dimensions.top_left.y = 0 + _video_dimensions.bottom_right.y = window_h + end + _video_dimensions.ratios.w = w / (_video_dimensions.bottom_right.x - _video_dimensions.top_left.x) + _video_dimensions.ratios.h = h / (_video_dimensions.bottom_right.y - _video_dimensions.top_left.y) + return _video_dimensions +end +local set_dimensions_changed +set_dimensions_changed = function() + dimensions_changed = true +end +local monitor_dimensions +monitor_dimensions = function() + local properties = { + "keepaspect", + "video-out-params", + "video-unscaled", + "panscan", + "video-zoom", + "video-align-x", + "video-pan-x", + "video-align-y", + "video-pan-y", + "osd-width", + "osd-height" + } + for _, p in ipairs(properties) do + mp.observe_property(p, "native", set_dimensions_changed) + end +end +local clamp +clamp = function(min, val, max) + if val <= min then + return min + end + if val >= max then + return max + end + return val +end +local clamp_point +clamp_point = function(top_left, point, bottom_right) + return { + x = clamp(top_left.x, point.x, bottom_right.x), + y = clamp(top_left.y, point.y, bottom_right.y) + } +end +local VideoPoint +do + local _class_0 + local _base_0 = { + set_from_screen = function(self, sx, sy) + local d = get_video_dimensions() + local point = clamp_point(d.top_left, { + x = sx, + y = sy + }, d.bottom_right) + self.x = math.floor(d.ratios.w * (point.x - d.top_left.x) + 0.5) + self.y = math.floor(d.ratios.h * (point.y - d.top_left.y) + 0.5) + end, + to_screen = function(self) + local d = get_video_dimensions() + return { + x = math.floor(self.x / d.ratios.w + d.top_left.x + 0.5), + y = math.floor(self.y / d.ratios.h + d.top_left.y + 0.5) + } + end + } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function(self) + self.x = -1 + self.y = -1 + end, + __base = _base_0, + __name = "VideoPoint" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + VideoPoint = _class_0 +end +local Region +do + local _class_0 + local _base_0 = { + is_valid = function(self) + return self.x > -1 and self.y > -1 and self.w > -1 and self.h > -1 + end, + set_from_points = function(self, p1, p2) + self.x = math.min(p1.x, p2.x) + self.y = math.min(p1.y, p2.y) + self.w = math.abs(p1.x - p2.x) + self.h = math.abs(p1.y - p2.y) + end + } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function(self) + self.x = -1 + self.y = -1 + self.w = -1 + self.h = -1 + end, + __base = _base_0, + __name = "Region" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + Region = _class_0 +end +local make_fullscreen_region +make_fullscreen_region = function() + local r = Region() + local d = get_video_dimensions() + local a = VideoPoint() + local b = VideoPoint() + local xa, ya + do + local _obj_0 = d.top_left + xa, ya = _obj_0.x, _obj_0.y + end + a:set_from_screen(xa, ya) + local xb, yb + do + local _obj_0 = d.bottom_right + xb, yb = _obj_0.x, _obj_0.y + end + b:set_from_screen(xb, yb) + r:set_from_points(a, b) + return r +end +local read_double +read_double = function(bytes) + local sign = 1 + local mantissa = bytes[2] % 2 ^ 4 + for i = 3, 8 do + mantissa = mantissa * 256 + bytes[i] + end + if bytes[1] > 127 then + sign = -1 + end + local exponent = (bytes[1] % 128) * 2 ^ 4 + math.floor(bytes[2] / 2 ^ 4) + if exponent == 0 then + return 0 + end + mantissa = (math.ldexp(mantissa, -52) + 1) * sign + return math.ldexp(mantissa, exponent - 1023) +end +local write_double +write_double = function(num) + local bytes = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + } + if num == 0 then + return bytes + end + local anum = math.abs(num) + local mantissa, exponent = math.frexp(anum) + exponent = exponent - 1 + mantissa = mantissa * 2 - 1 + local sign = num ~= anum and 128 or 0 + exponent = exponent + 1023 + bytes[1] = sign + math.floor(exponent / 2 ^ 4) + mantissa = mantissa * 2 ^ 4 + local currentmantissa = math.floor(mantissa) + mantissa = mantissa - currentmantissa + bytes[2] = (exponent % 2 ^ 4) * 2 ^ 4 + currentmantissa + for i = 3, 8 do + mantissa = mantissa * 2 ^ 8 + currentmantissa = math.floor(mantissa) + mantissa = mantissa - currentmantissa + bytes[i] = currentmantissa + end + return bytes +end +local FirstpassStats +do + local _class_0 + local duration_multiplier, fields_before_duration, fields_after_duration + local _base_0 = { + get_duration = function(self) + local big_endian_binary_duration = reverse(self.binary_duration) + return read_double(reversed_binary_duration) / duration_multiplier + end, + set_duration = function(self, duration) + local big_endian_binary_duration = write_double(duration * duration_multiplier) + self.binary_duration = reverse(big_endian_binary_duration) + end, + _bytes_to_string = function(self, bytes) + return string.char(unpack(bytes)) + end, + as_binary_string = function(self) + local before_duration_string = self:_bytes_to_string(self.binary_data_before_duration) + local duration_string = self:_bytes_to_string(self.binary_duration) + local after_duration_string = self:_bytes_to_string(self.binary_data_after_duration) + return before_duration_string .. duration_string .. after_duration_string + end + } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function(self, before_duration, duration, after_duration) + self.binary_data_before_duration = before_duration + self.binary_duration = duration + self.binary_data_after_duration = after_duration + end, + __base = _base_0, + __name = "FirstpassStats" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + local self = _class_0 + duration_multiplier = 10000000.0 + fields_before_duration = 16 + fields_after_duration = 1 + self.data_before_duration_size = function(self) + return fields_before_duration * 8 + end + self.data_after_duration_size = function(self) + return fields_after_duration * 8 + end + self.size = function(self) + return (fields_before_duration + 1 + fields_after_duration) * 8 + end + self.from_bytes = function(self, bytes) + local before_duration + do + local _accum_0 = { } + local _len_0 = 1 + local _max_0 = self:data_before_duration_size() + for _index_0 = 1, _max_0 < 0 and #bytes + _max_0 or _max_0 do + local b = bytes[_index_0] + _accum_0[_len_0] = b + _len_0 = _len_0 + 1 + end + before_duration = _accum_0 + end + local duration + do + local _accum_0 = { } + local _len_0 = 1 + local _max_0 = self:data_before_duration_size() + 8 + for _index_0 = self:data_before_duration_size() + 1, _max_0 < 0 and #bytes + _max_0 or _max_0 do + local b = bytes[_index_0] + _accum_0[_len_0] = b + _len_0 = _len_0 + 1 + end + duration = _accum_0 + end + local after_duration + do + local _accum_0 = { } + local _len_0 = 1 + for _index_0 = self:data_before_duration_size() + 8 + 1, #bytes do + local b = bytes[_index_0] + _accum_0[_len_0] = b + _len_0 = _len_0 + 1 + end + after_duration = _accum_0 + end + return self(before_duration, duration, after_duration) + end + FirstpassStats = _class_0 +end +local read_logfile_into_stats_array +read_logfile_into_stats_array = function(logfile_path) + local file = assert(io.open(logfile_path, "rb")) + local logfile_string = base64_decode(file:read()) + file:close() + local stats_size = FirstpassStats:size() + assert(logfile_string:len() % stats_size == 0) + local stats = { } + for offset = 1, #logfile_string, stats_size do + local bytes = { + logfile_string:byte(offset, offset + stats_size - 1) + } + assert(#bytes == stats_size) + stats[#stats + 1] = FirstpassStats:from_bytes(bytes) + end + return stats +end +local write_stats_array_to_logfile +write_stats_array_to_logfile = function(stats_array, logfile_path) + local file = assert(io.open(logfile_path, "wb")) + local logfile_string = "" + for _index_0 = 1, #stats_array do + local stat = stats_array[_index_0] + logfile_string = logfile_string .. stat:as_binary_string() + end + file:write(base64_encode(logfile_string)) + return file:close() +end +local vp8_patch_logfile +vp8_patch_logfile = function(logfile_path, encode_total_duration) + local stats_array = read_logfile_into_stats_array(logfile_path) + local average_duration = encode_total_duration / (#stats_array - 1) + for i = 1, #stats_array - 1 do + stats_array[i]:set_duration(average_duration) + end + stats_array[#stats_array]:set_duration(encode_total_duration) + return write_stats_array_to_logfile(stats_array, logfile_path) +end +local formats = { } +local Format +do + local _class_0 + local _base_0 = { + getPreFilters = function(self) + return { } + end, + getPostFilters = function(self) + return { } + end, + getFlags = function(self) + return { } + end, + getCodecFlags = function(self) + local codecs = { } + if self.videoCodec ~= "" then + codecs[#codecs + 1] = "--ovc=" .. tostring(self.videoCodec) + end + if self.audioCodec ~= "" then + codecs[#codecs + 1] = "--oac=" .. tostring(self.audioCodec) + end + return codecs + end + } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function(self) + self.displayName = "Basic" + self.supportsTwopass = true + self.videoCodec = "" + self.audioCodec = "" + self.outputExtension = "" + self.acceptsBitrate = true + end, + __base = _base_0, + __name = "Format" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + Format = _class_0 +end +local RawVideo +do + local _class_0 + local _parent_0 = Format + local _base_0 = { + getColorspace = function(self) + local csp = mp.get_property("colormatrix") + local _exp_0 = csp + if "bt.601" == _exp_0 then + return "bt601" + elseif "bt.709" == _exp_0 then + return "bt709" + elseif "bt.2020" == _exp_0 then + return "bt2020" + elseif "smpte-240m" == _exp_0 then + return "smpte240m" + else + msg.info("Warning, unknown colorspace " .. tostring(csp) .. " detected, using bt.601.") + return "bt601" + end + end, + getPostFilters = function(self) + return { + "format=yuv444p16", + "lavfi-scale=in_color_matrix=" .. self:getColorspace(), + "format=bgr24" + } + end + } + _base_0.__index = _base_0 + setmetatable(_base_0, _parent_0.__base) + _class_0 = setmetatable({ + __init = function(self) + self.displayName = "Raw" + self.supportsTwopass = false + self.videoCodec = "rawvideo" + self.audioCodec = "pcm_s16le" + self.outputExtension = "avi" + self.acceptsBitrate = false + end, + __base = _base_0, + __name = "RawVideo", + __parent = _parent_0 + }, { + __index = function(cls, name) + local val = rawget(_base_0, name) + if val == nil then + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end + else + return val + end + end, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + if _parent_0.__inherited then + _parent_0.__inherited(_parent_0, _class_0) + end + RawVideo = _class_0 +end +formats["raw"] = RawVideo() +local WebmVP8 +do + local _class_0 + local _parent_0 = Format + local _base_0 = { + getPreFilters = function(self) + local colormatrixFilter = { + ["bt.709"] = "bt709", + ["bt.2020"] = "bt2020", + ["smpte-240m"] = "smpte240m" + } + local ret = { } + local colormatrix = mp.get_property_native("video-params/colormatrix") + if colormatrixFilter[colormatrix] then + append(ret, { + "lavfi-colormatrix=" .. tostring(colormatrixFilter[colormatrix]) .. ":bt601" + }) + end + return ret + end, + getFlags = function(self) + return { + "--ovcopts-add=threads=" .. tostring(options.libvpx_threads) + } + end + } + _base_0.__index = _base_0 + setmetatable(_base_0, _parent_0.__base) + _class_0 = setmetatable({ + __init = function(self) + self.displayName = "WebM" + self.supportsTwopass = true + self.videoCodec = "libvpx" + self.audioCodec = "libvorbis" + self.outputExtension = "webm" + self.acceptsBitrate = true + end, + __base = _base_0, + __name = "WebmVP8", + __parent = _parent_0 + }, { + __index = function(cls, name) + local val = rawget(_base_0, name) + if val == nil then + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end + else + return val + end + end, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + if _parent_0.__inherited then + _parent_0.__inherited(_parent_0, _class_0) + end + WebmVP8 = _class_0 +end +formats["webm-vp8"] = WebmVP8() +local WebmVP9 +do + local _class_0 + local _parent_0 = Format + local _base_0 = { + getFlags = function(self) + return { + "--ovcopts-add=threads=" .. tostring(options.libvpx_threads) + } + end + } + _base_0.__index = _base_0 + setmetatable(_base_0, _parent_0.__base) + _class_0 = setmetatable({ + __init = function(self) + self.displayName = "WebM (VP9)" + self.supportsTwopass = true + self.videoCodec = "libvpx-vp9" + self.audioCodec = "libvorbis" + self.outputExtension = "webm" + self.acceptsBitrate = true + end, + __base = _base_0, + __name = "WebmVP9", + __parent = _parent_0 + }, { + __index = function(cls, name) + local val = rawget(_base_0, name) + if val == nil then + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end + else + return val + end + end, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + if _parent_0.__inherited then + _parent_0.__inherited(_parent_0, _class_0) + end + WebmVP9 = _class_0 +end +formats["webm-vp9"] = WebmVP9() +local MP4 +do + local _class_0 + local _parent_0 = Format + local _base_0 = { } + _base_0.__index = _base_0 + setmetatable(_base_0, _parent_0.__base) + _class_0 = setmetatable({ + __init = function(self) + self.displayName = "MP4 (h264/AAC)" + self.supportsTwopass = true + self.videoCodec = "libx264" + self.audioCodec = "aac" + self.outputExtension = "mp4" + self.acceptsBitrate = true + end, + __base = _base_0, + __name = "MP4", + __parent = _parent_0 + }, { + __index = function(cls, name) + local val = rawget(_base_0, name) + if val == nil then + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end + else + return val + end + end, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + if _parent_0.__inherited then + _parent_0.__inherited(_parent_0, _class_0) + end + MP4 = _class_0 +end +formats["mp4"] = MP4() +local MP4NVENC +do + local _class_0 + local _parent_0 = Format + local _base_0 = { } + _base_0.__index = _base_0 + setmetatable(_base_0, _parent_0.__base) + _class_0 = setmetatable({ + __init = function(self) + self.displayName = "MP4 (h264-NVENC/AAC)" + self.supportsTwopass = true + self.videoCodec = "h264_nvenc" + self.audioCodec = "aac" + self.outputExtension = "mp4" + self.acceptsBitrate = true + end, + __base = _base_0, + __name = "MP4NVENC", + __parent = _parent_0 + }, { + __index = function(cls, name) + local val = rawget(_base_0, name) + if val == nil then + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end + else + return val + end + end, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + if _parent_0.__inherited then + _parent_0.__inherited(_parent_0, _class_0) + end + MP4NVENC = _class_0 +end +formats["mp4-nvenc"] = MP4NVENC() +local MP3 +do + local _class_0 + local _parent_0 = Format + local _base_0 = { } + _base_0.__index = _base_0 + setmetatable(_base_0, _parent_0.__base) + _class_0 = setmetatable({ + __init = function(self) + self.displayName = "MP3 (libmp3lame)" + self.supportsTwopass = false + self.videoCodec = "" + self.audioCodec = "libmp3lame" + self.outputExtension = "mp3" + self.acceptsBitrate = true + end, + __base = _base_0, + __name = "MP3", + __parent = _parent_0 + }, { + __index = function(cls, name) + local val = rawget(_base_0, name) + if val == nil then + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end + else + return val + end + end, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + if _parent_0.__inherited then + _parent_0.__inherited(_parent_0, _class_0) + end + MP3 = _class_0 +end +formats["mp3"] = MP3() +local GIF +do + local _class_0 + local _parent_0 = Format + local _base_0 = { } + _base_0.__index = _base_0 + setmetatable(_base_0, _parent_0.__base) + _class_0 = setmetatable({ + __init = function(self) + self.displayName = "GIF" + self.supportsTwopass = false + self.videoCodec = "gif" + self.audioCodec = "" + self.outputExtension = "gif" + self.acceptsBitrate = false + end, + __base = _base_0, + __name = "GIF", + __parent = _parent_0 + }, { + __index = function(cls, name) + local val = rawget(_base_0, name) + if val == nil then + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end + else + return val + end + end, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + if _parent_0.__inherited then + _parent_0.__inherited(_parent_0, _class_0) + end + GIF = _class_0 +end +formats["gif"] = GIF() +local Page +do + local _class_0 + local _base_0 = { + add_keybinds = function(self) + if not self.keybinds then + return + end + for key, func in pairs(self.keybinds) do + mp.add_forced_key_binding(key, key, func, { + repeatable = true + }) + end + end, + remove_keybinds = function(self) + if not self.keybinds then + return + end + for key, _ in pairs(self.keybinds) do + mp.remove_key_binding(key) + end + end, + observe_properties = function(self) + self.sizeCallback = function() + return self:draw() + end + local properties = { + "keepaspect", + "video-out-params", + "video-unscaled", + "panscan", + "video-zoom", + "video-align-x", + "video-pan-x", + "video-align-y", + "video-pan-y", + "osd-width", + "osd-height" + } + for _index_0 = 1, #properties do + local p = properties[_index_0] + mp.observe_property(p, "native", self.sizeCallback) + end + end, + unobserve_properties = function(self) + if self.sizeCallback then + mp.unobserve_property(self.sizeCallback) + self.sizeCallback = nil + end + end, + clear = function(self) + local window_w, window_h = mp.get_osd_size() + mp.set_osd_ass(window_w, window_h, "") + return mp.osd_message("", 0) + end, + prepare = function(self) + return nil + end, + dispose = function(self) + return nil + end, + show = function(self) + if self.visible then + return + end + self.visible = true + self:observe_properties() + self:add_keybinds() + self:prepare() + self:clear() + return self:draw() + end, + hide = function(self) + if not self.visible then + return + end + self.visible = false + self:unobserve_properties() + self:remove_keybinds() + self:clear() + return self:dispose() + end, + setup_text = function(self, ass) + local scale = calculate_scale_factor() + local margin = options.margin * scale + ass:append("{\\an7}") + ass:pos(margin, margin) + return ass:append("{\\fs" .. tostring(options.font_size * scale) .. "}") + end + } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function() end, + __base = _base_0, + __name = "Page" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + Page = _class_0 +end +local EncodeWithProgress +do + local _class_0 + local _parent_0 = Page + local _base_0 = { + draw = function(self) + local progress = 100 * ((self.currentTime - self.startTime) / self.duration) + local progressText = string.format("%d%%", progress) + local window_w, window_h = mp.get_osd_size() + local ass = assdraw.ass_new() + ass:new_event() + self:setup_text(ass) + ass:append("Encoding (" .. tostring(bold(progressText)) .. ")\\N") + return mp.set_osd_ass(window_w, window_h, ass.text) + end, + parseLine = function(self, line) + local matchTime = string.match(line, "Encode time[-]pos: ([0-9.]+)") + local matchExit = string.match(line, "Exiting... [(]([%a ]+)[)]") + if matchTime == nil and matchExit == nil then + return + end + if matchTime ~= nil and tonumber(matchTime) > self.currentTime then + self.currentTime = tonumber(matchTime) + end + if matchExit ~= nil then + self.finished = true + self.finishedReason = matchExit + end + end, + startEncode = function(self, command_line) + local copy_command_line + do + local _accum_0 = { } + local _len_0 = 1 + for _index_0 = 1, #command_line do + local arg = command_line[_index_0] + _accum_0[_len_0] = arg + _len_0 = _len_0 + 1 + end + copy_command_line = _accum_0 + end + append(copy_command_line, { + '--term-status-msg=Encode time-pos: ${=time-pos}\\n' + }) + self:show() + local processFd = run_subprocess_popen(copy_command_line) + for line in processFd:lines() do + msg.verbose(string.format('%q', line)) + self:parseLine(line) + self:draw() + end + processFd:close() + self:hide() + if self.finishedReason == "End of file" then + return true + end + return false + end + } + _base_0.__index = _base_0 + setmetatable(_base_0, _parent_0.__base) + _class_0 = setmetatable({ + __init = function(self, startTime, endTime) + self.startTime = startTime + self.endTime = endTime + self.duration = endTime - startTime + self.currentTime = startTime + end, + __base = _base_0, + __name = "EncodeWithProgress", + __parent = _parent_0 + }, { + __index = function(cls, name) + local val = rawget(_base_0, name) + if val == nil then + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end + else + return val + end + end, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + if _parent_0.__inherited then + _parent_0.__inherited(_parent_0, _class_0) + end + EncodeWithProgress = _class_0 +end +local get_active_tracks +get_active_tracks = function() + local accepted = { + video = true, + audio = not mp.get_property_bool("mute"), + sub = mp.get_property_bool("sub-visibility") + } + local active = { + video = { }, + audio = { }, + sub = { } + } + for _, track in ipairs(mp.get_property_native("track-list")) do + if track["selected"] and accepted[track["type"]] then + local count = #active[track["type"]] + active[track["type"]][count + 1] = track + end + end + return active +end +local filter_tracks_supported_by_format +filter_tracks_supported_by_format = function(active_tracks, format) + local has_video_codec = format.videoCodec ~= "" + local has_audio_codec = format.audioCodec ~= "" + local supported = { + video = has_video_codec and active_tracks["video"] or { }, + audio = has_audio_codec and active_tracks["audio"] or { }, + sub = has_video_codec and active_tracks["sub"] or { } + } + return supported +end +local append_track +append_track = function(out, track) + local external_flag = { + ["audio"] = "audio-file", + ["sub"] = "sub-file" + } + local internal_flag = { + ["video"] = "vid", + ["audio"] = "aid", + ["sub"] = "sid" + } + if track['external'] and string.len(track['external-filename']) <= 2048 then + return append(out, { + "--" .. tostring(external_flag[track['type']]) .. "=" .. tostring(track['external-filename']) + }) + else + return append(out, { + "--" .. tostring(internal_flag[track['type']]) .. "=" .. tostring(track['id']) + }) + end +end +local append_audio_tracks +append_audio_tracks = function(out, tracks) + local internal_tracks = { } + for _index_0 = 1, #tracks do + local track = tracks[_index_0] + if track['external'] then + append_track(out, track) + else + append(internal_tracks, { + track + }) + end + end + if #internal_tracks > 1 then + local filter_string = "" + for _index_0 = 1, #internal_tracks do + local track = internal_tracks[_index_0] + filter_string = filter_string .. "[aid" .. tostring(track['id']) .. "]" + end + filter_string = filter_string .. "amix[ao]" + return append(out, { + "--lavfi-complex=" .. tostring(filter_string) + }) + else + if #internal_tracks == 1 then + return append_track(out, internal_tracks[1]) + end + end +end +local get_scale_filters +get_scale_filters = function() + if options.scale_height > 0 then + return { + "lavfi-scale=-2:" .. tostring(options.scale_height) + } + end + return { } +end +local get_fps_filters +get_fps_filters = function() + if options.fps > 0 then + return { + "fps=" .. tostring(options.fps) + } + end + return { } +end +local append_property +append_property = function(out, property_name, option_name) + option_name = option_name or property_name + local prop = mp.get_property(property_name) + if prop and prop ~= "" then + return append(out, { + "--" .. tostring(option_name) .. "=" .. tostring(prop) + }) + end +end +local append_list_options +append_list_options = function(out, property_name, option_prefix) + option_prefix = option_prefix or property_name + local prop = mp.get_property_native(property_name) + if prop then + for _index_0 = 1, #prop do + local value = prop[_index_0] + append(out, { + "--" .. tostring(option_prefix) .. "-append=" .. tostring(value) + }) + end + end +end +local get_playback_options +get_playback_options = function() + local ret = { } + append_property(ret, "sub-ass-override") + append_property(ret, "sub-ass-force-style") + append_property(ret, "sub-ass-vsfilter-aspect-compat") + append_property(ret, "sub-auto") + append_property(ret, "sub-delay") + append_property(ret, "video-rotate") + append_property(ret, "ytdl-format") + return ret +end +local get_speed_flags +get_speed_flags = function() + local ret = { } + local speed = mp.get_property_native("speed") + if speed ~= 1 then + append(ret, { + "--vf-add=setpts=PTS/" .. tostring(speed), + "--af-add=atempo=" .. tostring(speed), + "--sub-speed=1/" .. tostring(speed) + }) + end + return ret +end +local get_metadata_flags +get_metadata_flags = function() + local title = mp.get_property("filename/no-ext") + return { + "--oset-metadata=title=%" .. tostring(string.len(title)) .. "%" .. tostring(title) + } +end +local apply_current_filters +apply_current_filters = function(filters) + local vf = mp.get_property_native("vf") + msg.verbose("apply_current_filters: got " .. tostring(#vf) .. " currently applied.") + for _index_0 = 1, #vf do + local _continue_0 = false + repeat + local filter = vf[_index_0] + msg.verbose("apply_current_filters: filter name: " .. tostring(filter['name'])) + if filter["enabled"] == false then + _continue_0 = true + break + end + local str = filter["name"] + local params = filter["params"] or { } + for k, v in pairs(params) do + str = str .. ":" .. tostring(k) .. "=%" .. tostring(string.len(v)) .. "%" .. tostring(v) + end + append(filters, { + str + }) + _continue_0 = true + until true + if not _continue_0 then + break + end + end +end +local get_video_filters +get_video_filters = function(format, region) + local filters = { } + append(filters, format:getPreFilters()) + if options.apply_current_filters then + apply_current_filters(filters) + end + if region and region:is_valid() then + append(filters, { + "lavfi-crop=" .. tostring(region.w) .. ":" .. tostring(region.h) .. ":" .. tostring(region.x) .. ":" .. tostring(region.y) + }) + end + append(filters, get_scale_filters()) + append(filters, get_fps_filters()) + append(filters, format:getPostFilters()) + return filters +end +local get_video_encode_flags +get_video_encode_flags = function(format, region) + local flags = { } + append(flags, get_playback_options()) + local filters = get_video_filters(format, region) + for _index_0 = 1, #filters do + local f = filters[_index_0] + append(flags, { + "--vf-add=" .. tostring(f) + }) + end + append(flags, get_speed_flags()) + return flags +end +local calculate_bitrate +calculate_bitrate = function(active_tracks, format, length) + if format.videoCodec == "" then + return nil, options.target_filesize * 8 / length + end + local video_kilobits = options.target_filesize * 8 + local audio_kilobits = nil + local has_audio_track = #active_tracks["audio"] > 0 + if options.strict_filesize_constraint and has_audio_track then + audio_kilobits = length * options.strict_audio_bitrate + video_kilobits = video_kilobits - audio_kilobits + end + local video_bitrate = math.floor(video_kilobits / length) + local audio_bitrate = audio_kilobits and math.floor(audio_kilobits / length) or nil + return video_bitrate, audio_bitrate +end +local encode +encode = function(region, startTime, endTime) + local format = formats[options.output_format] + local path = mp.get_property("path") + if not path then + message("No file is being played") + return + end + local is_stream = not file_exists(path) + local command = { + "mpv", + path, + "--start=" .. seconds_to_time_string(startTime, false, true), + "--end=" .. seconds_to_time_string(endTime, false, true), + "--loop-file=no" + } + append(command, format:getCodecFlags()) + local active_tracks = get_active_tracks() + local supported_active_tracks = filter_tracks_supported_by_format(active_tracks, format) + for track_type, tracks in pairs(supported_active_tracks) do + if track_type == "audio" then + append_audio_tracks(command, tracks) + else + for _index_0 = 1, #tracks do + local track = tracks[_index_0] + append_track(command, track) + end + end + end + for track_type, tracks in pairs(supported_active_tracks) do + local _continue_0 = false + repeat + if #tracks > 0 then + _continue_0 = true + break + end + local _exp_0 = track_type + if "video" == _exp_0 then + append(command, { + "--vid=no" + }) + elseif "audio" == _exp_0 then + append(command, { + "--aid=no" + }) + elseif "sub" == _exp_0 then + append(command, { + "--sid=no" + }) + end + _continue_0 = true + until true + if not _continue_0 then + break + end + end + if format.videoCodec ~= "" then + append(command, get_video_encode_flags(format, region)) + end + append(command, format:getFlags()) + if options.write_filename_on_metadata then + append(command, get_metadata_flags()) + end + if format.acceptsBitrate then + if options.target_filesize > 0 then + local length = endTime - startTime + local video_bitrate, audio_bitrate = calculate_bitrate(supported_active_tracks, format, length) + if video_bitrate then + append(command, { + "--ovcopts-add=b=" .. tostring(video_bitrate) .. "k" + }) + end + if audio_bitrate then + append(command, { + "--oacopts-add=b=" .. tostring(audio_bitrate) .. "k" + }) + end + if options.strict_filesize_constraint then + local type = format.videoCodec ~= "" and "ovc" or "oac" + append(command, { + "--" .. tostring(type) .. "opts-add=minrate=" .. tostring(bitrate) .. "k", + "--" .. tostring(type) .. "opts-add=maxrate=" .. tostring(bitrate) .. "k" + }) + end + else + local type = format.videoCodec ~= "" and "ovc" or "oac" + append(command, { + "--" .. tostring(type) .. "opts-add=b=0" + }) + end + end + for token in string.gmatch(options.additional_flags, "[^%s]+") do + command[#command + 1] = token + end + if not options.strict_filesize_constraint then + for token in string.gmatch(options.non_strict_additional_flags, "[^%s]+") do + command[#command + 1] = token + end + if options.crf >= 0 then + append(command, { + "--ovcopts-add=crf=" .. tostring(options.crf) + }) + end + end + local dir = "" + if is_stream then + dir = parse_directory("~") + else + local _ + dir, _ = utils.split_path(path) + end + if options.output_directory ~= "" then + dir = parse_directory(options.output_directory) + end + local formatted_filename = format_filename(startTime, endTime, format) + local out_path = utils.join_path(dir, formatted_filename) + append(command, { + "--o=" .. tostring(out_path) + }) + if options.twopass and format.supportsTwopass and not is_stream then + local first_pass_cmdline + do + local _accum_0 = { } + local _len_0 = 1 + for _index_0 = 1, #command do + local arg = command[_index_0] + _accum_0[_len_0] = arg + _len_0 = _len_0 + 1 + end + first_pass_cmdline = _accum_0 + end + append(first_pass_cmdline, { + "--ovcopts-add=flags=+pass1" + }) + message("Starting first pass...") + msg.verbose("First-pass command line: ", table.concat(first_pass_cmdline, " ")) + local res = run_subprocess({ + args = first_pass_cmdline, + cancellable = false + }) + if not res then + message("First pass failed! Check the logs for details.") + return + end + append(command, { + "--ovcopts-add=flags=+pass2" + }) + if format.videoCodec == "libvpx" then + msg.verbose("Patching libvpx pass log file...") + vp8_patch_logfile(get_pass_logfile_path(out_path), endTime - startTime) + end + end + msg.info("Encoding to", out_path) + msg.verbose("Command line:", table.concat(command, " ")) + if options.run_detached then + message("Started encode, process was detached.") + return utils.subprocess_detached({ + args = command + }) + else + local res = false + if not should_display_progress() then + message("Started encode...") + res = run_subprocess({ + args = command, + cancellable = false + }) + else + local ewp = EncodeWithProgress(startTime, endTime) + res = ewp:startEncode(command) + end + if res then + message("Encoded successfully! Saved to\\N" .. tostring(bold(out_path))) + else + message("Encode failed! Check the logs for details.") + end + return os.remove(get_pass_logfile_path(out_path)) + end +end +local CropPage +do + local _class_0 + local _parent_0 = Page + local _base_0 = { + reset = function(self) + local dimensions = get_video_dimensions() + local xa, ya + do + local _obj_0 = dimensions.top_left + xa, ya = _obj_0.x, _obj_0.y + end + self.pointA:set_from_screen(xa, ya) + local xb, yb + do + local _obj_0 = dimensions.bottom_right + xb, yb = _obj_0.x, _obj_0.y + end + self.pointB:set_from_screen(xb, yb) + if self.visible then + return self:draw() + end + end, + setPointA = function(self) + local posX, posY = mp.get_mouse_pos() + self.pointA:set_from_screen(posX, posY) + if self.visible then + return self:draw() + end + end, + setPointB = function(self) + local posX, posY = mp.get_mouse_pos() + self.pointB:set_from_screen(posX, posY) + if self.visible then + return self:draw() + end + end, + cancel = function(self) + self:hide() + return self.callback(false, nil) + end, + finish = function(self) + local region = Region() + region:set_from_points(self.pointA, self.pointB) + self:hide() + return self.callback(true, region) + end, + draw_box = function(self, ass) + local region = Region() + region:set_from_points(self.pointA:to_screen(), self.pointB:to_screen()) + local d = get_video_dimensions() + ass:new_event() + ass:append("{\\an7}") + ass:pos(0, 0) + ass:append('{\\bord0}') + ass:append('{\\shad0}') + ass:append('{\\c&H000000&}') + ass:append('{\\alpha&H77}') + ass:draw_start() + ass:rect_cw(d.top_left.x, d.top_left.y, region.x, region.y + region.h) + ass:rect_cw(region.x, d.top_left.y, d.bottom_right.x, region.y) + ass:rect_cw(d.top_left.x, region.y + region.h, region.x + region.w, d.bottom_right.y) + ass:rect_cw(region.x + region.w, region.y, d.bottom_right.x, d.bottom_right.y) + return ass:draw_stop() + end, + draw = function(self) + local window = { } + window.w, window.h = mp.get_osd_size() + local ass = assdraw.ass_new() + self:draw_box(ass) + ass:new_event() + self:setup_text(ass) + ass:append(tostring(bold('Crop:')) .. "\\N") + ass:append(tostring(bold('1:')) .. " change point A (" .. tostring(self.pointA.x) .. ", " .. tostring(self.pointA.y) .. ")\\N") + ass:append(tostring(bold('2:')) .. " change point B (" .. tostring(self.pointB.x) .. ", " .. tostring(self.pointB.y) .. ")\\N") + ass:append(tostring(bold('r:')) .. " reset to whole screen\\N") + ass:append(tostring(bold('ESC:')) .. " cancel crop\\N") + local width, height = math.abs(self.pointA.x - self.pointB.x), math.abs(self.pointA.y - self.pointB.y) + ass:append(tostring(bold('ENTER:')) .. " confirm crop (" .. tostring(width) .. "x" .. tostring(height) .. ")\\N") + return mp.set_osd_ass(window.w, window.h, ass.text) + end + } + _base_0.__index = _base_0 + setmetatable(_base_0, _parent_0.__base) + _class_0 = setmetatable({ + __init = function(self, callback, region) + self.pointA = VideoPoint() + self.pointB = VideoPoint() + self.keybinds = { + ["1"] = (function() + local _base_1 = self + local _fn_0 = _base_1.setPointA + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["2"] = (function() + local _base_1 = self + local _fn_0 = _base_1.setPointB + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["r"] = (function() + local _base_1 = self + local _fn_0 = _base_1.reset + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["ESC"] = (function() + local _base_1 = self + local _fn_0 = _base_1.cancel + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["ENTER"] = (function() + local _base_1 = self + local _fn_0 = _base_1.finish + return function(...) + return _fn_0(_base_1, ...) + end + end)() + } + self:reset() + self.callback = callback + if region and region:is_valid() then + self.pointA.x = region.x + self.pointA.y = region.y + self.pointB.x = region.x + region.w + self.pointB.y = region.y + region.h + end + end, + __base = _base_0, + __name = "CropPage", + __parent = _parent_0 + }, { + __index = function(cls, name) + local val = rawget(_base_0, name) + if val == nil then + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end + else + return val + end + end, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + if _parent_0.__inherited then + _parent_0.__inherited(_parent_0, _class_0) + end + CropPage = _class_0 +end +local Option +do + local _class_0 + local _base_0 = { + hasPrevious = function(self) + local _exp_0 = self.optType + if "bool" == _exp_0 then + return true + elseif "int" == _exp_0 then + if self.opts.min then + return self.value > self.opts.min + else + return true + end + elseif "list" == _exp_0 then + return self.value > 1 + end + end, + hasNext = function(self) + local _exp_0 = self.optType + if "bool" == _exp_0 then + return true + elseif "int" == _exp_0 then + if self.opts.max then + return self.value < self.opts.max + else + return true + end + elseif "list" == _exp_0 then + return self.value < #self.opts.possibleValues + end + end, + leftKey = function(self) + local _exp_0 = self.optType + if "bool" == _exp_0 then + self.value = not self.value + elseif "int" == _exp_0 then + self.value = self.value - self.opts.step + if self.opts.min and self.opts.min > self.value then + self.value = self.opts.min + end + elseif "list" == _exp_0 then + if self.value > 1 then + self.value = self.value - 1 + end + end + end, + rightKey = function(self) + local _exp_0 = self.optType + if "bool" == _exp_0 then + self.value = not self.value + elseif "int" == _exp_0 then + self.value = self.value + self.opts.step + if self.opts.max and self.opts.max < self.value then + self.value = self.opts.max + end + elseif "list" == _exp_0 then + if self.value < #self.opts.possibleValues then + self.value = self.value + 1 + end + end + end, + getValue = function(self) + local _exp_0 = self.optType + if "bool" == _exp_0 then + return self.value + elseif "int" == _exp_0 then + return self.value + elseif "list" == _exp_0 then + local value, _ + do + local _obj_0 = self.opts.possibleValues[self.value] + value, _ = _obj_0[1], _obj_0[2] + end + return value + end + end, + setValue = function(self, value) + local _exp_0 = self.optType + if "bool" == _exp_0 then + self.value = value + elseif "int" == _exp_0 then + self.value = value + elseif "list" == _exp_0 then + local set = false + for i, possiblePair in ipairs(self.opts.possibleValues) do + local possibleValue, _ + possibleValue, _ = possiblePair[1], possiblePair[2] + if possibleValue == value then + set = true + self.value = i + break + end + end + if not set then + return msg.warn("Tried to set invalid value " .. tostring(value) .. " to " .. tostring(self.displayText) .. " option.") + end + end + end, + getDisplayValue = function(self) + local _exp_0 = self.optType + if "bool" == _exp_0 then + return self.value and "yes" or "no" + elseif "int" == _exp_0 then + if self.opts.altDisplayNames and self.opts.altDisplayNames[self.value] then + return self.opts.altDisplayNames[self.value] + else + return tostring(self.value) + end + elseif "list" == _exp_0 then + local value, displayValue + do + local _obj_0 = self.opts.possibleValues[self.value] + value, displayValue = _obj_0[1], _obj_0[2] + end + return displayValue or value + end + end, + draw = function(self, ass, selected) + if selected then + ass:append(tostring(bold(self.displayText)) .. ": ") + else + ass:append(tostring(self.displayText) .. ": ") + end + if self:hasPrevious() then + ass:append("◀ ") + end + ass:append(self:getDisplayValue()) + if self:hasNext() then + ass:append(" ▶") + end + return ass:append("\\N") + end + } + _base_0.__index = _base_0 + _class_0 = setmetatable({ + __init = function(self, optType, displayText, value, opts) + self.optType = optType + self.displayText = displayText + self.opts = opts + self.value = 1 + return self:setValue(value) + end, + __base = _base_0, + __name = "Option" + }, { + __index = _base_0, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + Option = _class_0 +end +local EncodeOptionsPage +do + local _class_0 + local _parent_0 = Page + local _base_0 = { + getCurrentOption = function(self) + return self.options[self.currentOption][2] + end, + leftKey = function(self) + (self:getCurrentOption()):leftKey() + return self:draw() + end, + rightKey = function(self) + (self:getCurrentOption()):rightKey() + return self:draw() + end, + prevOpt = function(self) + self.currentOption = math.max(1, self.currentOption - 1) + return self:draw() + end, + nextOpt = function(self) + self.currentOption = math.min(#self.options, self.currentOption + 1) + return self:draw() + end, + confirmOpts = function(self) + for _, optPair in ipairs(self.options) do + local optName, opt + optName, opt = optPair[1], optPair[2] + options[optName] = opt:getValue() + end + self:hide() + return self.callback(true) + end, + cancelOpts = function(self) + self:hide() + return self.callback(false) + end, + draw = function(self) + local window_w, window_h = mp.get_osd_size() + local ass = assdraw.ass_new() + ass:new_event() + self:setup_text(ass) + ass:append(tostring(bold('Options:')) .. "\\N\\N") + for i, optPair in ipairs(self.options) do + local opt = optPair[2] + opt:draw(ass, self.currentOption == i) + end + ass:append("\\N▲ / ▼: navigate\\N") + ass:append(tostring(bold('ENTER:')) .. " confirm options\\N") + ass:append(tostring(bold('ESC:')) .. " cancel\\N") + return mp.set_osd_ass(window_w, window_h, ass.text) + end + } + _base_0.__index = _base_0 + setmetatable(_base_0, _parent_0.__base) + _class_0 = setmetatable({ + __init = function(self, callback) + self.callback = callback + self.currentOption = 1 + local scaleHeightOpts = { + possibleValues = { + { + -1, + "no" + }, + { + 240 + }, + { + 360 + }, + { + 480 + }, + { + 720 + }, + { + 1080 + }, + { + 1440 + }, + { + 2160 + } + } + } + local filesizeOpts = { + step = 250, + min = 0, + altDisplayNames = { + [0] = "0 (constant quality)" + } + } + local crfOpts = { + step = 1, + min = -1, + altDisplayNames = { + [-1] = "disabled" + } + } + local fpsOpts = { + possibleValues = { + { + -1, + "source" + }, + { + 15 + }, + { + 24 + }, + { + 30 + }, + { + 48 + }, + { + 50 + }, + { + 60 + }, + { + 120 + }, + { + 240 + } + } + } + local formatIds = { + "webm-vp8", + "webm-vp9", + "mp4", + "mp4-nvenc", + "raw", + "mp3", + "gif" + } + local formatOpts = { + possibleValues = (function() + local _accum_0 = { } + local _len_0 = 1 + for _index_0 = 1, #formatIds do + local fId = formatIds[_index_0] + _accum_0[_len_0] = { + fId, + formats[fId].displayName + } + _len_0 = _len_0 + 1 + end + return _accum_0 + end)() + } + self.options = { + { + "output_format", + Option("list", "Output Format", options.output_format, formatOpts) + }, + { + "twopass", + Option("bool", "Two Pass", options.twopass) + }, + { + "apply_current_filters", + Option("bool", "Apply Current Video Filters", options.apply_current_filters) + }, + { + "scale_height", + Option("list", "Scale Height", options.scale_height, scaleHeightOpts) + }, + { + "strict_filesize_constraint", + Option("bool", "Strict Filesize Constraint", options.strict_filesize_constraint) + }, + { + "write_filename_on_metadata", + Option("bool", "Write Filename on Metadata", options.write_filename_on_metadata) + }, + { + "target_filesize", + Option("int", "Target Filesize", options.target_filesize, filesizeOpts) + }, + { + "crf", + Option("int", "CRF", options.crf, crfOpts) + }, + { + "fps", + Option("list", "FPS", options.fps, fpsOpts) + } + } + self.keybinds = { + ["LEFT"] = (function() + local _base_1 = self + local _fn_0 = _base_1.leftKey + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["RIGHT"] = (function() + local _base_1 = self + local _fn_0 = _base_1.rightKey + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["UP"] = (function() + local _base_1 = self + local _fn_0 = _base_1.prevOpt + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["DOWN"] = (function() + local _base_1 = self + local _fn_0 = _base_1.nextOpt + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["ENTER"] = (function() + local _base_1 = self + local _fn_0 = _base_1.confirmOpts + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["ESC"] = (function() + local _base_1 = self + local _fn_0 = _base_1.cancelOpts + return function(...) + return _fn_0(_base_1, ...) + end + end)() + } + end, + __base = _base_0, + __name = "EncodeOptionsPage", + __parent = _parent_0 + }, { + __index = function(cls, name) + local val = rawget(_base_0, name) + if val == nil then + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end + else + return val + end + end, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + if _parent_0.__inherited then + _parent_0.__inherited(_parent_0, _class_0) + end + EncodeOptionsPage = _class_0 +end +local PreviewPage +do + local _class_0 + local _parent_0 = Page + local _base_0 = { + prepare = function(self) + local vf = mp.get_property_native("vf") + vf[#vf + 1] = { + name = "sub" + } + if self.region:is_valid() then + vf[#vf + 1] = { + name = "crop", + params = { + w = tostring(self.region.w), + h = tostring(self.region.h), + x = tostring(self.region.x), + y = tostring(self.region.y) + } + } + end + mp.set_property_native("vf", vf) + if self.startTime > -1 and self.endTime > -1 then + mp.set_property_native("ab-loop-a", self.startTime) + mp.set_property_native("ab-loop-b", self.endTime) + mp.set_property_native("time-pos", self.startTime) + end + return mp.set_property_native("pause", false) + end, + dispose = function(self) + mp.set_property("ab-loop-a", "no") + mp.set_property("ab-loop-b", "no") + for prop, value in pairs(self.originalProperties) do + mp.set_property_native(prop, value) + end + end, + draw = function(self) + local window_w, window_h = mp.get_osd_size() + local ass = assdraw.ass_new() + ass:new_event() + self:setup_text(ass) + ass:append("Press " .. tostring(bold('ESC')) .. " to exit preview.\\N") + return mp.set_osd_ass(window_w, window_h, ass.text) + end, + cancel = function(self) + self:hide() + return self.callback() + end + } + _base_0.__index = _base_0 + setmetatable(_base_0, _parent_0.__base) + _class_0 = setmetatable({ + __init = function(self, callback, region, startTime, endTime) + self.callback = callback + self.originalProperties = { + ["vf"] = mp.get_property_native("vf"), + ["time-pos"] = mp.get_property_native("time-pos"), + ["pause"] = mp.get_property_native("pause") + } + self.keybinds = { + ["ESC"] = (function() + local _base_1 = self + local _fn_0 = _base_1.cancel + return function(...) + return _fn_0(_base_1, ...) + end + end)() + } + self.region = region + self.startTime = startTime + self.endTime = endTime + self.isLoop = false + end, + __base = _base_0, + __name = "PreviewPage", + __parent = _parent_0 + }, { + __index = function(cls, name) + local val = rawget(_base_0, name) + if val == nil then + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end + else + return val + end + end, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + if _parent_0.__inherited then + _parent_0.__inherited(_parent_0, _class_0) + end + PreviewPage = _class_0 +end +local MainPage +do + local _class_0 + local _parent_0 = Page + local _base_0 = { + setStartTime = function(self) + self.startTime = mp.get_property_number("time-pos") + if self.visible then + self:clear() + return self:draw() + end + end, + setEndTime = function(self) + self.endTime = mp.get_property_number("time-pos") + if self.visible then + self:clear() + return self:draw() + end + end, + setupStartAndEndTimes = function(self) + if mp.get_property_native("duration") then + self.startTime = 0 + self.endTime = mp.get_property_native("duration") + else + self.startTime = -1 + self.endTime = -1 + end + if self.visible then + self:clear() + return self:draw() + end + end, + draw = function(self) + local window_w, window_h = mp.get_osd_size() + local ass = assdraw.ass_new() + ass:new_event() + self:setup_text(ass) + ass:append(tostring(bold('WebM maker')) .. "\\N\\N") + ass:append(tostring(bold('c:')) .. " crop\\N") + ass:append(tostring(bold('1:')) .. " set start time (current is " .. tostring(seconds_to_time_string(self.startTime)) .. ")\\N") + ass:append(tostring(bold('2:')) .. " set end time (current is " .. tostring(seconds_to_time_string(self.endTime)) .. ")\\N") + ass:append(tostring(bold('o:')) .. " change encode options\\N") + ass:append(tostring(bold('p:')) .. " preview\\N") + ass:append(tostring(bold('e:')) .. " encode\\N\\N") + ass:append(tostring(bold('ESC:')) .. " close\\N") + return mp.set_osd_ass(window_w, window_h, ass.text) + end, + onUpdateCropRegion = function(self, updated, newRegion) + if updated then + self.region = newRegion + end + return self:show() + end, + crop = function(self) + self:hide() + local cropPage = CropPage((function() + local _base_1 = self + local _fn_0 = _base_1.onUpdateCropRegion + return function(...) + return _fn_0(_base_1, ...) + end + end)(), self.region) + return cropPage:show() + end, + onOptionsChanged = function(self, updated) + return self:show() + end, + changeOptions = function(self) + self:hide() + local encodeOptsPage = EncodeOptionsPage((function() + local _base_1 = self + local _fn_0 = _base_1.onOptionsChanged + return function(...) + return _fn_0(_base_1, ...) + end + end)()) + return encodeOptsPage:show() + end, + onPreviewEnded = function(self) + return self:show() + end, + preview = function(self) + self:hide() + local previewPage = PreviewPage((function() + local _base_1 = self + local _fn_0 = _base_1.onPreviewEnded + return function(...) + return _fn_0(_base_1, ...) + end + end)(), self.region, self.startTime, self.endTime) + return previewPage:show() + end, + encode = function(self) + self:hide() + if self.startTime < 0 then + message("No start time, aborting") + return + end + if self.endTime < 0 then + message("No end time, aborting") + return + end + if self.startTime >= self.endTime then + message("Start time is ahead of end time, aborting") + return + end + return encode(self.region, self.startTime, self.endTime) + end + } + _base_0.__index = _base_0 + setmetatable(_base_0, _parent_0.__base) + _class_0 = setmetatable({ + __init = function(self) + self.keybinds = { + ["c"] = (function() + local _base_1 = self + local _fn_0 = _base_1.crop + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["1"] = (function() + local _base_1 = self + local _fn_0 = _base_1.setStartTime + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["2"] = (function() + local _base_1 = self + local _fn_0 = _base_1.setEndTime + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["o"] = (function() + local _base_1 = self + local _fn_0 = _base_1.changeOptions + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["p"] = (function() + local _base_1 = self + local _fn_0 = _base_1.preview + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["e"] = (function() + local _base_1 = self + local _fn_0 = _base_1.encode + return function(...) + return _fn_0(_base_1, ...) + end + end)(), + ["ESC"] = (function() + local _base_1 = self + local _fn_0 = _base_1.hide + return function(...) + return _fn_0(_base_1, ...) + end + end)() + } + self.startTime = -1 + self.endTime = -1 + self.region = Region() + end, + __base = _base_0, + __name = "MainPage", + __parent = _parent_0 + }, { + __index = function(cls, name) + local val = rawget(_base_0, name) + if val == nil then + local parent = rawget(cls, "__parent") + if parent then + return parent[name] + end + else + return val + end + end, + __call = function(cls, ...) + local _self_0 = setmetatable({}, _base_0) + cls.__init(_self_0, ...) + return _self_0 + end + }) + _base_0.__class = _class_0 + if _parent_0.__inherited then + _parent_0.__inherited(_parent_0, _class_0) + end + MainPage = _class_0 +end +monitor_dimensions() +local mainPage = MainPage() +mp.add_key_binding(options.keybind, "display-webm-encoder", (function() + local _base_0 = mainPage + local _fn_0 = _base_0.show + return function(...) + return _fn_0(_base_0, ...) + end +end)(), { + repeatable = false +}) +return mp.register_event("file-loaded", (function() + local _base_0 = mainPage + local _fn_0 = _base_0.setupStartAndEndTimes + return function(...) + return _fn_0(_base_0, ...) + end +end)()) diff --git a/mpv/scripts/youtube-quality.lua b/mpv/scripts/youtube-quality.lua new file mode 100644 index 0000000..ba95fef --- /dev/null +++ b/mpv/scripts/youtube-quality.lua @@ -0,0 +1,275 @@ +-- youtube-quality.lua +-- +-- Change youtube video quality on the fly. +-- +-- Diplays a menu that lets you switch to different ytdl-format settings while +-- you're in the middle of a video (just like you were using the web player). +-- +-- Bound to ctrl-f by default. + +local mp = require 'mp' +local utils = require 'mp.utils' +local msg = require 'mp.msg' +local assdraw = require 'mp.assdraw' + +local opts = { + --key bindings + toggle_menu_binding = "ctrl+f", + up_binding = "UP", + down_binding = "DOWN", + select_binding = "ENTER", + + --formatting / cursors + selected_and_active = "▶ - ", + selected_and_inactive = "● - ", + unselected_and_active = "▷ - ", + unselected_and_inactive = "○ - ", + + --font size scales by window, if false requires larger font and padding sizes + scale_playlist_by_window=false, + + --playlist ass style overrides inside curly brackets, \keyvalue is one field, extra \ for escape in lua + --example {\\fnUbuntu\\fs10\\b0\\bord1} equals: font=Ubuntu, size=10, bold=no, border=1 + --read http://docs.aegisub.org/3.2/ASS_Tags/ for reference of tags + --undeclared tags will use default osd settings + --these styles will be used for the whole playlist. More specific styling will need to be hacked in + -- + --(a monospaced font is recommended but not required) + style_ass_tags = "{\\fnmonospace}", + + --paddings for top left corner + text_padding_x = 5, + text_padding_y = 5, + + --other + menu_timeout = 10, + + --use youtube-dl to fetch a list of available formats (overrides quality_strings) + fetch_formats = true, + + --default menu entries + quality_strings=[[ + [ + {"4320p" : "bestvideo[height<=?4320p]+bestaudio/best"}, + {"2160p" : "bestvideo[height<=?2160]+bestaudio/best"}, + {"1440p" : "bestvideo[height<=?1440]+bestaudio/best"}, + {"1080p" : "bestvideo[height<=?1080]+bestaudio/best"}, + {"720p" : "bestvideo[height<=?720]+bestaudio/best"}, + {"480p" : "bestvideo[height<=?480]+bestaudio/best"}, + {"360p" : "bestvideo[height<=?360]+bestaudio/best"}, + {"240p" : "bestvideo[height<=?240]+bestaudio/best"}, + {"144p" : "bestvideo[height<=?144]+bestaudio/best"} + ] + ]], +} +(require 'mp.options').read_options(opts, "youtube-quality") +opts.quality_strings = utils.parse_json(opts.quality_strings) + +local destroyer = nil + + +function show_menu() + local selected = 1 + local active = 0 + local current_ytdl_format = mp.get_property("ytdl-format") + msg.verbose("current ytdl-format: "..current_ytdl_format) + local num_options = 0 + local options = {} + + + if opts.fetch_formats then + options, num_options = download_formats() + end + + if next(options) == nil then + for i,v in ipairs(opts.quality_strings) do + num_options = num_options + 1 + for k,v2 in pairs(v) do + options[i] = {label = k, format=v2} + if v2 == current_ytdl_format then + active = i + selected = active + end + end + end + end + + --set the cursor to the currently format + for i,v in ipairs(options) do + if v.format == current_ytdl_format then + active = i + selected = active + break + end + end + + function selected_move(amt) + selected = selected + amt + if selected < 1 then selected = num_options + elseif selected > num_options then selected = 1 end + timeout:kill() + timeout:resume() + draw_menu() + end + function choose_prefix(i) + if i == selected and i == active then return opts.selected_and_active + elseif i == selected then return opts.selected_and_inactive end + + if i ~= selected and i == active then return opts.unselected_and_active + elseif i ~= selected then return opts.unselected_and_inactive end + return "> " --shouldn't get here. + end + + function draw_menu() + local ass = assdraw.ass_new() + + ass:pos(opts.text_padding_x, opts.text_padding_y) + ass:append(opts.style_ass_tags) + + for i,v in ipairs(options) do + ass:append(choose_prefix(i)..v.label.."\\N") + end + + local w, h = mp.get_osd_size() + if opts.scale_playlist_by_window then w,h = 0, 0 end + mp.set_osd_ass(w, h, ass.text) + end + + function destroy() + timeout:kill() + mp.set_osd_ass(0,0,"") + mp.remove_key_binding("move_up") + mp.remove_key_binding("move_down") + mp.remove_key_binding("select") + mp.remove_key_binding("escape") + destroyer = nil + end + timeout = mp.add_periodic_timer(opts.menu_timeout, destroy) + destroyer = destroy + + mp.add_forced_key_binding(opts.up_binding, "move_up", function() selected_move(-1) end, {repeatable=true}) + mp.add_forced_key_binding(opts.down_binding, "move_down", function() selected_move(1) end, {repeatable=true}) + mp.add_forced_key_binding(opts.select_binding, "select", function() + destroy() + mp.set_property("ytdl-format", options[selected].format) + reload_resume() + end) + mp.add_forced_key_binding(opts.toggle_menu_binding, "escape", destroy) + + draw_menu() + return +end + +local ytdl = { + path = "youtube-dl", + searched = false, + blacklisted = {} +} + +format_cache={} +function download_formats() + local function exec(args) + local ret = utils.subprocess({args = args}) + return ret.status, ret.stdout, ret + end + + local function table_size(t) + s = 0 + for i,v in ipairs(t) do + s = s+1 + end + return s + end + + local url = mp.get_property("path") + + url = string.gsub(url, "ytdl://", "") -- Strip possible ytdl:// prefix. + + -- don't fetch the format list if we already have it + if format_cache[url] ~= nil then + local res = format_cache[url] + return res, table_size(res) + end + mp.osd_message("fetching available formats with youtube-dl...", 60) + + if not (ytdl.searched) then + local ytdl_mcd = mp.find_config_file("youtube-dl") + if not (ytdl_mcd == nil) then + msg.verbose("found youtube-dl at: " .. ytdl_mcd) + ytdl.path = ytdl_mcd + end + ytdl.searched = true + end + + local command = {ytdl.path, "--no-warnings", "--no-playlist", "-J"} + table.insert(command, url) + local es, json, result = exec(command) + + if (es < 0) or (json == nil) or (json == "") then + mp.osd_message("fetching formats failed...", 1) + msg.error("failed to get format list: " .. err) + return {}, 0 + end + + local json, err = utils.parse_json(json) + + if (json == nil) then + mp.osd_message("fetching formats failed...", 1) + msg.error("failed to parse JSON data: " .. err) + return {}, 0 + end + + res = {} + msg.verbose("youtube-dl succeeded!") + for i,v in ipairs(json.formats) do + if v.vcodec ~= "none" then + local fps = v.fps and v.fps.."fps" or "" + local resolution = string.format("%sx%s", v.width, v.height) + local l = string.format("%-9s %-5s (%-4s / %s)", resolution, fps, v.ext, v.vcodec) + local f = string.format("%s+bestaudio/best", v.format_id) + table.insert(res, {label=l, format=f, width=v.width }) + end + end + + table.sort(res, function(a, b) return a.width > b.width end) + + mp.osd_message("", 0) + format_cache[url] = res + return res, table_size(res) +end + + +-- register script message to show menu +mp.register_script_message("toggle-quality-menu", +function() + if destroyer ~= nil then + destroyer() + else + show_menu() + end +end) + +-- keybind to launch menu +mp.add_forced_key_binding(opts.toggle_menu_binding, "quality-menu", show_menu) + +-- special thanks to reload.lua (https://github.com/4e6/mpv-reload/) +function reload_resume() + local playlist_pos = mp.get_property_number("playlist-pos") + local reload_duration = mp.get_property_native("duration") + local time_pos = mp.get_property("time-pos") + + mp.set_property_number("playlist-pos", playlist_pos) + + -- Tries to determine live stream vs. pre-recordered VOD. VOD has non-zero + -- duration property. When reloading VOD, to keep the current time position + -- we should provide offset from the start. Stream doesn't have fixed start. + -- Decent choice would be to reload stream from it's current 'live' positon. + -- That's the reason we don't pass the offset when reloading streams. + if reload_duration and reload_duration > 0 then + local function seeker() + mp.commandv("seek", time_pos, "absolute") + mp.unregister_event(seeker) + end + mp.register_event("file-loaded", seeker) + end +end diff --git a/mutt/.mailsynclastrun b/mutt/.mailsynclastrun new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/mutt/.mailsynclastrun diff --git a/mutt/signature b/mutt/signature new file mode 100644 index 0000000..44537b0 --- /dev/null +++ b/mutt/signature @@ -0,0 +1 @@ +To all NSA and FBI agents, or any government official reading this email without my explicit consent, please ask yourself whether invading my Fourth Amendment rights really is for the "greater good." diff --git a/ncmpcpp/bindings b/ncmpcpp/bindings new file mode 100644 index 0000000..01e9543 --- /dev/null +++ b/ncmpcpp/bindings @@ -0,0 +1,46 @@ +def_key "+" + show_clock +def_key "=" + volume_up + +def_key "j" + scroll_down +def_key "k" + scroll_up + +def_key "ctrl-u" + page_up +#push_characters "kkkkkkkkkkkkkkk" +def_key "ctrl-d" + page_down +#push_characters "jjjjjjjjjjjjjjj" + +def_key "h" + previous_column +def_key "l" + next_column + +def_key "." + show_lyrics + +def_key "n" + next_found_item +def_key "N" + previous_found_item + +def_key "M" + move_selected_items_up +def_key "m" + move_selected_items_down + +# not used but bound +def_key "J" + move_sort_order_down +def_key "K" + move_sort_order_up + +def_key "g" + move_home + +def_key "G" + move_end diff --git a/ncmpcpp/config b/ncmpcpp/config new file mode 100644 index 0000000..2b23993 --- /dev/null +++ b/ncmpcpp/config @@ -0,0 +1,92 @@ +############################################################################## +## This is the example configuration file. Copy it to $HOME/.ncmpcpp/config ## +## or $XDG_CONFIG_HOME/ncmpcpp/config and set up your preferences. ## +############################################################################## +# +##### directories ###### +## +## Directory for storing ncmpcpp related files. Changing it is useful if you +## want to store everything somewhere else and provide command line setting for +## alternative location to config file which defines that while launching +## ncmpcpp. +## +# +ncmpcpp_directory = ~/.config/ncmpcpp +# +## +## Directory for storing downloaded lyrics. It defaults to ~/.lyrics since other +## MPD clients (eg. ncmpc) also use that location. +## +# +lyrics_directory = ~/.config/ncmpcpp/lyrics +# +##### connection settings ##### mpd_host = "localhost" +mpd_port = 6600 +# +mpd_connection_timeout = 5 +# +## Needed for tag editor and file operations to work. +## +mpd_music_dir = "/mnt/Music" +# +mpd_crossfade_time = 5 + + +media_library_primary_tag = album_artist + +follow_now_playing_lyrics = yes + +allow_for_physical_item_deletion = no + +lastfm_preferred_language = en + +show_hidden_files_in_local_browser = yes + +screen_switcher_mode = playlist, browser, last_fm + +display_bitrate = yes + +external_editor = vim + +visualizer_look = " " +startup_screen = visualizer +startup_slave_screen = playlist +startup_slave_screen_focus = yes +locked_screen_width_part = 30 +#### Playlist formatting + +song_list_format = "$3{%a »$7 %t $/r$/u$R$b$6%l$/b }|{%f$/r}" +now_playing_prefix = "$b$6 »» " +now_playing_suffix = "$/b" +/*now_playing_suffix = " >>>>"*/ +playlist_display_mode = "classic" + +song_columns_list_format = "(50)[6]{t} (50)[4]{ar} $b(5f)[9]{lr}$/b" +#song_columns_list_format = "(25)[6]{a} (25)[4]{tr} (5)[6]{lr:Length}" + +#### General formatting +titles_visibility = "no" +header_visibility = "no" +statusbar_visibility = "no" +playlist_show_remaining_time = yes +#volume_color = "black:b" +#/*alternative_header_first_line_format = $(2_16)$b» {%f} «$/b$9*/ +alternative_header_first_line_format = $3$b» {%t} «$/b +alternative_header_second_line_format = $7{%b}|{/%D/} +user_interface = alternative +current_item_prefix = $(16)$r +current_item_suffix = $/r$(end) + + +#### Misc stuff +discard_colors_if_item_is_selected = "yes" +autocenter_mode = "yes" +centered_cursor = "yes" +mouse_support = "yes" +colors_enabled = "yes" +store_lyrics_in_song_dir = "yes" +song_window_title_format = ncmpcpp +ask_before_clearing_playlists = "yes" +volume_change_step = "1" + +execute_on_song_change = ~/.config/ncmpcpp/ncmpcpp-ueberzug/ncmpcpp_cover_art.sh && notify-send "Now Playing" "$(mpc --format '%title% \n%artist% - %album%' current)" diff --git a/ncmpcpp/error.log b/ncmpcpp/error.log new file mode 100644 index 0000000..15aa72d --- /dev/null +++ b/ncmpcpp/error.log @@ -0,0 +1 @@ +TagLib: Could not open file /mnt/trollshotlol@maeve/Music/RADWIMPS/Your Name (Original Motion Picture Soundtrack)/01 Dream Lantern.mp3 diff --git a/ncmpcpp/lyrics/100 gecs - 745 sticky.txt b/ncmpcpp/lyrics/100 gecs - 745 sticky.txt new file mode 100644 index 0000000..0b0266c --- /dev/null +++ b/ncmpcpp/lyrics/100 gecs - 745 sticky.txt @@ -0,0 +1,48 @@ +[Laura Les:] +I make my money on my own, yeah +Wakin' up five in the morning, yeah +Throwin' money in the oven, yeah +Fuck sleep and his cousin, yeah +I've been on a roll, yeah +I spend my money like it's stolen, yeah +Shit, I'm already broke and it's only 7:45 in the morning, yeah + +[Dylan Brady:] +Goddamn, what the fuck? +Feel like I'm not good enough +Get off of me, I swear I'll do it all +Do it all, do it all +I can swear I can do it all +Do it all, do it all +I can swear I can do it all + +[Laura Les:] +I'm done trying to plan +Do what I want, don't hold my hand +I can do anything I want, first try +You take like ten tries, hurtin' my eyes +(Oh my god) + +[Dylan Brady:] +Batshit, got a check and I spent it +Money got me feelin' like a dentist +I can do anything I put my mind to +You can't do anything even if you wanted to (Yeah) + +[Laura Les:] +I make my money on my own, yeah +Wakin' up five in the morning, yeah +Throwin' money in the oven, yeah +Fuck sleep and his cousin, yeah +I've been on a roll, yeah +I spend my money like it's stolen, yeah +Shit, I'm already broke and it's only 7:45 in the morning, yeah + +[Dylan Brady:] +Goddamn, what the fuck? +Feel like I'm not good enough +Get off of me, I swear I'll do it all +Do it all, do it all +I can swear I can do it all +Do it all, do it all +I can swear I can do it all
\ No newline at end of file diff --git a/ncmpcpp/lyrics/100 gecs - 800db cloud.txt b/ncmpcpp/lyrics/100 gecs - 800db cloud.txt new file mode 100644 index 0000000..670b7ce --- /dev/null +++ b/ncmpcpp/lyrics/100 gecs - 800db cloud.txt @@ -0,0 +1,52 @@ +[Laura Les:] +He said, "I love you," on the plane +I said, "I love you too" +He said, "Everything is different now, everything has changed +Always on a plane, always something new" +I said, "Nothing's new, nothing's changed, I still need you" +I'm 'bout to hit the boof +Smokin' somethin' new + +[Dylan Brady:] +No rules, then I smoke, then it's all gone +Hit that G so hard that I fall off +Taking shots in the dark, that's a bad call +Going straight for your head, gotta saw it off +(Go, go, go, go, go) +I got a bag on the way +(Go, go, go, go, go) +Smokin' a zip in a day +(Go, go, go, go, go) +What were you trying to say? +(Go, go, go, go, go) +Making it up on the way + +[Laura Les:] +I never say what I need, when I need you +Never say what I need, when I need you +I'm good on the weed but I need you +I might hit the weed, I might hit the boof +I'm addicted to Monster, money, and weed, yeah +I'm blowin' clouds so loud, you can't fuckin' see, yeah +I'm addicted to everything that I see, yeah +I'm addicted to making money off weed, yeah +I might go and throw my phone into the lake, yeah +It ain't hard to quit caring what you think, yeah +Burnt me one too many times like a tree, yeah +Now there's fire raining down on your screams, yeah + +[Laura Les & Dylan Brady:] +Ohhhh +Yeah +(AAAAAAAA) +I hit the big boof then it's all gone +(AAAAAAAA) +I hit the big boof then it's gone +(AAAAAAAA) +I hit the big boof and the weed, yeah +(AAAAAAAA) +I hit the big boof then it's gone +Just shut the fuck up, where's the weed at? +Just shut the fuck up, where's the weed? +Just please fuck me up, where's the weed at? +Just shut the fuck up
\ No newline at end of file diff --git a/ncmpcpp/lyrics/100 gecs - money machine.txt b/ncmpcpp/lyrics/100 gecs - money machine.txt new file mode 100644 index 0000000..fe835eb --- /dev/null +++ b/ncmpcpp/lyrics/100 gecs - money machine.txt @@ -0,0 +1,51 @@ +[Laura Les:] +Hey, you lil' piss baby +You think you're so fucking cool? Huh? +You think you're so fucking tough? +You talk a lotta big game for someone with such a small truck +Aw, look at those arms +Your arms look so fucking cute +They look like lil' cigarettes +I bet I could smoke you +I could roast you +And then you'd love it and you'd text me "I love you" +And then I'd fucking ghost you + +With the big boys coming with the big stuff +I feel so clean like a money machine, oh yeah +Big boys coming with the big trucks +Feel so clean like a money machine, oh yeah +Big boys coming with the big trucks +Feel so clean like a money machine, oh yeah +Big boys coming with the picture +Feel so clean like a money machine, oh yeah (oh yeah) + +Feel so clean like a money machine +Feel so clean like a money machine +Feel so clean like a money machine +Feel so clean like a money machine + +[Dylan Brady:] +Tell me what's the deal, I've been tryin' to go to bed +I've been up for days, I've been tryna get ahead +Said it all before, and I'll say it once again +I'm better off alone +Tell me what's the deal, I've been trying to go to bed +I've been up for days, I've been tryna get ahead +Said it all before, and I'll say it once again +I'm better off alone + +[Laura Les:] +With the big boys coming with the big stuff +I feel so clean like a money machine, oh yeah +Big boys coming with the big trucks +Feel so clean like a money machine, oh yeah +Big boys coming with the big trucks +Feel so clean like a money machine, oh yeah +Big boys coming with the picture +Feel so clean like a money machine, oh yeah (oh yeah) + +Feel so clean like a money machine +Feel so clean like a money machine +Feel so clean like a money machine +Feel so clean like a money machine
\ No newline at end of file diff --git a/ncmpcpp/lyrics/100 gecs - xXXi_wud_nvrstøp_ÜXXx.txt b/ncmpcpp/lyrics/100 gecs - xXXi_wud_nvrstøp_ÜXXx.txt new file mode 100644 index 0000000..75acfd7 --- /dev/null +++ b/ncmpcpp/lyrics/100 gecs - xXXi_wud_nvrstøp_ÜXXx.txt @@ -0,0 +1,142 @@ +[Tommy Cash:] +Mr. Worldwide +International killa +(Babe, babe, babe, babe) +100 gecs, Tommy Cash in this bitch + +[Hannah Diamond (Tommy Cash):] +Baby, you know that I got you (Got you) +I could never stop you (Stop you) +I would never stop you (Stop you) +'Cause you know I'm crazy (Crazy) +Crazy for you, baby +And you gotta know (Babe, babe) +Every day, you got me always feeling like +Baby, you know that I got you +I could never stop you +I would never stop you +'Cause you know I'm crazy +Crazy for you, baby +And you gotta know +Every day, you got me always feeling like +Baby, you know that I got you +I could never stop you +I would never stop you +'Cause you know I'm crazy +Crazy for you, baby +And you gotta know +Every day, you got me always feeling like + +[Tommy Cash:] +I'm always highest in the room +There's nothing new +Trippin' on, trippin' on mushrooms +Flyin' through the rooms +I'm a madman from the Moon +Change up your view +I be bossin', bossin' on them rules +Smokin' out the school +Slowly gliding, gliding in the pure +I found the cure +This way to truest, truest you +Boy, you can do +I'm lookin', lookin' out for you +Pay-per-view +There is nothing I can't do +Now you need to find my crew +Find my crew, find my crew + +[Hannah Diamond:] +Ba-ba-ba-ba-baby, you know that I got you +I could never stop you +I would never stop you +'Cause you know I'm crazy +Crazy for you, baby +And you gotta know +Every day, you got me always feeling like +Baby, you know that I got you +I could never stop you +I would never stop you +'Cause you know I'm crazy +Crazy for you, baby +And you gotta know +Every day, you got me always feeling like + +[Dylan Brady:] +Giving my heart for you to take +We could go and drive and leave this place +Getting my strength from your embrace +Baby, let's go all the way +Giving my heart for you to take +We could go and drive and leave this place +Getting my strength from your embrace +Baby, let's go all the way + +[Tommy Cash:] +Death is easy, life is hard +Every second is a path +Every moment, piece of art +I'm the dopest, shooting star +Death is easy, life is hard +Every second is a path +Every moment, piece of art (Yeah) +I'm the dopest, shooting star + +[Hannah Diamond:] +Baby, you know that I got you +I could never stop you +I would never stop you +'Cause you know I'm crazy +Crazy for you, baby +And you gotta know +Every day, you got me always feeling like +Baby, you know that I got you +I could never stop you +I would never stop you +'Cause you know I'm crazy +Crazy for you, baby +And you gotta know +Every day, you got me always feeling (Go!) + +[Hannah Diamond:] +Every day, you got me always feeling like +Every day, you got me always feeling like + +Baby, you know that I got you +I could never stop you +I would never stop you +'Cause you know I'm crazy +Crazy for you, baby +And you gotta know +Every day, you got me always feeling like +Baby, you know that I got you +I could never stop you +I would never stop you +'Cause you know I'm crazy +Crazy for you, baby +And you gotta know +Every day, you got me always feeling like +Baby, you know that I got you +I could never stop you +I would never stop you +'Cause you know I'm crazy +Crazy for you, baby +And you gotta know +Every day, you got me always feeling like +Baby, you know that I got you +I could never stop you +I would never stop you +'Cause you know I'm crazy +Crazy for you, baby +And you gotta know +Every day, you got me always feeling like +Baby, you know that I got you +I could never stop you +I would never stop you +'Cause you know I'm crazy +Crazy for you, baby +And you gotta know +Every day, you got me always feeling like +Baby, you know that I got you +I could never stop you +I would never stop you
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Death Grips - Bass Rattle Stars Out the Sky.txt b/ncmpcpp/lyrics/Death Grips - Bass Rattle Stars Out the Sky.txt new file mode 100644 index 0000000..9c65bae --- /dev/null +++ b/ncmpcpp/lyrics/Death Grips - Bass Rattle Stars Out the Sky.txt @@ -0,0 +1,47 @@ +Everybody anybody anybody everybody +Get off me +Everybody aint nobody anybody aint nobody +Get off me + +Bury two thumb disappear three eye run among you +Bass rattle stars out the sky + +Never not at war torn mystic sheddin bands form of linguistic +Subliminal exit lurk in cryptic black google search it won't find shit +Fifth attitude bury all my business + +Bury two thumb disappear three eye run among you +Bass rattle stars out the sky + +Chemical leak melts your reef dry heave crease your knees +Python in your belly nauseous got the chills +Draw the blinds its time to get +Can't explain its a feeling inhale the moment till I scorch your lips don't hurt me +Gypsy gallop does you dirty +Peak at three thirty in the morning with your voice in my headquarters and I'll take you there + +Everybody anybody anybody everybody +Get off me +Everybody aint nobody anybody aint nobody +Get off me + +Bury me two thumb disappear three eye I run among you +Bass rattle stars out the sky + +Sudden death in the west london connect live and direct +Mad cow on the beat break me speed lace your senses +Can't think straight I can't relate its all a dream mate leave a message +I'm slangin pain in the paint can't make it stop +Said knock that off I rep that gutter fly +Come from from where you run from hide aint no level bove this high +Off I rep that gutter fly off I rep that gutter fly +Base rattle stars out the sky + +Get off me + +Everybody anybody anybody everybody +Get off me +Everybody aint nobody anybody aint nobody +Get off me + +Bury two thumb disappear three eye run among you base rattle stars out the sky
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Death Grips - Black Dice.txt b/ncmpcpp/lyrics/Death Grips - Black Dice.txt new file mode 100644 index 0000000..b65878f --- /dev/null +++ b/ncmpcpp/lyrics/Death Grips - Black Dice.txt @@ -0,0 +1,52 @@ +Feel me now + +My forefinger flippin pentagrams +Left hand catch them pix by them peak facin south +Pinhole pic of my wingspan jail breakin doubt +Highest vibration ninth ring of fire crowned +War cry feel my call hear my chamber revolve +In your brain like the halls of Amenti +Treat a bitch like a whore +Leave your pink sock at the door +Saturn level flexed +Like these fractals I coalesce +I'm not takin this shit anymore +One way in come again one way in no way out +Cheek in tongue when in doubt feel me now +Violators feedem vapors don't do me no favors + +Feel me now + +Drop top changaa flow go boom boom off my rockers +Rollin doom bumbata choppers +See me through spot light cherry +Fog like Nunhead no teeth mary +Don't carry on +Don't where are we how far along +Me care not dare not key my brom +My life on a limb about to break +I'm a tower pon tectonic plate + +Feel me now + +Why you think I'm havin everything you're rimmin ass for askem +Whose ass they're rimmin when I'm flaggin +Load your cannon shutter flash heavy damage +Steady hand shit forget me you can't bitch +Slappin click clack tricks stretch please +My sleeves plastic can't breath in this atmos +Fuck atlas my ego palms planets +Fuck you yeah yeah its that fuck you can't stand slip +Cut you cause I can dip + +Feel me now + +I'm the man who press that button +Sweaty palm get caught bluffin +Fold a man into nothin for nothin +My oxidized gold shaft floods your jugular with lucifer +I'll shoot it word feel like you swallowed jupiter +Today your city tomorrow lifting the universe +One way in one way out +Cheek in tongue when in doubt +Feel me now
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Death Grips - Get Got.txt b/ncmpcpp/lyrics/Death Grips - Get Got.txt new file mode 100644 index 0000000..eae6699 --- /dev/null +++ b/ncmpcpp/lyrics/Death Grips - Get Got.txt @@ -0,0 +1,93 @@ +Get get get get +Got got got got +Blood rush to my +Head lit hot lock +Poppin’ off the +Fuckin’ block knot +Clockin’ wrist slit +Watch bent thought bot + +[Verse 1] +Tail pipe draggin’ volume blastin’ bailin’ out my brain +Red light flash +Dem stop I smash +Abraxas, hydroplane, massive +Catch this flight flow +Rainin’ madness +Mastered mine and laced +The ave with black cat fish tailin’ waves of stratus +Curb right ta far left lane + +Don’t wait for me, if I care +Bout anything, anywhere +Losin’ myself, I get the stares +What I’m lookin’ at, wasn’t there +(Wasn’t there) + +Nothin’ out there +Can’t stay inside +Hit the bar, sleep deprived +Who drove the car +I’m still alive +Up in smoke, moon was low +How’d you know +Didn’t say I did +Whose is this, you know what this is.. but do you know + +[Hook] +Fly inside out +Rot dem big shot simp slot shit but a one hit quick stop + +[Verse 2] +So many ways +Ta skin the frame +Remember when +First got strange +Now I just think it life obey +So what comes next +Right away +(Right away) + +Raise the cup, tilt it dry +Come black cloud +Cover the sky +Tongue thought pupil +Of your eye +Sickness moves you can’t deny +Lickin’ thought you mastermind +For mercy man cry + +Yeah I’m knowin’ and +You know why +Nail thought mental +Ever dem try +Pigeon hole me get crucified +Can’t clone this edge +What’s it cost +To lose your head +Wit out end up lost +Should be askin’ +Where’s the safe +Born wit a ski mask +On my face + +[Hook] + +[Verse 3] +Lycanthropic manic cycles +Fire water burnin’ bibles +Wake up ragin’ call a taxi +Take me to the nearest city +Cell light up yeah get at me make it quick though blood im busy (get busy) + +Drilled a hole into my head +Pierced the bone and +Felt the breeze +Lift my thoughts out +Dem sick bed +Wit a pair of crow +Skeleton wings +Know nothin’ since then +It seems +Been floatin’ thought +The nexus threadin’ dreams
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Death Grips - Lil Boy.txt b/ncmpcpp/lyrics/Death Grips - Lil Boy.txt new file mode 100644 index 0000000..3f09505 --- /dev/null +++ b/ncmpcpp/lyrics/Death Grips - Lil Boy.txt @@ -0,0 +1,65 @@ +Burn through it burn through it +I'm not takin turns to it turns to it +You know we burn through it burn through it +We aint takin turns to turns to it + +Coughin up sirens I'm firin +Krocadil lips off your smile +Quit that fidget looks suspicious +Who dat screw dat aint got my digits + +Fear over pride lil boy +Flood you can't hide lil boy +Face of a woman lil boy +Tears of a child lil boy + +I'm rising sign of sulfur +Skeletal bell toller +Handle in each of my tentacles +I'm moonshining juice don't try me +Live to feel life beat me nothing hurts +I'm seething your smoke signals proceed me +I'm inside my tv +Where everyone but I can see me +Why are you here + +Fear over pride lil boy +Flood you can't hide lil boy +Face of a woman lil boy +Tears of a child lil boy + +Burn through it burn through it +I'm not takin turns to it turns to it +You know we burn through it burn through it +We aint takin turns to it turns to it + +You know we burn through it burn through it +I'm not takin turns to it turns to it + +See myself come spin through top of you +My flint lit slit that attitude +Lil brain got confused +Choo choo train of thought in my logic loop + +Fear over pride lil boy +Flood you can't hide lil boy +Face of a woman lil boy +Tears of a child ll boy + +Broken hands on all my fingers +Buckle down my knuckles like screamers +Stitch up my blown out trench with leather streamers +I keepem hangin from my balcony shrivel in my sun +Warm piss showin through his cheap slacks this bitch is done +Open my front ragin like I've never slept +Make him cry like a baby formula on the breath +Needle of your eye lil boy +River nile wide lil boy +Fear over pride lil boy +Flood you can't hide lil boy +Face of a woman lil boy +Tears of a child lil boy +In a foreign land lil boy +Single file lil boy +You know we burn through it burn through it +We aint takin turns to it turns to it
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Death Grips - No Love.txt b/ncmpcpp/lyrics/Death Grips - No Love.txt new file mode 100644 index 0000000..f9caf71 --- /dev/null +++ b/ncmpcpp/lyrics/Death Grips - No Love.txt @@ -0,0 +1,87 @@ +How the trip never stops +On and on, it's beyond insane +Why I set myself up +In a raging sea of flames? + +You're fit to learn the proper meaning of a beatdown +Madness, chaos in the brain +Let my blood flow, make my blood flow through you, mane +You got no business questioning a thang +You're fit to learn the proper meaning of a beatdown +Madness, chaos in the brain +Let my blood flow, make my blood flow through you, mane +You got no business questioning a thang +You're fit to learn the proper meaning of a + +Never not on it, leanin' so hard you're ashamed +You can't dismiss this sick transmission, huffs your brain +Exhale your will and forget I ever knew you +Fuck do you do? +Fuck a man with hips for hulu +Rack a snitch, chalk and cue you +Corner pocket consume you +Too many hoes in my +Too many hoes in my motherfuckin' meal +Asking if I know how a motherfucker feels +How a motherfucker feels +Slit them choke, flip them boat +Dead bitch float, swollen corpse +No remorse, navigated off course +Off course I can make you scream but if you ask for more +Bullshit, matador, grab the floor, whip it cracked to all fours +You whimper while I check my phone +Who's next? Assassin roam +Music drifts, I have no home +Choose this life you're on your own + +You're fit to learn the proper meaning of a beatdown +Madness, chaos in the brain +Let my blood flow, make my blood flow through you, mane +You got no business questioning a thang +You're fit to learn the proper meaning of a beatdown +Madness, chaos in the brain +Let my blood flow, make my blood flow through you, mane +You got no business questioning a thang +You're fit to learn the proper meaning of a + +Swallowed way too much +Couldn't handle it, I fell +Down a spiral stair case winding to hell + +Fuck it, now I can't quit, will never be the same +I got that attitude, you got no thang +I'm fit to hurt you; gives a fuck about the way I move weight? +Dark matter, flu state of consciousness +Blew straight through you won't do shit +But beg me to do this +Again and again and again and again +Strangler clutch, sine wave deconstruct +My way or no way, bangin' hey makin' lust +Lucid nut shake shake it up +Booyakah +You're a bitch made to be crushed +Came like, what +Now you crave my, touch +Flat busted on front street cake cuppin' +Say you wasn't lion mane +I done been done with tame +Head hunter, fuck the fame +Switch lanin' ripper slangin' +Hit me nuclear wind at my back +Smokin' goldfish at the photo mat +Load my clap clap can't trust 'em never did +What it is? + +You're fit to learn the proper meaning of a beatdown +Madness, chaos in the brain +Let my blood flow, make my blood flow through you, mane +You got no business questioning a thang +You're fit to learn the proper meaning of a beatdown +Madness, chaos in the brain +Let my blood flow, make my blood flow through you, mane +You got no business questioning a thang +You're fit to learn the proper meaning of a beatdown +Madness, chaos in the brain +Let my blood flow, make my blood flow through you, mane +You got no business questioning a thang +You're fit to learn the proper meaning of a
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Death Grips - Pop.txt b/ncmpcpp/lyrics/Death Grips - Pop.txt new file mode 100644 index 0000000..fb86d92 --- /dev/null +++ b/ncmpcpp/lyrics/Death Grips - Pop.txt @@ -0,0 +1,28 @@ +Pop pop pop pop + +Your crisis is my alarm +Why I'm like shh stay calm +You fight shit I ride upon +My knife been drawn +3-6-5 light of dawn +Lit up rock you live under +Ass backwards muthafucka features like hot butter +Like your brothers your father and your sisters your mother +Trend setter maximum third planet from the sun orbit my lungs +Bulldozin cul de sacs ground under over every act +Cut no slack no slack + +Pop pop pop pop + +No chance to throw I rush the mound +Rage stormin off the chains remind me of rape house slave cock rings +You're played out like talking +Your cadence is sloppy +Can't break me I got me +You're grave stink I'm lofty +You're lady like lolli +Pop tramp on that jigaboo goddamn I'm so sick of you +I despise that shit what I would never align me with +Feel free to mime me but don't be saltine when I call you a biter bitch + +Pop pop pop pop
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Death Grips - Stockton.txt b/ncmpcpp/lyrics/Death Grips - Stockton.txt new file mode 100644 index 0000000..b5615c5 --- /dev/null +++ b/ncmpcpp/lyrics/Death Grips - Stockton.txt @@ -0,0 +1,51 @@ +I'm bouncin whoop whoop +Loud and lit Allen Poe poe shit +I'm bout ta loose that blue + +I can't feel hype I man kill hype +Slapped to still life +Actors posin plastic like token +Can't fit my low end splits your ocean +Obey the chosen the latent quotient raised to drogen +Heavy is the head you're blowin +I'm fuckin flippin +Minute ago wasn't schiz but now I'm itchin +Critical condition +Thought I told you not to listen +This road don't stop shiftin +I'm floatin I'm driftin + +I'm bouncin whoop whoop +Loud and lit Allen Poe poe shit +I'm bout ta loose that blue + +You aint heard not my problem +Past aint poppin calli curbed beyond forgotten +Pervin while them clutch the bottom +Feeders suck like stuck in Stockton +Cuttem off like drunks been clockin +Least three a month prestalkin +Noted symptoms hid like like Laden +Bin through shit like sodom +Instinct man no question looped me into no direction +No footprints in this bleach I tread them don't know yet but thats expected + +I'm bouncin whoop whoop +Loud and lit Allen Poe poe shit +I'm bout ta loose that blue + +Caved in my ribs drug out fucked out Samhain skid off bay bridge +Come with me and I'll unhurt you +Keep all I do locked kept your move +Keep all I do locked kept your move +Should we be worried what I'm not +Heard bleeders knock all types a shit +Is of no consequence +I'm out there I'm out there +I'm pushin mojo yo yo crack back and blow yo whole set lack +The k honas ta make it clap +Bouncin get up wit it + +I'm bouncin whoop whoop +Loud and lit Allen Poe poe shit +I'm bout ta loose that blue
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Emma Stone, Callie Hernandez, Sonoya Mizuno, Jessica Rothe - Someone in the Crowd.txt b/ncmpcpp/lyrics/Emma Stone, Callie Hernandez, Sonoya Mizuno, Jessica Rothe - Someone in the Crowd.txt new file mode 100644 index 0000000..5a7f6e7 --- /dev/null +++ b/ncmpcpp/lyrics/Emma Stone, Callie Hernandez, Sonoya Mizuno, Jessica Rothe - Someone in the Crowd.txt @@ -0,0 +1,84 @@ +[Tracy:] +You got the invitation + +[Alexis:] +You got the right address + +[Tracy:] +You need some medication? + +[Caitlin:] +The answer's always yes + +[Tracy:] +A little chance encounter +Could be the one you've waited for + +[Alexis, Caitlin & Tracy:] +Just squeeze a bit more + +[Alexis:] +Tonight we're on a mission +Tonight's the casting call + +[Caitlin:] +If this is the real audition + +[Mia:] +Oh, God, help us all + +[Tracy:] +You make the right impression +Then ev'rybody knows your name + +[Alexis & Caitlin:] +We're in the fast lane + +[Alexis:] +Someone in the crowd +Could be the one you need to know +The one to fin'lly lift you off the ground + +[Tracy:] +Someone in the crowd could +Take you where you wanna go +If you're the someone ready to be found + +[Alexis:] +The someone ready to be found + +[Caitlin & Tracy:] +Do what you need to do +'Til they discover you + +[Alexis, Caitlin & Tracy:] +And make you more than who +You're seeing now +So with the stars aligned + +[Mia:] +I think I'll stay behind + +[Alexis, Caitlin & Tracy:] +You've got to go and find + +[Caitlin:] +That someone in the crowd + +[All:] +That someone in the crowd + +[Mia:] +Is someone in the crowd the only thing you really see? +Watching while the world keeps spinning 'round? +Somewhere there's a place where I find who I'm gonna be +A somewhere that's just waiting to be found + +[All:] +Someone in the crowd could be the one you need to know +The someone who could lift you off the ground +Someone in the crowd could take you where you wanna go +Someone in the crowd could make you +Someone in the crowd could take you +Flying off the ground +If you're the someone ready to be found
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Godspeed You! Black Emperor - Antennas to Heaven.txt b/ncmpcpp/lyrics/Godspeed You! Black Emperor - Antennas to Heaven.txt new file mode 100644 index 0000000..c09d73c --- /dev/null +++ b/ncmpcpp/lyrics/Godspeed You! Black Emperor - Antennas to Heaven.txt @@ -0,0 +1,33 @@ +[Part I (0:00-1:00):"Moya Sings 'Baby-O'..."] +What'll we do with the baby-o? +What'll we do with the baby? +What'll we do with the baby-o? + +Wrap him up in a tablecloth +Throw him up in the old hayloft +That's what we do with the baby +That's what we do with the baby-o + +Every time the baby grins +Give my baby another bottle of gin +That's what we do with the baby +That's what we do with the baby-o + +Every time the baby cries +Stick my finger in the babies eyes +That's what we do with the baby +That's what we do with the baby-o + +[Part II (01:00-01:58):"Edgyswingsetacid"] + +[Part III (01:58-2:45):"[Glockenspiel Duet Recorded on a Campsite In Rhinebeck, N.Y.]"] + +[Part IV (2:45-4:03):"'Attention...Mon Ami...Fa-Lala-Lala-La-La...' [55-St. Laurent]"] +Mon ami! Mon ami! Coco, Coco, le petit singe… +Le bon roi Dagobert, le bon roi Dagobert, a, le bon roi Dagobert, a mis sa culotte à l'envers, le grand Saint Eloi lui dit: “O mon roi, votre majesté est mal culottée!” “Cest vrai, lui dit le roi, je vais la remettre à l'endroit!” C'était un idiot. J'ai vu Coco, Coco le petit singe, hier au Zoo de Toronto dans sa petite cage. Il m’a dit si tu veux on va jouer. Attention! Mon ami, mon ami! Fa-lala-lala-la-la… + +[Part V (4:03-13:46):"She Dreamt She Was a Bulldozer, She Dreamt She Was Alone in an Empty Field"] + +[Part VI (13:46-16:55):"Deathkamp Drone"] + +[Part VII (16:55-18:58):"[Antennas to Heaven...]"]
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Godspeed You! Black Emperor - Sleep.txt b/ncmpcpp/lyrics/Godspeed You! Black Emperor - Sleep.txt new file mode 100644 index 0000000..d643919 --- /dev/null +++ b/ncmpcpp/lyrics/Godspeed You! Black Emperor - Sleep.txt @@ -0,0 +1,6 @@ +[Part 1 (0:00-1:10):"Murray Ostril: '...They Don't Sleep Anymore on the Beach...'"] +Anyways, let's see what else I, uh... It was Coney Island. They called Coney Island, "the playground of the world." There was no place like it, in the whole world, like Coney Island when I was a youngster. No place in the world like it, and it was so fabulous. Now it's shrunk down to almost nothing, you see. And, uh, I still remember in my mind how things used to be, and uh, you know, I feel very bad. But people from all over the world came here. From all over the world, it was the playground -- they called it the playground of the world, over here. Anyways, uh, I... uh... you know... I even got -- when I was, uh, when I was very small, I even got lost at Coney Island, but they found me. On the, on, on the beach. And we used to sleep on the beach here, sleep overnight. They don't do that anymore. Things changed, you see. They don't sleep anymore on the beach... + +[Part 2 (1:10-13:24):"Monheim"] + +[Part 3 (13:24-23:18):"Broken Windows, Locks of Love Pt. III."]
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Godspeed You! Black Emperor - Static.txt b/ncmpcpp/lyrics/Godspeed You! Black Emperor - Static.txt new file mode 100644 index 0000000..424412e --- /dev/null +++ b/ncmpcpp/lyrics/Godspeed You! Black Emperor - Static.txt @@ -0,0 +1,67 @@ +[Part I (0:00-3:34):"Terrible Canyons of Static"] + +[Part II (3:34-4:43):"Atomic Clock."] +At the tone... 3 hours, 21 minutes; coordinated universal time + +[Part III (4:43-7:22):"Chart #3"] +...prepared in innocence to meet our king of glory +And so we have this +You have it in your secret windows +And you're understanding to understand it and to bring it forth +It takes minute detail +It takes a holy life +It takes emotions +It takes dedication +It takes dedication +It takes a death +And only God can allow it +And you couldn't do it if you're not the seed of God +And so the path through the great corridors +These are corridors unto his perfection +That is which the prophet and the Urim and Thummim has penetrated +That through this great sea of blackness +That I penetrated through these corridors +And I went through that last segment +Where I went through these dark serpentines +I passed through that corridor +Where they sat, where they are +And when you penetrate to the most high God +You will believe you are mad +You will believe you've gone insane +But I tell you if you follow the secret window +And you die to the ego nature +You will penetrate this darkness +Oh yes there's many a man or woman +That's been put in the insane asylum +When this has happened to them +And they're sitting there today, people think they're insane +But they saw something that's real +And they see it when they're on drugs +The only thing is they see it +Not through the light of God, and the way I show you +I show you to see it through the light of God +And the understanding of God +Because when you see the face of God, you will die +And there will be nothing left of you +Except the God-man, the God-woman +The heavenly man, the heavenly woman +The heavenly child +There'll be prayer on your lips day and night +There'll be a song of jubilee waiting for your king +There will be nothing you will not be be looking for in this world +Except in for your god +This is all a dream +A dream in death + +And so I went through that window +And the tower of hell and the great serpentines of the highest order +And I went through that when I showed you chart #3 +The question is asked and learned and someone who can turn this gift, this horrible gift of mine reclaimed +Or in front of me you can ask me a question +If it's asked, from the right being or the right soul out of Urim and Thummim +I can give you unspoken words that's never been spoken, it's not in your bible +Yet, it does clarify what is spoken in the bible... + +[Part IV (7:22-17:10):"World Police and Friendly Fire"] + +[Part V (17:10-22:36):"[...+The Buildings They Are Sleeping Now]"]
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Godspeed You! Black Emperor - Storm.txt b/ncmpcpp/lyrics/Godspeed You! Black Emperor - Storm.txt new file mode 100644 index 0000000..22a0408 --- /dev/null +++ b/ncmpcpp/lyrics/Godspeed You! Black Emperor - Storm.txt @@ -0,0 +1,15 @@ +[Part I (0:00-6:15):"Lift Yr. Skinny Fists, Like Antennas to Heaven..."] + +[Part II (6:15-17:25):"Gathering Storm/Il Pleut à Mourir [+Clatters Like Worry]"] + +[Part III (17:25-18:40):"'Welcome to Arco AM/PM...' [ L.A.X.; 5/14/00]"] +Bienvenido a Arco AM/PM Mini-Market. Queremos aconsejarles a nuestros clientes que cualquier persona que se ofrezca a ponerle gasolina a su automóvil, lavarle las ventanas, o solicitar productos, no es empleado ni está asociado con nuestra empresa. Les pedimos que no tengan contacto con estos personajes. Favor de reportar cualquier problema al personal uniformado dentro de la empresa. Gracias por comprar en AM/PM Mini Market y tenga un buen día + +Welcome to Arco AM/PM Mini-Market. We would like to advise our customers that any individual who offers to pump gas, wash windows, or solicit products is not employed by or associated with this facility. We discourage any contact with these individuals, and ask that you report any problems to uniformed personnel inside. Thank you for shopping at Arco AM/PM, and have a pleasant day + +Welcome to Arco AM/PM Mini-Market. We would like to advise our customers that any individual who offers to pump gas, wash windows, or solicit products is not employed by or associated with this facility. We discourage any contact with these individuals, and ask that you report any problems to uniformed personnel inside. Thank you for shopping at Arco AM/PM, and have a pleasant day + +[Part IV (18:40-22:32):"Cancer Towers on Holy Road Hi-Way"] +It's gonna be a long long time +It's gonna be a long long time +(indistinguishable talking)
\ No newline at end of file diff --git a/ncmpcpp/lyrics/John Coltrane - Part I - Acknowledgement.txt b/ncmpcpp/lyrics/John Coltrane - Part I - Acknowledgement.txt new file mode 100644 index 0000000..8bd280b --- /dev/null +++ b/ncmpcpp/lyrics/John Coltrane - Part I - Acknowledgement.txt @@ -0,0 +1,10 @@ +A love supreme +A love supreme +A love supreme +A love supreme +A love supreme +A love supreme +A love supreme +A love supreme +A love supreme +A love supreme
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Justin Hurwitz - Mia & Sebastian’s Theme.txt b/ncmpcpp/lyrics/Justin Hurwitz - Mia & Sebastian’s Theme.txt new file mode 100644 index 0000000..dbcdf6b --- /dev/null +++ b/ncmpcpp/lyrics/Justin Hurwitz - Mia & Sebastian’s Theme.txt @@ -0,0 +1,48 @@ +[Sebastian:] +City of stars +Are you shining just for me? +City of stars +There's so much that I can't see +Who knows? +I felt it from the first embrace I shared with you + +[Mia:] +That now our dreams may finally come true + +City of stars +Just one thing everybody wants +There in the bars +And through the smokescreen of the crowded restaurants +It's love +Yes, all we're looking for is love from someone else + +[Sebastian:] +A rush +[Mia:] +A glance +[Sebastian:] +A touch +[Mia:] +A dance + +[Both:] +A look in somebody's eyes +To light up the skies +To open the world and send it reeling +A voice that says, I'll be here +And you'll be alright + +I don't care if I know +Just where I will go +'Cause all that I need's this crazy feeling +A rat-tat-tat on my heart + +[Sebastian:] +Think I want it to stay + +City of stars +Are you shining just for me? +City of stars + +[Mia:] +You never shined so brightly
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kanye West - All of the Lights (interlude).txt b/ncmpcpp/lyrics/Kanye West - All of the Lights (interlude).txt new file mode 100644 index 0000000..4b97399 --- /dev/null +++ b/ncmpcpp/lyrics/Kanye West - All of the Lights (interlude).txt @@ -0,0 +1,10 @@ +[Frank Ocean:] +The rings all ringed out +Burn out, cave in +Blackened to dark out +I'm mixed now, fleshed out +There's light with no heat +We cooled out, it's cool out +Life is precious +We found out, we found out +We found out
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kanye West - All of the Lights.txt b/ncmpcpp/lyrics/Kanye West - All of the Lights.txt new file mode 100644 index 0000000..ae01376 --- /dev/null +++ b/ncmpcpp/lyrics/Kanye West - All of the Lights.txt @@ -0,0 +1,101 @@ +All of the lights +Lights, lights +All of the lights + +[Rihanna:] +Turn up the lights in here, baby +Extra bright, I want y'all to see this +Turn up the lights in here, baby +You know what I need, want you to see everything +Want you to see all of the lights + +[Elly Jackson and Rihanna:] +Fast cars, shooting stars +All of the lights, all of the lights +Until it's Vegas everywhere we are (All of the lights) +If you want it, you can get it for the rest of your life +If you want it, you can get it for the rest of your life + +[Kanye West:] +Somethin' wrong, I hold my head +MJ gone, our nigga dead +I slapped my girl, she called the feds +I did that time and spent that bread +I'm heading home, I'm almost there +I'm on my way, heading up the stairs +To my surprise, a nigga replacing me +I had to take him to that ghetto university + +[Kanye West:] +(All of the lights), lights +Cop lights, flashlights, spotlights +Strobe lights, street lights (All of the lights, all of the lights) +Fast life, drug life, thug life +Rock life every night (All of the lights) + +[Rihanna:] +Turn up the lights in here, baby +Extra bright, I want y'all to see this +Turn up the lights in here, baby +You know what I need, want you to see everything +Want you to see all of the lights + +[Kanye West:] +Restraining order, can't see my daughter +Her mother, brother, grandmother hate me in that order +Public visitation, we met at Borders +Told her she take me back, I'll be more supportive +I made mistakes, I bumped my head +Them courts sucked me dry, I spent that bread +She need her daddy, baby, please +Can't let her grow up in that ghetto university + +[Kanye West:] +(All of the lights), lights +Cop lights, flashlights, spotlights +Strobe lights, street lights (All of the lights, all of the lights) +Fast life, drug life, thug life +Rock life every night (All of the lights) + +[Rihanna:] +Turn up the lights in here, baby +Extra bright, I want y'all to see this +Turn up the lights in here, baby +You know what I need, want you to see everything +Want you to see all of the lights + +[Kid Cudi:] +Gettin' mine, baby +Gotta let these niggas know, yeah +Gettin' right, babe +You should go and get your own +Gettin' mine, baby +Gotta let these niggas know, yeah +Gettin' right, babe +You should go and get your own + +[Fergie, Rihanna and Drake:] +Unemployment line, credit card declined +Did I not mention I was about to lose my mind? +And also was about to do that line +'Kay, okay, you know we going all the way this time +We going all the way this time +We going all the way this time +We going all the way this time +We going all the way this time + +Turn up the lights in here, baby +Extra bright, I want y'all to see this +Turn up the lights in here, baby +You know what I need, want you to see everything +Want you to see all of the lights + +[Alicia Keys and Elton John:] +Whoa, whoa +(I tried to tell you, but all I could say was oh) +Whoa, whoa +(I tried to tell you, but all I could say was oh) +Whoa, whoa +(I tried to tell you, but all I could say was oh) +Whoa, whoa +(I tried to tell you, but all I could say)
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kanye West - Dark Fantasy.txt b/ncmpcpp/lyrics/Kanye West - Dark Fantasy.txt new file mode 100644 index 0000000..d86d886 --- /dev/null +++ b/ncmpcpp/lyrics/Kanye West - Dark Fantasy.txt @@ -0,0 +1,96 @@ +[Nicki Minaj:] +You might think you've peeped the scene +You haven't, the real one's far too mean +The watered-down one, the one you know +Was made up centuries ago +They made it sound all wack and corny +Yes, it's awful blasted boring +Twisted fictions, sick addiction +Well, gather 'round, children, zip it, listen + +[Justin Vernon and Teyana Taylor:] +Can we get much higher? (So high) +Oh, oh, oh +Oh, oh, oh-oh, oh (Oh) +Can we get much higher? (So high) +Oh, oh, oh +Oh, oh, oh-oh, oh +Can we get much higher? (So high) +Oh, oh, oh +Oh, oh, oh-oh, oh (Oh) +Can we get much higher? (So high) +Oh, oh, oh +Oh, oh, oh-oh, oh + +[Kanye West:] +Yeah, yeah, yeah, yeah +I fantasized 'bout this back in Chicago +Mercy, mercy me, that Murciélago +That's me the first year that I blow +How you say broke in Spanish? Mi no hablo +Me drown sorrow in that Diablo +Me found bravery in my bravado +DJs need to listen to the models +You ain't got no fuckin' Yeezy in your Serato? +(You ain't got no Yeezy, nigga?) +Stupid, but what the hell do I know? +I'm just a Chi-Town nigga with a Nas flow +And my chick in that new Phoebe Philo +So much head, I woke up to Sleepy Hollow + +[Justin Vernon and Teyana Taylor:] +Can we get much higher? +Oh, oh, oh +Oh, oh, oh-oh, oh + +[Kanye West:] +Look like a fat booty Celine Dion +Sex is on fire, I'm the King of Leona Lewis +Beyond the truest +Hey, teacher, teacher, tell me how do you respond to students? +And refresh the page and restart the memory? +Re-spark the soul and rebuild the energy? +We stopped the ignorance, we killed the enemy +Sorry for the night demons that still visit me +The plan was to drink until the pain over +But what's worse, the pain or the hangover? +Fresh air, rollin' down the window +Too many Urkels on your team, that's why your wins low +Don't make me pull the toys out, huh +Don't make me pull the toys +And fire up the engines, huh +And then they make noise + +[Justin Vernon and Teyana Taylor:] +Can we get much higher? (So high) +Oh, oh, oh +Oh, oh, oh-oh, oh + +[Justin Vernon and Kanye West:] +At the mall, there was a seance +Just kids, no parents +Then the sky filled with herons +Saw the devil in a Chrysler LeBaron +And the hell, it wouldn't spare us +And the fires did declare us +But after that, took pills, kissed an heiress +And woke up back in Paris + +[Justin Vernon and Teyana Taylor:] +Can we get much higher? (So high) +Oh, oh, oh +Oh, oh, oh-oh, oh, oh + +[Justin Vernon and Teyana Taylor:] +Can we get much higher? (So high) +Oh, oh, oh +Oh, oh, oh-oh, oh (Oh) +Can we get much higher? (So high) +Oh, oh, oh +Oh, oh, oh-oh, oh +Can we get much higher? (So high) +Oh, oh, oh +Oh, oh, oh-oh, oh (Oh) +Can we get much higher? (So high) +Oh, oh, oh +Oh, oh, oh-oh, oh, oh
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kanye West - Power.txt b/ncmpcpp/lyrics/Kanye West - Power.txt new file mode 100644 index 0000000..894bd69 --- /dev/null +++ b/ncmpcpp/lyrics/Kanye West - Power.txt @@ -0,0 +1,86 @@ +[Kanye West:] +I'm living in that 21st century, doing something mean to it +Do it better than anybody you ever seen do it +Screams from the haters got a nice ring to it +I guess every superhero need his theme music + +[Kanye West:] +No one man should have all that power +The clock's ticking, I just count the hours +Stop tripping, I'm tripping off the power +(21st-century schizoid man) + +[Kanye West:] +The system broken, the school's closed, the prison's open +We ain't got nothing to lose, motherfucker, we rolling +Huh? Motherfucker, we rolling +With some light-skinned girls and some Kelly Rowlands +In this white man world, we the ones chosen +So goodnight, cruel world, I'll see you in the morning +Huh? I'll see you in the morning +This is way too much, I need a moment + +[Kanye West:] +No one man should have all that power +The clock's ticking, I just count the hours +Stop tripping, I'm tripping off the power +'Til then, fuck that, the world's ours +And they say, and they say +And they say, and they say +And they say, and they say +(21st-century schizoid man) + +[Kanye West:] +Fuck SNL and the whole cast +Tell them Yeezy said they can kiss my whole ass +More specifically, they can kiss my asshole +I'm an asshole? You niggas got jokes +You short-minded niggas' thoughts is Napoleon +My furs is Mongolian, my ice brought the goalies in +I embody every characteristic of the egotistic +He knows he's so fuckin' gifted +I just needed time alone with my own thoughts +Got treasures in my mind, but couldn't open up my own vault +My childlike creativity, purity, and honesty +Is honestly being crowded by these grown thoughts +Reality is catching up with me +Taking my inner child, I'm fighting for custody +With these responsibilities that they entrusted me +As I look down at my diamond-encrusted piece + +[Kanye West:] +Thinking no one man should have all that power +The clock's ticking, I just count the hours +Stop tripping, I'm tripping off the powder +'Til then, fuck that, the world's ours +And they say, and they say +And they say, and they say +And they say, and they say +(21st-century schizoid man) + +[Kanye West:] +Colin Powells, Austin Powers +Lost in translation with a whole fuckin' nation +They say I was the abomination of Obama's nation +Well, that's a pretty bad way to start the conversation +At the end of the day, goddamned, I'm killing this shit +I know damn well y'all feeling this shit +I don't need your pussy, bitch, I'm on my own dick +I ain't gotta power trip, who you goin' home with? +How Ye doing? I'm survivin' +I was drinkin' earlier, now I'm drivin' +Where the bad bitches, huh? Where you hidin'? +I got the power make your life so excitin' + +[Kanye West and Dwele:] +Now this will be a beautiful death +I'm jumping out the window, I'm letting everything go +I'm letting everything go +Mmm, now this will be a beautiful death +I'm jumping out the window, I'm letting everything go +I'm letting everything go +Now this will be a beautiful death +Jumping out the window, letting everything go +Letting everything go +You got the power to let power go? +(21st-century schizoid man)
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kanye West feat. JAY‐Z, Pusha T, Cyhi the Prynce, Swizz Beatz & RZA - So Appalled.txt b/ncmpcpp/lyrics/Kanye West feat. JAY‐Z, Pusha T, Cyhi the Prynce, Swizz Beatz & RZA - So Appalled.txt new file mode 100644 index 0000000..21af140 --- /dev/null +++ b/ncmpcpp/lyrics/Kanye West feat. JAY‐Z, Pusha T, Cyhi the Prynce, Swizz Beatz & RZA - So Appalled.txt @@ -0,0 +1,156 @@ +[Swizz Beatz:] +One hand in the air if you don't really care +Two hands in the air if you don't really care +It's like that sometimes, I mean ridiculous +It's like that sometimes, this shit ridiculous +One hand in the air if you don't really care +Middle finger in the air if you don't really care +It's like that sometimes, man, ridiculous +Life can be sometimes ridiculous + +[Kanye West:] +I'm so appalled, Spalding, ball +Balding Donald Trump taking dollars from y'all +Baby, you're fired, your girlfriend hired +But if you don't mind, I'ma keep you on call +We above the law, we don't give a fuck 'bout y'all +I got dogs that'll chew a fuckin' hole through the wall +But since they all lovers, I need more rubbers +And if I don't use rubbers, need more covers +Housekeeping, I mean, goddamn +One time, let it be a bad bitch sweeping +That know we get O's like Cheerios +That know because they seen us in the videos +That know the day that you play me +Would be the same day MTV play videos +That was a little joke, voila +Praises due to the most high, Allah +Praises due to the most fly, Prada +Baby, I'm magic, tada +Address me as your highness, high as United +Thirty thousand feet up and you are not invited +Niggas be writing bullshit like they gotta work +Niggas is going through real shit, man, they out of work +That's why another goddamn dance track gotta hurt +That's why I'd rather spit something that got a purp' + +[Kanye West and CyHi The Prynce:] +Champagne wishes, thirty white bitches +I mean this shit is fuckin' ridiculous +Fuckin' ridiculous +I mean this shit is fuckin' ridiculous +Five-star dishes, different exotic fishes +Man, this shit is fuckin' ridiculous +Fuckin' ridiculous + +[Jay-Z:] +How should I begin this? I'm just so offended +How am I even mentioned by all these fuckin' beginners? +I'm so appalled, I might buy the mall +Just to show niggas how much more I have in store +I'm fresher than you all, so I don't have to pause +All of y'all can suck my balls through my drawers +Dark Knight feeling, die and be a hero +Or live long enough to see yourself become a villain +I went from the favorite to the most hated +But would you rather be underpaid or overrated? +Moral victories is for minor league coaches +And Ye already told you we major, you cockroaches +Show me where the boats is, Ferrari Testarossas +And Hammer went broke so you know I'm more focused +I lost thirty mil', so I spent another thirty +'Cause unlike Hammer, thirty million can't hurt me +Fuckin' insane, the fuck am I saying? +Not only am I fly, I'm fuckin' not playing +All these little bitches too big for they britches +Burning they little bridges, fuckin' ridiculous + +[Kanye West and CyHi The Prynce:] +Champagne wishes, thirty white bitches +I mean this shit is fuckin' ridiculous +Fuckin' ridiculous +I mean this shit is fuckin' ridiculous +Five-star dishes, different exotic fishes +Man, this shit is fuckin' ridiculous +Fuckin' ridiculous + +[Pusha T:] +Success is what you make it, take it how it come +A half a mil' in twenties like a billion where I'm from +An arrogant drug dealer, the legend I become +CNN said I'd be dead by twenty-one +Blackjack, I just pulled an ace +As you looking at the king in his face +Everything I dream, motherfuckers, I'm watchin' it take shape +While to you I'm just a young rich nigga that lacks faith +Range Rove', leather roof, love war, fuck a truce +Still move a bird like I'm in bed with Mother Goose +Them hoes coming in a baker's dozen +Claiming they was with me when they know they really wasn't +I keep the city's best, never said she was the brightest +So if you had her too, it don't affect me in the slightest +I never met a bitch that didn't need a little guidance +So I dismiss her past until she disappoints your highness +I speak the gospel, hostile +Tony doing time for what he did to nostrils +Paranoid mind, I'm still under the watchful +Eye of the law, aspire for more +Them kilos came, we gave you Bobby Brown jaw +Flaws ain't flaws when it's you that makes the call +Flow similar to the legends of the falls +Spillin', I own you all, yuugh + +[Swizz Beatz:] +One hand in the air if you don't really care +Two hands in the air if you don't really care +It's like that sometimes, I mean ridiculous +It's like that sometimes, this shit ridiculous +One hand in the air if you don't really care +Middle finger in the air if you don't really care +It's like that sometimes, man, ridiculous +Life can be sometimes ridiculous + +[CyHi The Prynce:] +Hah, I am so outrageous +I wear my pride on my sleeve like a bracelet +If God had an iPod, I'd be on his playlist +My phrases amazes the faces in places +The favorite, hah, my cup overrunneth with hundreds +Dummy, damn, it's hard not for me to waste it +The new Commandment, "Thou shalt not hate, kid" +My movement is like the Civil Rights, I'm Ralph David +Abernathy, so call my lady Rosa Parks +I am nothing like them niggas, baby, those are marks +I met this girl on Valentine's Day, fucked her in May +She found out about April, so she chose to march +Hah, damn, another broken heart +I keep bitches by the twos, nigga, Noah's Ark +I got a seven on me, I call my 'dro Lamar +Plus a Trojan in my pocket, Matt Leinart, hah +G-A-T in the Pathfinder +'Cause you haters got PhDs +Y'all just some major haters and some math minors +Tiger Woods, don't make me grab iron + +[RZA:] +Ayy, yo, champagne wishes and thirty white bitches +You know this shit is fuckin' ridiculous +Fuckin' ridiculous +You know this shit is fuckin' ridiculous +Cars for the missus and furs for the mistress +You know that shit is fuckin' ridiculous +Fuckin' ridiculous +You know this shit is fuckin' ridiculous +Fuckin' ridiculous +Fuckin' ridiculous +Fuckin' ridiculous + +[Swizz Beatz:] +One hand in the air if you don't really care +Two hands in the air if you don't really care +It's like that sometimes, I mean ridiculous +It's like that sometimes, this shit ridiculous +One hand in the air if you don't really care +Middle finger in the air if you don't really care +It's like that sometimes, man, ridiculous +Life can be sometimes ridiculous, huh?
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kanye West feat. JAY‐Z, Rick Ross, Nicki Minaj & Bon Iver - Monster.txt b/ncmpcpp/lyrics/Kanye West feat. JAY‐Z, Rick Ross, Nicki Minaj & Bon Iver - Monster.txt new file mode 100644 index 0000000..075edb5 --- /dev/null +++ b/ncmpcpp/lyrics/Kanye West feat. JAY‐Z, Rick Ross, Nicki Minaj & Bon Iver - Monster.txt @@ -0,0 +1,140 @@ +[Justin Vernon:] +I shoot the lights out +Hide 'til it's bright out +Oh, just another lonely night +Are you willing to sacrifice your life? + +[Rick Ross:] +Bitch, I'm a monster, no-good bloodsucker +Fat motherfucker, now look who's in trouble +As you run through my jungles, all you hear is rumbles +Kanye West samples, here's one for example + +[Kanye West:] +Gossip, gossip, nigga, just stop it +Everybody know I'm a motherfuckin' monster +I'ma need to see your fuckin' hands at the concert +I'ma need to see your fuckin' hands at the concert +Profit, profit, nigga, I got it +Everybody know I'm a motherfuckin' monster +I'ma need to see your fuckin' hands at the concert +I'ma need to see your fuckin' hands + +[Kanye West:] +Uh, the best living or dead hands down, huh +Less talk, more head right now, huh +And my eyes more red than the devil is +And I'm 'bout to take it to another level, bitch +Matter who you go and get, ain't nobody cold as this +Do the rap and the track, triple-double, no assists +And my only focus is stayin' on some bogus shit +Arguin' with my older bitch, actin' like I owe her shit +I heard the beat, the same raps that gave the track pain +Bought the chain that always give me back pain +Fucking up my money so, yeah, I had to act sane +Chi nigga, but these hoes love my accent +Chick came up to me and said, "This the number to dial +If you wanna make your number one your number two now" +Mix that Goose and Malibu, I call it "Malibooyah" +Goddamn, Yeezy always hit 'em with a new style +Know that motherfucker, well, what you gon' do now? +Whatever I wanna do, gosh, it's cool now +Know I'm gonna do, ah, it's the new now +Think you motherfuckers really really need to cool out +'Cause you'll never get on top of this +So, mami, best advice is just to get on top of this +Have you ever had sex with a pharaoh? +Ah, put the pussy in a sarcophagus +Now she claiming that I bruised her esophagus +Head of the class and she just won a swallowship +I'm livin' in the future so the present is my past +My presence is a present, kiss my ass + +[Kanye West and Jay Z:] +Gossip, gossip, nigga, just stop it +Everybody know I'm a motherfuckin' monster +I'ma need to see your fuckin' hands at the concert +I'ma need to see your fuckin' hands at the concert (Yeah) +Profit, profit, nigga, I got it +Everybody know I'm a motherfuckin' monster +I'ma need to see your fuckin' hands at the concert +I'ma need to see your fuckin' hands + +[Jay Z:] +Sasquatch, Godzilla, King Kong, Loch Ness +Goblin, ghoul, a zombie with no conscience +Question, what do these things all have in common? +Everybody knows I'm a motherfuckin' monster +Conquer, stomp ya, stop your silly nonsense +Nonsense, none of you niggas know where the swamp is +None of you niggas have seen the carnage that I've seen +I still hear fiends scream in my dreams +Murder, murder in black convertibles, I +Kill a block, I murder the avenues, I +Rape and pillage your village, women and children +Everybody want to know what my Achilles heel is +Love, I don't get enough of it +All I get is these vampires and bloodsuckers +All I see is these niggas I made millionaires +Millin' about, spillin' their feelings in the air +All I see is these fake fucks with no fangs +Tryna draw blood from my ice-cold veins +I smell a massacre +Seems to be the only way to back you bastards up + +[Kanye West:] +Gossip, gossip, nigga, just stop it +Everybody know I'm a motherfuckin' monster +I'ma need to see your fuckin' hands at the concert +I'ma need to see your fuckin' hands at the concert +Profit, profit, nigga, I got it +Everybody know I'm a motherfuckin' monster +I'ma need to see your fuckin' hands at the concert +I'ma need to see your fuckin' hands + +[Nicki Minaj:] +Pull up in the monster, automobile gangsta +With a bad bitch that came from Sri Lanka +Yeah, I'm in that Tonka, color of Willy Wonka +You could be the king, but watch the queen conquer +OK, first things first, I'll eat your brains +Then I'ma start rocking gold teeth and fangs +'Cause that's what a motherfuckin' monster do +Hair dresser from Milan, that's the monster 'do +Monster Giuseppe heel, that's the monster shoe +Young Money is the roster and a monster crew +And I'm all up, all up, all up in the bank with the funny face +And if I'm fake, I ain't notice 'cause my money ain't +So let me get this straight, wait, I'm the rookie? +But my features and my shows ten times your pay? +50K for a verse, no album out +Yeah, my money's so tall that my Barbies got to climb it +Hotter than a Middle Eastern climate, violent +Tony Matterhorn, dutty wine it, wine it +Nicki on them titties when I sign it +That's how these niggas so one-track-minded +But really, really I don't give an F-U-C-K +"Forget Barbie, fuck Nicki, sh-she's fake" +"She on a diet," but my pockets eatin' cheesecake +And I'll say, bride of Chucky, it's child's play +Just killed another career, it's a mild day +Besides, Ye, they can't stand besides me +I think me, you, and Am' should ménage Friday +Pink wig, thick ass, give 'em whiplash +I think big, get cash, make 'em blink fast +Now look at what you just saw, this is what you live for +Ah, I'm a motherfuckin' monster + +[Justin Vernon and Charlie Wilson:] +I, I crossed the limelight +And I'll, I'll let God decide +And I, I wouldn't last these shows +So I, I am headed home (Headed home) +I, I crossed the limelight +And I'll, I'll let God decide, 'cide (No) +And I, I wouldn't last these shows +So I, I am headed home (Head home) +I, I crossed the limelight (No, the limelight) +And I'll, I'll let God decide, 'cide +And I, I wouldn't last these shows +So I, I am headed home
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kanye West feat. Kid Cudi & Raekwon - Gorgeous.txt b/ncmpcpp/lyrics/Kanye West feat. Kid Cudi & Raekwon - Gorgeous.txt new file mode 100644 index 0000000..a17f98b --- /dev/null +++ b/ncmpcpp/lyrics/Kanye West feat. Kid Cudi & Raekwon - Gorgeous.txt @@ -0,0 +1,115 @@ +[Kid Cudi:] +Ain't no question if I want it, I need it +I can feel it slowly drifting away from me +I'm on the edge, so why you playing? I'm saying +I will never ever let you live this down, down, down +Not for nothing, I've foreseen it, I dreamed it +I can feel it slowly drifting away from me +No more chances, if you blow this, you bogus +I will never ever let you live this down, down, down + +[Kanye West:] +Penitentiary chances, the devil dances +And eventually answers to the call of autumn +All them fallin' for the love of ballin' +Got caught with thirty rocks, the cop look like Alec Baldwin +Inter-century anthems based off inner-city tantrums +Based off the way we was branded +Face it, Jerome get more time than Brandon +And at the airport, they check all through my bag +And tell me that it's random +But we stay winning +This week has been a bad massage, I need a happy ending +And a new beginning and a new fitted +And some job opportunities that's lucrative +This the real world, homie, school finished +They done stole your dreams, you don't know who did it +I treat the cash the way the government treats AIDS +I won't be satisfied 'til all my niggas get it, get it? + +[Kid Cudi:] +Ain't no question if I want it, I need it +I can feel it slowly drifting away from me +I'm on the edge, so why you playing? I'm saying +I will never ever let you live this down, down, down + +[Kanye West:] +Is hip-hop just a euphemism for a new religion? +The soul music of the slaves that the youth is missing +But this is more than just my road to redemption +Malcolm West had the whole nation standing at attention +As long as I'm in Polo smiling, they think they got me +But they'd try to crack me if they ever see a Black me +I thought I chose a field where they couldn't sack me +If a nigga ain't shootin' a jumpshot, runnin' a track meet +But this pimp is at the top of Mount Olympus +Ready for the world's games, this is my Olympics +We make 'em say ho 'cause the game is so pimpish +Choke a South Park writer with a fish-stick +I insisted to get up off of this dick +And these drugs, niggas can't resist it +Remind me when they tried to have Ali enlisted +If I ever wasn't the greatest, nigga, I must have missed it + +[Kid Cudi:] +Ain't no question if I want it, I need it +I can feel it slowly drifting away from me +I'm on the edge, so why you playing? I'm saying +I will never ever let you live this down, down, down + +[Kanye West:] +I need more drinks and less lights +And that American Apparel girl in just tights +She told the director she tryna get in a school +He said, "Take them glasses off and get in the pool" +It's been a while since I watched the tube +'Cause like a Crip set, I got way too many blues for any more bad news +I was looking at my resume, feeling real fresh today +They rewrite history, I don't believe in yesterday +And what's a Black Beatle anyway, a fuckin' roach? +I guess that's why they got me sitting in fuckin' coach +My guy said I need a different approach +'Cause people is looking at me like I'm sniffin' coke +It's not funny anymore, try different jokes +Tell 'em hug and kiss my ass, X and O +And kiss the ring while they at it, do my thing while I got it +Play strings for the dramatic ending of that wack shit +Act like I ain't had a belt in two classes +I ain't got it, I'm coming after whoever who has it +I'm coming after whoever, who has it? +You blowin' up, that's good, fantastic +That, y'all, it's like that, y'all +I don't really give a fuck about it at all +'Cause the same people that tried to blackball me +Forgot about two things, my Black balls + +[Kid Cudi:] +Ain't no question if I want it, I need it +I can feel it slowly drifting away from me +I'm on the edge, so why you playing? I'm saying +I will never ever let you live this down, down, down + +[Raekwon:] +Ayy, yo +I done copped Timbs, lived in lenses, kid +Armani suits, fresh fruits, Bally boots, and Benzes +Counting up, smoking, one cuff +Live as a red Jag', a Louis bag, grabbin' a blunt, fuck it +Steam about a hundred and one Ls +Kites off to jails, buyin' sweats, running up in Stetson +Nigga hat game was special +It matched every black pair of Nikes, throwing dice for decimals +The older head, bolder head, would train a soldier head +Make sure he right in the field, not a soldier dead +That meant code red, bent off the black skunk +The black Dutch, back of the old shed +If you can't live, you dying, you give or buy in +Keep it real or keep it moving, keep grinding +Keep shining, to every young man, this is a plan +Learn from others like your brothers Rae and Kanye + +[Kid Cudi:] +Not for nothing, I've foreseen it, I dreamed it +I can feel it slowly drifting away from me +No more chances, if you blow this, you bogus +I will never ever let you live this down, down, down
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar - Alright.txt b/ncmpcpp/lyrics/Kendrick Lamar - Alright.txt new file mode 100644 index 0000000..7520cca --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar - Alright.txt @@ -0,0 +1,80 @@ +Alls my life I has to fight, nigga +Alls my life I... +Hard times like yah +Bad trips like "God!" +Nazareth, I'm fucked up +Homie you fucked up +But if God got us then we gon' be alright + +[Hook - Pharrell Williams:] +Nigga, we gon' be alright +Nigga, we gon' be alright +We gon' be alright +Do you hear me, do you feel me? We gon' be alright +Nigga, we gon' be alright +Huh? We gon' be alright +Nigga, we gon' be alright +Do you hear me, do you feel me? We gon' be alright + +Uh, and when I wake up +I recognize you're lookin' at me for the pay cut +Behind my side we lookin' at you from the face down +What mac-11 even boom with the bass down +Schemin'! And let me tell you bout my life +Painkillers only put me in the twilight +Where pretty pussy and Benjamin is the highlight +Now tell my mama I love her but this what I like +Lord knows, 20 of 'em in my Chevy +Tell 'em all to come and get me, reapin' everything I sow +So my karma coming heavy +No preliminary hearings on my record +I'm a motherfucking gangster in silence for the record +Tell the world I know it's too late +Boys and girls I think I've gone cray +Drown inside my vices all day +Won't you please believe when I say + +[Pre-hook:] +When you know, we been hurt, been down before, nigga +When our pride was low, lookin' at the world like, "where do we go, nigga?" +And we hate Popo, wanna kill us dead in the street for sure, nigga +I'm at the preacher's door +My knees gettin' weak and my gun might blow but we gon' be alright + +[Hook] + +What you want, you a house you a car +40 acres and a mule, a piano a guitar +Anything, see my name is Lucy, I'm your dog +Motherfucker you can live at the mall +I can see the evil, I can tell it I know it's illegal +I don't think about it, I deposit every other zero +Thinkin' of my partner put the candy, paint it on the regal +Diggin' in my pocket ain't a profit, big enough to feed you +Everyday my logic, get another dollar just to keep you +In the presence of your chico... ah! +I don't talk about it, be about it, everyday I see cool +If I got it then you know you got it, Heaven, I can reach you +Pet dog, pet dog, pet dog, my dog that's all +Pick back and chat I shut the back for y'all +I rap, I'm black, on track so rest assured +My rights, my wrongs I write till I'm right with God + +[Pre-hook] + +[Hook] + +I keep my head up high +I cross my heart and hope to die +Lovin' me is complicated +Too afraid, a lot of changes +I'm alright and you're a favorite +Dark nights in my prayers + +I remembered you was conflicted +Misusing your influence, sometimes I did the same +Abusing my power full of resentment +Resentment that turned into a deep depression +Found myself screamin' in the hotel room +I didn't wanna self destruct, the evils of Lucy was all around me +So I went runnin' for answers
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar - FEAR..txt b/ncmpcpp/lyrics/Kendrick Lamar - FEAR..txt new file mode 100644 index 0000000..b1a8299 --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar - FEAR..txt @@ -0,0 +1,131 @@ +[Carl Duckworth:] +I don't think I could find a way to make it on this earth +What's up, family? Yeah, it's yo cousin Carl, man, just givin' you a call, man. I know you been havin' a lot on yo mind lately, and I know you feel like, you know, people ain't been prayin' for you. But you have to understand this, man, that we are a cursed people. Deuteronomy 28: 28 says, "The Lord shall smite thee with madness, and blindness, and astonishment of heart." See, family, that's why you feel like you feel like you got a chip on your shoulder. Until you finally get the memo, you will always feel that way... + +[Charles Edward Sydney Isom Jr.] +Why God, why God do I gotta suffer? +Pain in my heart carry burdens full of struggle +Why God, why God do I gotta bleed? +Every stone thrown at you restin' at my feet +Why God, why God do I gotta suffer? +Earth is no more, won't you burn this muh'fucka? +I don't think I could find a way to make it on this earth +(Reversed) + +I beat yo ass, keep talkin' back +I beat yo ass, who bought you that? +You stole it, I beat yo ass if you say that game is broken +I beat yo ass if you jump on my couch +I beat yo ass if you walk in this house +With tears in your eyes, runnin' from Poo Poo and Prentice +Go back outside, I beat yo ass, lil nigga +That homework better be finished, I beat yo ass +Your teachers better not be bitchin' 'bout you in class +That pizza better not be wasted, you eat it all +That TV better not be loud if you got it on +Them Jordans better not get dirty when I just bought 'em +Better not hear 'bout you humpin' on Keisha's daughter +Better not hear you got caught up +I beat yo ass, you better not run to your father +I beat yo ass, you know my patience runnin' thin +I got beaucoup payments to make +County building's on my ass +Tryna take my food stamps away +I beat yo ass if you tell them social workers he live here +I beat yo ass if I beat yo ass twice and you still here +Seven years old, think you run this house by yourself? +Nigga, you gon' fear me if you don't fear no one else + +If I could smoke fear away, I'd roll that mothafucka up +And then I'd take two puffs +I'm high now, I'm high now +I'm high now, I'm high now +Life's a bitch, pull them panties to the side now +I don't think I could find a way to make it on this earth + +I'll prolly die anonymous +I'll prolly die with promises +I'll prolly die walkin' back home from the candy house +I'll prolly die because these colors are standin' out +I'll prolly die because I ain't know Demarcus was snitchin' +I'll prolly die at these house parties, fuckin' with bitches +I'll prolly die from witnesses leavin' me falsed accused +I'll prolly die from thinkin' that me and your hood was cool +Or maybe die from pressin' the line, actin' too extra +Or maybe die because these smokers +Are more than desperate +I'll prolly die from one of these bats and blue badges +Body slammed on black and white paint, my bones snappin' +Or maybe die from panic or die from bein' too lax +Or die from waitin' on it, die 'cause I'm movin' too fast +I'll prolly die tryna buy weed at the apartments +I'll prolly die tryna diffuse two homies arguin' +I'll prolly die 'cause that's what you do when you're 17 +All worries in a hurry, I wish I controlled things + +If I could smoke fear away, I'd roll that mothafucka up +And then I'd take two puffs +I've been hungry all my life +I'm high now, I'm high now +I'm high now, I'm high now +Life's a bitch, pull them panties to the side now +Now... + +When I was 27, I grew accustomed to more fear +Accumulated 10 times over throughout the years +My newfound life made all of me magnified +How many accolades do I need to block denial? +The shock value of my success put bolts in me +All this money, is God playin' a joke on me? +Is it for the moment, and will he see me as Job? +Take it from me and leave me worse than I was before? +At 27, my biggest fear was losin' it all +Scared to spend money, had me sleepin' from hall to hall +Scared to go back to Section 8 with my mama stressin' +30 shows a month and I still won't buy me no Lexus +What is an advisor? Somebody that's holdin' my checks +Just to fuck me over and put my finances in debt? +I read a case about Rihanna's accountant and wondered +How did the bad girl feel when she looked at them numbers? +The type of shit'll make me flip out +And just kill somethin', drill somethin' +Get ill and fill ratchets with a lil' somethin' +I practiced runnin' from fear, guess I had some good luck +At 27 years old, my biggest fear was bein' judged +How they look at me reflect on myself, my family, my city +What they say 'bout me reveal +If my reputation would miss me +What they see from me +Would trickle down generations in time +What they hear from me +Would make 'em highlight my simplest lines + +I'm talkin' fear, fear of losin' creativity +I'm talkin' fear, fear of missin' out on you and me +I'm talkin' fear, fear of losin' loyalty from pride +'Cause my DNA won't let me involve in the light of God +I'm talkin' fear, fear that my humbleness is gone +I'm talkin' fear, fear that love ain't livin' here no more +I'm talkin' fear, fear that it's wickedness or weakness +Fear, whatever it is, both is distinctive +Fear, what happens on Earth stays on Earth +And I can't take these feelings with me +So hopefully they disperse +Within fourteen tracks, carried out over wax +Searchin' for resolutions until somebody get back +Fear, what happens on Earth stays on Earth +And I can't take these feelings with me +So hopefully they disperse +Within fourteen tracks, carried out over wax +Wonderin' if I'm livin' through fear or livin' through rap + +[Bēkon:] +Damn +Goddamn you +Goddamn me +Goddamn us +Goddamn we +Goddamn us all + +[Carl Duckworth:] +Verse two says you only have I known of all the families of the Earth, therefore I will punish you for all your iniquities. So until we come back to these commandments, until you come back to these commandments, we're gonna feel this way, we're gonna be under this curse. Because he said he's gonna punish us, the so-called Blacks, Hispanics, and Native American Indians, are the true children of Israel. We are the Israelites according to the Bible. The children of Israel, he's gonna punish us for our iniquities, for our disobedience, because we chose to follow other gods that aren't his son, so the Lord, thy God, chasten thee. So, just like you chasten your own son, he's gonna chastise you because he loves you. So that's why we get chastised, that's why we're in the position we're in. Until we come back to these laws, statutes and commandments, and do what the Lord said, these curses are gonna be upon us. We're gonna be at a lower state in this life that we live here in today, in the United States of America. I love you, son, and I pray for you. God bless you, shalom.
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar - HUMBLE..txt b/ncmpcpp/lyrics/Kendrick Lamar - HUMBLE..txt new file mode 100644 index 0000000..d414b22 --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar - HUMBLE..txt @@ -0,0 +1,75 @@ +[Music video version:] Wicked or weakness, you gotta see this, waaaaay (yeah, yeah!) +[Regular version:] Nobody pray for me, it been that day for me, waaaaay (yeah, yeah!) + +Aye, I remember syrup sandwiches and crime allowances +Finesse a nigga with some counterfeits +But now I'm counting this +Parmesan where my accountant lives in fact I'm down at this +D'usśe with my boo bae, tastes like kool aid for the analysts +Girl, I can buy your ass the world with my paystub +Ooh that pussy good, won't you sit it on my taste bloods +I get way too petty once you let me do the extras +Pull up on your block, then break it down we playing Tetris +A.M. to the P.M., P.M. to the A.M. funk +Piss out your per diem you just gotta hate em, funk +If I quit your BM I still ride Mercedes, funk +If I quit this season I still be the greatest, funk +My left stroke just went viral +Right stroke put lil baby in a spiral +Soprano C, we like to keep it on a high note +It's levels to it, you and I know, bitch be humble + +(Hol' up bitch) sit down, +(Hol' up lil bitch, hol' up, lil bitch) be humble +(Hol' up bitch) sit down (sit down hol' up lil bitch) +Be humble (bitch) +(Hol' up, hol' up, hol' up, hol' up) bitch sit down +Lil bitch (hol' up lil bitch) be humble +(Hol' up bitch) sit down +(Hol' up, hol' up, hol' up, hol' up) be humble +(Hol' up, hol' up, hol' up, hol' up lil bitch) sit down +(Hol' up lil bitch) be humble +(Hol' up bitch) sit down (hol' up sit down lil bitch) +(Sit down lil bitch) be humble +(Hol' up, hol' up, hol' up, hol' up lil bitch) bitch, sit down +(Hol' up lil bitch) be humble +(Hol' up bitch) sit down +(Hol' up, hol' up, hol' up, hol' up) + +Who dat nigga thinking that he fronting on man man (man man) +Get the fuck off my stage, I'm the sandman (sandman) +Get the fuck off my dick, that ain't right +I make a play fucking up your whole life +I'm so fucking sick and tired of the Photoshop +Show me something natural like afro on Richard Pryor +Show me something natural like ass with some stretch marks +Still will take you down right on your mamma's couch in polo socks, aye +This shit way too crazy, aye +You do not amaze me, aye +I blew cool from AC, aye +Obama just paged me, aye +I don't fabricate it, aye +Most of ya'll be faking, aye +I stay modest bout it, aye +She elaborate it, aye +This that Grey Poupon, that Evian, that Ted Talk, aye +Watch my soul speak, you let the meds talk, aye +If I kill a nigga it won't be the alcohol, aye +I'm the realest nigga after all, bitch be humble + +(Hol' up bitch) sit down, +(Hol' up lil bitch, hol' up, lil bitch) be humble +(Hol' up bitch) sit down (sit down hol' up lil bitch) +Be humble (bitch) +(Hol' up, hol' up, hol' up, hol' up) bitch sit down +(Lil bitch) (hol' up lil bitch) be humble +(Hol' up bitch) sit down +(Hol' up, hol' up, hol' up, hol' up) be humble +(Hol' up, hol' up, hol' up, hol' up lil bitch) sit down +(Hol' up lil bitch) be humble +(Hol' up bitch) sit down (hol' up sit down lil bitch) +(Sit down lil bitch) be humble +(Hol' up, hol' up, hol' up, hol' up lil bitch) bitch, sit down +(Hol' up lil bitch) be humble +(Hol' up bitch) sit down +(Hol' up, hol' up, hol' up, hol' up)
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar - King Kunta.txt b/ncmpcpp/lyrics/Kendrick Lamar - King Kunta.txt new file mode 100644 index 0000000..b9ec7a5 --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar - King Kunta.txt @@ -0,0 +1,94 @@ +I got a bone to pick +I don't want you monkey mouth motherfuckers sittin' in my throne again +(Aye aye nigga what's happenin' nigga, K Dot back in the hood nigga) +I'm mad (He mad), but I ain't stressin' +True friends, one question + +Bitch where you when I was walkin'? +Now I run the game got the whole world talkin' (King Kunta) +Everybody wanna cut the legs off him (King Kunta) Kunta +Black man taking no losses +Bitch where you when I was walkin'? +Now I run the game, got the whole world talkin' (King Kunta) +Everybody wanna cut the legs off him + +When you got the yams (What's the yams?) +The yam is the power that be +You can smell it when I'm walking down the street +(Oh yes we can, oh yes we can) +I can dig rapping, but a rapper with a ghost writer +What the fuck happened? +(Oh no) I swore I wouldn't tell +But most of you share bars like you got the bottom bunk in a two man cell +(A two man cell) +Something's in the water (Something's in the water) +And if I got a brown nose for some gold then I'd rather be a bum than a motherfuckin' baller + +Bitch where you when I was walkin'? +Now I run the game got the whole world talkin' (King Kunta) +Everybody wanna cut the legs off him (King Kunta) Kunta +Black man taking no losses +Bitch where you when I was walkin'? +Now I run the game, got the whole world talkin' (King Kunta) +Everybody wanna cut the legs off him + +When you got the yams (What's the yams?) +The yam brought it out of Richard Pryor +Manipulated Bill Clinton with desires +24/7, 365 days times two +I was contemplatin' gettin' on stage +Just to go back to the hood see my enemies and say... + +Bitch where you when I was walkin'? +Now I run the game got the whole world talkin' (King Kunta) +Everybody wanna cut the legs off him (King Kunta) Kunta +Black man taking no losses +Bitch where you when I was walkin'? +Now I run the game, got the whole world talkin' (King Kunta) +Everybody wanna cut the legs off him + +You goat mouth mammy fucker +I was gonna kill a couple rappers but they did it to themselves +Everybody's suicidal they don't even need my help +This shit is elementary, I'll probably go to jail +If I shoot at your identity and bounce to the left +Stuck a flag in my city, everybody's screamin' "Compton" +I should probably run for Mayor when I'm done, to be honest +And I put that on my Mama and my baby boo too +Twenty million walkin' out the court buildin' woo woo +Ah yeah fuck the judge +I made it past 25 and there I was +A little nappy headed nigga with the world behind him +Life ain't shit but a fat vagina +Screamin' "Annie are you ok? Annie are you ok?" +Limo tinted with the gold plates +Straight from the bottom, this the belly of the beast +From a peasant to a prince to a motherfucking king + +Bitch where was you when I was walkin'- +[POP] +(By the time you hear the next pop, the funk shall be within you) +[POP] +Now I run the game got the whole world talkin' (King Kunta) +Everybody wanna cut the legs off him (King Kunta) Kunta +Black man taking no losses +Bitch where was you when I was walkin' +Now I run the game got the whole world talkin' (King Kunta) +Everybody wanna cut the legs off him + +(Funk, funk, funk, funk, funk, funk) +We want the funk +We want the funk +(Now if I give you the funk, you gon' take it) +We want the funk +(Now if I give you the funk, you gon' take it) +We want the funk +(Now if I give you the funk, you gon' take it) +We want the funk +(Do you want the funk?) +We want the funk +(Do you want the funk?) +We want the funk +(Now if I give you the funk, you gon' take it) +We want the funk +I remember you was conflicted, misusing your influence
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar - LUST..txt b/ncmpcpp/lyrics/Kendrick Lamar - LUST..txt new file mode 100644 index 0000000..25211bb --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar - LUST..txt @@ -0,0 +1,127 @@ +[Kendrick Lamar:] +I need some water +Somethin' came over me +Way too hot to simmer down +Might as well overheat +Too close to comfort +As blood rush my favorite vein +Heartbeat racin' like a junkie's +I just need you to want me +Am I askin' too much? +Let me put the head in +Ooh, I don't want more than that +Girl, I respect the cat +I promise just a touch +Let me put the head in +If it's okay +She said, "It's okay." + +[Kendrick Lamar:] +Yeah, I need everybody's motherfuckin' hands up right now +I need everybody's motherfuckin'- +[RAT BOY:] +Door and his Nike Air Rattles +Rush the fire exit, no time for battles +Well I, I never expected +[Kendrick Lamar:] +This that new shit +This that new, new shit + +[Kendrick Lamar:] +Wake up in the mornin' +Thinkin' 'bout money, kick your feet up +Watch you a comedy, take a shit, then roll some weed up +Go hit you a lick, go fuck on a bitch +Don't go to work today, cop you a fit +Or maybe some kicks and make you- +[RAT BOY:] +Door in his Nike Air Rattles +Rush the fire exit, no time for battles +Well I, I never expected +[Kendrick Lamar:] +Wake up in the mornin' +Thinkin' 'bout money, kick your feet up +Watch you a comedy- hol' up! +Wake up in the mornin' +Thinkin' 'bout money, kick your feet up +Watch you a comedy, take a shit, then roll some weed up +Go hit you a lick, go fuck on a bitch, don't go to work today +Cop you a fit or maybe some kicks and make it work today +Hang with your homies, stunt on your baby mama +Sip some lean, go get a pistol, shoot out the window +Bet your favorite team, play you some Madden +Go to the club or your mama house +Whatever you doin', just make it count +(I need some water) +Wake up in the mornin' +Thinkin' 'bout money, kick your feet up +Hop in the shower, put on your makeup, lace your weave up +Touch on yourself, call up your nigga, tell him he ain't shit +Credit card scam, get you a Visa, make him pay your rent +Hop on the 'Gram, flex on the bitches that be hatin' on you +Pop you a pill, call up your bitches, have 'em waitin' on you +Go to the club, have you some fun, make that ass bounce +It's whatever, just make it count + +[Kendrick Lamar:] +I need some water +Somethin' came over me +Way too hot to simmer down +Might as well overheat +Too close to comfort +As blood rush my favorite vein +Heartbeat racin' like a junkie's +I just need you to want me +Am I askin' too much? +Let me put the head in +Ooh, I don't want more than that +Girl, I respect the cat +I promise just a touch +Let me put the head in +If it's okay +She said, "It's okay." + +I wake in the mornin', my head spinnin' from the last night +Both in the trance, feelings I did-what a fast life! +Manager called, the lobby called, it's 11: 30 +Did this before, promised myself I'd be a hour early +Room full of clothes, bag full of money: call it loose change +Fumbled my jewelry, 100k, I lost a new chain +Hop on the bird, hit the next city for another M +Take me a nap and do it again +We all woke up, tryna tune to the daily news +Lookin' for confirmation, hopin' election wasn't true +All of us worried, all of us buried, and our feeling's deep +None of us married to his proposal, make us feel cheap +Still and sad, distraught and mad, tell the neighbor 'bout it +Bet they agree, parade the streets with your voice proudly +Time passin', things change +Revertin' back to our daily programs, stuck in our ways; Lust + +Lately, I feel like I been lustin' over the fame +Lately, we lust on the same routine of shame +Lately, lately, lately, my lust been hidin' (Lately) +Lately, it's all contradiction +Lately, I'm not here +Lately, I lust over self +Lust turn into fear +Lately, in James 4: 4 says +Friend of the world is enemy of the Lord +Brace yourself, lust is all yours + +I need some water +Somethin' came over me +Way too high to simmer down +Might as well overheat +Too close to comfort +As blood rush my favorite vein +Heartbeat racin' like a junkie's +I just need you to want me +Am I askin' too much? +Let me put the head in +Ooh, I don't want more than that +Girl, I respect the cat +I promise just a touch +Let me put the head in +If it's okay +She said, "It's okay."
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar - Mortal Man.txt b/ncmpcpp/lyrics/Kendrick Lamar - Mortal Man.txt new file mode 100644 index 0000000..71fa146 --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar - Mortal Man.txt @@ -0,0 +1,256 @@ +The ghost of Mandela, hope my flows they propel it +Let these words be your earth and moon +You consume every message +As I lead this army make room for mistakes and depression +And with that being said my nigga, let me ask this question: + +When shit hit the fan, is you still a fan? +When shit hit the fan (one two, one two) +When shit hit the fan, is you still a fan? +When shit hit the fan, is you still a fan? + +The ghost of Mandela, hope my flows they propel it +Let these words be your earth and moon +You consume every message +As I lead this army make room for mistakes and depression +And with that being said my nigga, let me ask this question: + +When shit hit the fan, is you still a fan? +When shit hit the fan, is you still a fan? +Want you look to your left and right, make sure you ask your friends +When shit hit the fan, is you still a fan? + +Do you believe in me? Are you deceiving me? +Could I let you down easily, is your heart where it need to be? +Is your smile on permanent? Is your vow on lifetime? +Would you know where the sermon is if I died in this next line? +If I'm tried in a court of law, if the industry cut me off +If the government want me dead, plant cocaine in my car +Would you judge me a drug-head or see me as K. Lamar +Or question my character and degrade me on every blog +Want you to love me like Nelson, want you to hug me like Nelson +I freed you from being a slave in your mind, you're very welcome +You tell me my song is more than a song, it's surely a blessing +But a prophet ain't a prophet til they ask you this question: + +When shit hit the fan, is you still a fan? +When shit hit the fan, is you still a fan? +Want you look to your left and right, make sure you ask your friends +When shit hit the fan, is you still a fan? + +The ghost of Mandela, hope my flows they propel it +Let my words be your earth and moon you consume every message +As I lead this army make room for mistakes and depression +And with that + +Do you believe in me? How much you believe in her? +You think she gon' stick around if them 25 years occur? +You think he can hold you down when you down behind bars hurt? +You think y'all on common ground if you promise to be the first? Can you be immortalised without your life being expired? +Even though you share the same blood is it worth the time? +Like who got your best interest? +Like how much are you dependent? +How clutch are the people that say they love you? +And who pretending? +How tough is your skin when they turn you in? +Do you show forgiveness? +What brush do you bend when dusting your shoulders from being offended? +What kind of den did they put you in when the lions start hissing? +What kind of bridge did they burn? +Revenge or your mind when it's mentioned? +You wanna love like Nelson, you wanna be like Nelson +You wanna walk in his shoes but you peacemaking seldom +You wanna be remembered that delivered the message +That considered the blessing of everyone +This your lesson for everyone, say + +When shit hit the fan, is you still a fan? +When shit hit the fan, is you still a fan? +Want you look to your left and right, make sure you ask your friends +When shit hit the fan, is you still a fan? + +The voice of Mandela, hope this flow stay propellin' +Let my word be your Earth and moon +You consume every message +As I lead this army make room for mistakes and depression +And if you riding with me, nigga + +I been wrote off before, I got abandonment issues +I hold grudges like bad judges, don't let me resent you +That's not Nelson-like, want you to love me like Nelson +I went to Robben's Island analysing, that's where his cell is +So I could find clarity, like how much you cherish me +Is this relationship a fake or real as the heavens be? +See I got to question it all, family, friends, fans, cats, dogs +Trees, plants, grass, how the wind blow +Murphy's Law, generation X, will I ever be your X? +Floss off a baby step, mauled by the mouth of +Pit bulls, put me under stress +Crawled under rocks, ducking y'all, it's respect +But then tomorrow, put my back against the wall +How many leaders you said you needed then left 'em for dead? +Is it Moses, is it Huey Newton or Detroit Red? +Is it Martin Luther, JFK, shoot or you assassin +Is it Jackie, is it Jesse, oh I know, it's Michael Jackson, oh + +When shit hit the fan, is you still a fan? +When shit hit the fan, is you still a fan? +That nigga gave us "Billie Jean", you say he touched those kids? +When shit hit the fan, is you still a fan? + +The ghost of Mandela, hope my flows they propel it +Let my word be your earth and moon you consume every message +As I lead this army make room for mistakes and depression +And if you riding with me nigga, let me ask this question nigga + +[Kendrick Lamar:] +"I remember you was conflicted +Misusing your influence +Sometimes I did the same +Abusing my power, full of resentment +Resentment that turned into a deep depression +Found myself screaming in the hotel room +I didn't wanna self destruct +The evils of Lucy was all around me +So I went running for answers +Until I came home +But that didn't stop survivor's guilt +Going back and forth trying to convince myself the stripes I earned +Or maybe how A-1 my foundation was +But while my loved ones was fighting the continuous war back in the city, I was entering a new one +A war that was based on apartheid and discrimination +Made me wanna go back to the city and tell the homies what I learned +The word was respect +Just because you wore a different gang color than mine's +Doesn't mean I can't respect you as a black man +Forgetting all the pain and hurt we caused each other in these streets +If I respect you, we unify and stop the enemy from killing us +But I don't know, I'm no mortal man, maybe I'm just another nigga" + +Shit and that's all I wrote +I was gonna call it +Another Nigga but, it ain't really a poem, I just felt like it's +something you probably could relate to. Other than that, now that I +finally got a chance to holla at you, I always wanted to ask you about a +certain situa--, about a metaphor actually, you spoke on the ground. +What you mean 'bout that, what the ground represent? + +[2Pac:] +The ground is gonna open up and swallow the evil + +[Kendrick Lamar:] +Right + +[2Pac:] +That's how I see it, my word is bond. I see - and +the ground is the symbol for the poor people, the poor people is gonna +open up this whole world and swallow up the rich people. Cause the rich +people gonna be so fat, they gonna be so appetising, you know what I'm +saying, wealthy, appetising. The poor gonna be so poor and hungry, you +know what I'm saying it's gonna be like… there might be some cannibalism +out this mutha, they might eat the rich + +[Kendrick Lamar:] +Aight +so let me ask you this then, do you see yourself as somebody that's +rich or somebody that made the best of their own opportunities? + +[2Pac:] +I +see myself as a natural born hustler, a true hustler in every sense of +the word. I took nothin', I took the opportunities, I worked at the most +menial and degrading job and built myself up so I could get it to where +I owned it. I went from having somebody manage me to me hiring the +person that works my management company. I changed everything I realized +my destiny in a matter of five years you know what I'm saying I made +myself a millionaire. I made millions for a lot of people now it's time +to make millions for myself, you know what I'm saying. I made millions +for the record companies, I made millions for these movie companies, now +I make millions for us + +[Kendrick Lamar:] +And through your different avenues of success, how would you say you managed to keep a level of sanity? + +[2Pac:] +By +my faith in God, by my faith in the game, and by my faith in "all good +things come to those that stay true." You know what I'm saying, and it +was happening to me for a reason, you know what I'm saying, I was +noticing, shit, I was +punching the right buttons and it was happening. So it's no problem, you +know I mean it's a problem but I'm not finna let them know. I'm finna +go straight through + +[Kendrick Lamar:] +Would you consider yourself a fighter at heart or somebody that only reacts when they back is against the wall? + +[2Pac:] +Shit, +I like to think that at every opportunity I've ever been threatened +with resistance, it's been met with resistance. And not only me but it +goes down my family tree. You know what I'm saying, it's in my veins to +fight back + +[Kendrick Lamar:] +Aight well, how long you think it +take before niggas be like, we fighting a war, I'm fighting a war I +can't win and I wanna lay it all down + +[2Pac:] +In this country a +black man only have like 5 years we can exhibit maximum strength, and +that's right now while you a teenager, while you still strong or while +you still wanna lift weights, while you still wanna shoot back. Cause +once you turn 30 it's like they take the heart and soul out of a man, +out of a black man in this country. And you don't wanna fight no more. +And if you don't believe me you can look around, you don't see no loud +mouth 30-year old muthafuckas + +[Kendrick Lamar:] +That's crazy, +because me being one of your offspring of the legacy you left behind I +can truly tell you that there's nothing but turmoil goin' on so I wanted +to ask you what you think is the future for me and my generation today? + +[2Pac:] +I think that niggas is tired of grabbin' shit out the stores and next time it's a riot there's gonna be, like, uh, bloodshed for real. I don't think America +know that. I think American think we was just playing and it's gonna be +some more playing but it ain't gonna be no playing. It's gonna be +murder, you know what I'm saying, it's gonna be like Nat Turner, 1831, +up in this muthafucka. You know what I'm saying, it's gonna happen + +[Kendrick Lamar:] +That's +crazy man. In my opinion, only hope that we kinda have left is music +and vibrations, lotta people don't understand how important it is. +Sometimes I be like, get behind a mic and I don't know what type of +energy I'mma push out, or where it comes from. Trip me out sometimes + +[2Pac:] +Because the spirits, we ain't even really rappin', we just letting our dead homies tell stories for us + +[Kendrick Lamar:] +Damn + +I wanted to read one last thing to you. It's actually something a good friend had wrote describing my world. It says: + +"The caterpillar is a prisoner to the streets that conceived it +Its only job is to eat or consume everything around it, in order to protect itself from this mad city +While consuming its environment the caterpillar begins to notice ways to survive +One thing it noticed is how much the world shuns him, but praises the butterfly +The butterfly represents the talent, the thoughtfulness, and the beauty within the caterpillar +But +having a harsh outlook on life the caterpillar sees the butterfly as +weak and figures out a way to pimp it to his own benefits +Already surrounded by this mad city the caterpillar goes to work on the cocoon which institutionalizes him +He can no longer see past his own thoughts +He's trapped +When trapped inside these walls certain ideas take roots, such as going home, and bringing back new concepts to this mad city +The result? +Wings begin to emerge, breaking the cycle of feeling stagnant +Finally free, the butterfly sheds light on situations that the caterpillar never considered, ending the internal struggle +Although the butterfly and caterpillar are completely different, they are one and the same." + +What's your perspective on that? +Pac? Pac? +Pac?!
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar - PRIDE..txt b/ncmpcpp/lyrics/Kendrick Lamar - PRIDE..txt new file mode 100644 index 0000000..f4e9090 --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar - PRIDE..txt @@ -0,0 +1,75 @@ +[Bēkon:] +Love's gonna get you killed +But pride's gonna be the death of you and you and me +And you and you and you and me +And you and you and you and me +And you and you and you and me and- + +[Steve Lacy (Kendrick Lamar):] +Me, I wasn't taught to share, but care +(In another life, I surely was there) +Me, I wasn't taught to share, but care +(I care, I care) + +[Kendrick Lamar:] +Hell-raising, wheel-chasing, new worldy possessions +Flesh-making, spirit-breaking, which one would you lessen? +The better part, the human heart +You love 'em or dissect 'em +Happiness or flashiness? How do you serve the question? +See, in the perfect world, I would be perfect, world +I don't trust people enough beyond they surface, world +I don't love people enough to put my faith in men +I put my faith in these lyrics, hoping I make amend +I understand I ain't perfect +I probably won't come around +This time, I might put you down +Last time, I ain't give a fuck, I still feel the same now +My feelings might go numb, you're dealing with cold thumb +I'm willing to give up a leg and arm and show empathy from +Pity parties and functions and you and yours +A perfect world, you probably live another 24 +I can't fake humble just 'cause your ass is insecure +I can't fake humble just 'cause your ass is insecure + +[Steve Lacy (Kendrick Lamar):] +Me, I wasn't taught to share, but care +In another life, I surely was there +Me, I wasn't taught to share, but care +(I care, I care) + +[Kendrick Lamar & Anna Wise:] +Maybe I wasn't there +Maybe I wasn't there +Maybe I wasn't there +Maybe I wasn't there + +[Kendrick Lamar:] +Now, in a perfect world, I probably won't be insensitive +Cold as December, but never remember what Winter did +I wouldn't blame you for mistakes I made or the bed I laid +Seems like I point the finger just to make a point nowadays +Smiles and cold stares, the temperature goes there +Indigenous disposition, feel like we belong here +I know the walls, they can listen, I wish they could talk back +The hurt becomes repetition, the love almost lost that +Sick venom in men and women overcome with pride +A perfect world is never perfect, only filled with lies +Promises are broken and more resentment come alive +Race barriers make inferior of you and I +See, in a perfect world, I'll choose faith over riches +I'll choose work over bitches, I'll make schools out of prison +I'll take all the religions and put 'em all in one service +Just to tell 'em we ain't shit, but He's been perfect, world + +[Steve Lacy (Kendrick Lamar):] +Me, I wasn't taught to share, but care +(In another life, I surely was there) +Me, I wasn't taught to share, but care +(I care, I care) + +[Kendrick Lamar & Anna Wise:] +Maybe I wasn't there +Maybe I wasn't there +Maybe I wasn't there +Maybe I wasn't there
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar - The Blacker the Berry.txt b/ncmpcpp/lyrics/Kendrick Lamar - The Blacker the Berry.txt new file mode 100644 index 0000000..8ac14fa --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar - The Blacker the Berry.txt @@ -0,0 +1,97 @@ +Everything black, I don't want black +I want everything black, I ain't need black +Some white some black, I ain't mean black +I want everything black +[x2] + +Six in the mornin', fire in the street +Burn, baby burn, that's all I wanna see +And sometimes I get off watchin' you die in vain +It's such a shame they may call me crazy +They may say I suffer from schizophrenia or somethin' +But homie you made me +Black don't crack my nigga + +I'm the biggest hypocrite of 2015 +Once I finish this, witnesses will convey just what I mean +Been feeling this way since I was 16, came to my senses +You never liked us anyway, fuck your friendship, I meant it +I'm African-American, I'm African +I'm black as the moon, heritage of a small village +Pardon my residence +Came from the bottom of mankind +My hair is nappy, my dick is big, my nose is round and wide +You hate me don't you? +You hate my people, your plan is to terminate my culture +You're fuckin' evil I want you to recognize that I'm a proud monkey +You vandalize my perception but can't take style from me +And this is more than confession +I mean I might press the button just so you know my discretion +I'm guardin' my feelins, I know that you feel it +You sabotage my community, makin' a killin' +You made me a killer, emancipation of a real nigga + +[Pre-Hook:] +The blacker the berry, the sweeter the juice +The blacker the berry, the sweeter the juice +The blacker the berry, the sweeter the juice +The blacker the berry, the bigger I shoot + +[Hook:] +I said they treat me like a slave, cah' me black +Woi, we feel a whole heap of pain, cah' we black +And man a say they put me in a chain, cah' we black +Imagine now, big gold chain full of rocks +How you no see the whip, left scars pon' me back +But now we have a big whip, parked pon' the block +All them say we doomed from the start, cah' we black +Remember this, every race start from the black, just remember that + +I'm the biggest hypocrite of 2015 +Once I finish this, witnesses will convey just what I mean +I mean, it's evident that I'm irrelevant to society +That's what you're telling me, penitentiary would only hire me +Curse me till I'm dead +Church me with your fake prophesyzing that I'mma be just another slave in my head +Institutionalize manipulation and lies +Reciprocation of freedom only live in your eyes +You hate me don't you? +I know you hate me just as much as you hate yourself +Jealous of my wisdom and cards I dealt +Watchin' me as I pull up, fill up my tank, then peel out +Muscle cars like pull ups, show you what these big wheels 'bout, ah +Black and successful, this black man meant to be special +CAT scans on my radar bitch, how can I help you? +How can I tell you I'm making a killin'? +You made me a killer, emancipation of a real nigga + +[Pre-Hook] + +[Hook] + +I'm the biggest hypocrite of 2015 +When I finish this if you listenin' sure you will agree +This plot is bigger than me, it's generational hatred +It's genocism, it's grimy, little justification +I'm African-American, I'm African +I'm black as the heart of a fuckin' Aryan +I'm black as the name of Tyrone and Darius +Excuse my French but fuck you — no, fuck y'all +That's as blunt as it gets, I know you hate me, don't you? +You hate my people, I can tell cause it's threats when I see you +I can tell cause your ways deceitful +Know I can tell because you're in love with the Desert Eagle +Thinkin' maliciously, he get a chain then you gone bleed him +It's funny how Zulu and Xhosa might go to war +Two tribal armies that want to build and destroy +Remind me of these Compton Crip gangs that live next door +Beefin' with Piru's, only death settle the score +So don't matter how much I say I like to preach with the Panthers +Or tell Georgia State "Marcus Garvey got all the answers" +Or try to celebrate February like it's my B-Day +Or eat watermelon, chicken, and Kool-Aid on weekdays +Or jump high enough to get Michael Jordan endorsements +Or watch BET cause urban support is important +So why did I weep when Trayvon Martin was in the street? +When gang banging make me kill a nigga blacker than me? +Hypocrite!
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar - i.txt b/ncmpcpp/lyrics/Kendrick Lamar - i.txt new file mode 100644 index 0000000..492bce5 --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar - i.txt @@ -0,0 +1,147 @@ +[Produced by Rahki] +[Directed by Alexandre Moors and the Little Homies] + +[Intro] +Is this mic on? (Hey, move this way, this way) +Hey, Hey! Hey! Turn the mic up, c'mon, c'mon +Is the mic on or not? I want the mic +We're bringing up nobody, nobody... +Nobody but the number one rapper in the world +He done traveled all over the world +He came back just to give you some game +All of the little boys and girls, come up here +(One two, one two, what's happening, fool?) +Come right here, this is for you, come on up +Kendrick Lamar, make some noise, brother +I done been through a whole lot +Trial, tribulation, but I know God +The Devil wanna put me in a bow tie +Pray that the holy water don't go dry +As I look around me +So many motherfuckers wanna down me +But enemigo never drown me +In front of a dirty double-mirror they found me + +[Chorus] +And (I love myself) +When you lookin' at me, tell me what do you see? +(I love myself) +Ahh, I put a bullet in the back of the back of the head of the police +(I love myself) +Illuminated by the hand of God, boy, don't seem shy +(I love myself) +One day at a time + +[Verse 1] +They wanna say it's a war outside, bomb in the street +Gun in the hood, mob of police +Rock on the corner with a line for the fiend +And a bottle full of lean and a model on the scheme, uh +These days of frustration keep y'all on tuck and rotation (Come to the front) +I duck these cold faces, post up fi-fie-fo-fum basis +Dreams of reality's peace +Blow steam in the face of the beast +Sky could fall down, wind could cry now +Look at me motherfucker I smile- + +[Chorus] +And (I love myself) +When you lookin' at me, tell me what do you see? +(I love myself) +Ahh, I put a bullet in the back of the back of the head of the police +(I love myself) +Illuminated— +All ya'll come to the front, ya'll come up to the front +(I love myself) +Baby what about you, come on + +[Verse 2] +(Crazy, what you gon' do?) +Lift up your head and keep moving, (Keep moving) turn the mic up +(Haunt you) +Peace to fashion police, I wear my heart +On my sleeve, let the runway start +You know the miserable do love company +What do you want from me and my scars? +Everybody lack confidence, everybody lack confidence +How many times my potential was anonymous? +How many times the city making me promises? +So I promise this, nigga + +[Chorus] +(I love myself) +When you lookin' at me, tell me what do you see? +(I love myself) +Ahh, I put a bullet in the back of the back of the head of the police +(I love myself) +Illuminated by the hand of God, boy don't seem shy +(I love myself) + +[Bridge] +Huh (Walk my bare feet) Huh (Walk my bare feet) +Huh (Down, down valley deep) Huh (Down, down valley deep) +(I love myself) Huh (Fi-fie-fo-fum) Huh (Fi-fie-fo-fum) +(I love myself) Huh (My heart undone) one, two, three + +[Verse 3] +I went to war last night +With an automatic weapon, don't nobody call a medic +I'ma do it till I get it right (Oh no) +I went to war last night (Night, night, night, night) +I've been dealing with depression ever since an adolescent +Duckin' every other blessin', I can never see the message +I could never take the lead, I could never bob and weave +From a negative and letting them annihilate me +And it's evident I'm moving at a meteor speed +Finna run into a building, lay my body... + +[Spoken Interlude] +(Offstage Argument) +Not on my, not while I'm up here +Not on my time, kill the music, not on my time +We could save that shit for the streets +We could save that shit, this for the kids bro +2015, niggas tired of playin' victim dog +Niggas ain't trying to play vic— TuTu, how many niggas we done lost? +How many— Yan-Yan, how many we done lost? +No for real, answer the que—, how many niggas we done lost bro? +This—, this year alone +Exactly, so we ain't got time to waste time my nigga +Niggas gotta make time bro +The judge make time, you know that, the judge make time right? +The judge make time so it ain’t shit +It shouldn’t be shit for us to come out here and appreciate the little bit of life we got left, dog +On the dead homies, Charlie P, you know that bro +You know that +It’s mando, right, it's mando +And I— And I say this because I love you niggas man +I love all my niggas bro +Exac— enough said, enough said +And we gon' get back to the show and move on, because that shit petty my nigga +Mic check, mic check, mic check, mic check, mic check +We gon' do some acapella shit before we get back to- +All my niggas listen, listen to this: + +[Verse 4] +I promised Dave I'd never use the phrase "fuck nigga" +He said, "Think about what you saying: "Fuck niggas" +No better than Samuel on the Django +No better than a white man with slave boats" +Sound like I needed some soul searching +My Pops gave me some game in real person +Retraced my steps on what they never taught me +Did my homework fast before government caught me +So I'ma dedicate this one verse to Oprah +On how the infamous, sensitive N-word control us +So many artists gave her an explanation to hold us +Well, this is my explanation straight from Ethiopia +N-E-G-U-S definition: royalty; king royalty - wait listen +N-E-G-U-S description: black emperor, king, ruler, now let me finish +The history books overlook the word and hide it +America tried to make it to a house divided +The homies don't recognize we been using it wrong +So I'ma break it down and put my game in a song +N-E-G-U-S, say it with me, or say it no more +Black stars can come and get me +Take it from Oprah Winfrey, tell her she right on time +Kendrick Lamar, by far, realest Negus alive
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar - u.txt b/ncmpcpp/lyrics/Kendrick Lamar - u.txt new file mode 100644 index 0000000..e9988cb --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar - u.txt @@ -0,0 +1,74 @@ +[10x:] +Loving you is complicated + +I place blame on you still +Place shame on you still +Feel like you ain't shit +Feel like you don't feel, confidence in yourself +Breakin' on marble floors +Watchin' anonymous strangers tellin' me that I'm yours +But you ain't shit I'm convinced your talent's nothin' special +What can I blame him for? +Nigga, I can name several +Situation had stopped with your little sister bakin' +A baby inside, just a teenager, where your patience? +Where was your antennas, where was the influence you speak of? +You preached in front of 100,000 but never reached her +I fuckin' tell you, you're fuckin' failure, you ain't no leader +I never liked you, forever despise you, I don't need you +The world don't need you, don't let them deceive you +Numbers lie too, fuck your pride too, that's for dedication +Thought money would change you, made you more complacent +I fuckin' hate you, I hope you embrace it + +[5x:] +Loving you is complicated + +Lovin' you, lovin' you, not lovin' you, one hundred proof +I can feel you vibin', recognize that you're ashamed of me +Yes, I hate you too + +House keeping +[Knocks] +House keeping +¡Abre la puerta! ¡Abre la puerta tengo que limpiar el cuarto! +¡Es que no hay mucho tiempo tengo que limpiar el cuarto¡ +!Disculpe! + +And you the reason why mama and them leavin' +No, you ain't shit, you say you love them, I know you don't mean it +I know you're irresponsible, selfish, in denial, can't help it +Your trials and tribulations a burden, everyone felt it +Everyone heard it, multiple shots, corners cryin' out +You was deserted, where was your antennas again? +Where was your presence, where was your support that you pretend? +You ain't no brother, you ain't no disciple, you ain't no friend +A friend never leave Compton for profit, or leave his best friend +Little brother, you promised you'd watch him before they shot him +Where was your antennas? On the road, bottles and bitches +You FaceTime'd the one time, that's unforgiven +You even FaceTime'd instead of a hospital visit +'Cause you thought he would recover, well +The surgery couldn't stop the bleeding for real +Then he died, God himself will say, "You fuckin' failed." +You ain't try + +I know your secrets nigga +Mood swings is frequent nigga +I know depression is restin' on your heart for two reasons, nigga +I know you and a couple block boys ain't been speaking, nigga +Y'all damn near beefin', I seen it and you're the reason, nigga +And if this bottle could talk [gulp] I cry myself to sleep +Bitch, everything is your fault +Faults breakin' to pieces, earthquakes on every weekend +Because you shook as soon as you knew confinement was needed +I know your secrets +Don't let me tell them to the world about that shit you thinkin' +And that time you [gulp] I'm 'bout to hurl +I'm fucked up, but ain't as fucked up as you +You just can't get right, I think your heart made of bullet proof +Shoulda killed yo ass a long time ago +You shoulda filled that black revolver blast a long time ago +And if those mirrors could talk it would say, "You gotta go." +And if I told your secrets +The world'll know money can't stop a suicidal weakness
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar feat. U2 - XXX..txt b/ncmpcpp/lyrics/Kendrick Lamar feat. U2 - XXX..txt new file mode 100644 index 0000000..44a9a2c --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar feat. U2 - XXX..txt @@ -0,0 +1,92 @@ +[Bēkon:] +America, God bless you if it's good to you +America please take my hand +Can you help me underst- +[Kid Capri:] New Kung Fu Kenny + +[Kendrick Lamar:] +Throw a steak off the ark +To a pool full of sharks, he'll take it +Leave him in the wilderness +With a sworn nemesis, he'll make it +Take the gratitude from him +I bet he'll show you somethin', whoa +I'll chip a nigga little bit of nothin' +I'll chip a nigga little bit of nothin' +I'll chip a nigga little bit of nothin' +I'll chip a nigga, then throw the blower in his lap +Walk myself to the court like, "Bitch, I did that!" +X-rated + +Johnny don't wanna go to school no mo', no mo' +Johnny said books ain't cool no mo' (no mo') +Johnny wanna be a rapper like his big cousin +Johnny caught a body yesterday out hustlin' +God bless America, you know we all love him + +Yesterday I got a call like from my dog like 101 +Said they killed his only son because of insufficient funds +He was sobbin', he was mobbin', way belligerent and drunk +Talkin' out his head, philosphin' on what the Lord had done +He said: "K-Dot, can you pray for me? +It's been a fucked up day for me +I know that you anointed, show me how to overcome." +He was lookin' for some closure +Hopin' I could bring him closer +To the spiritual, my spirit do no better, but I told him +"I can't sugarcoat the answer for you, this is how I feel: +If somebody kill my son, that mean somebody gettin' killed." +Tell me what you do for love, loyalty, and passion of +All the memories collected, moments you could never touch + +I'll wait in front a niggas spot and watch him hit his block +I'll catch a nigga leavin' service if that's all I got +I'll chip a nigga, then throw the blower in his lap +Walk myself to the court like, "Bitch, I did that!" +Ain't no Black Power when your baby killed by a coward +I can't even keep the peace, don't you fuck with one of ours +It be murder in the street, it be bodies in the hour +Ghetto bird be on the street, paramedics on the dial +Let somebody touch my mama +Touch my sister, touch my woman +Touch my daddy, touch my niece +Touch my nephew, touch my brother + +You should chip a nigga, then throw the blower in his lap +Matter fact, I'm 'bout to speak at this convention +Call you back- + +Alright, kids, we're gonna talk about gun control +(Pray for me) Damn! + +[Bono:] +It's not a place +This country is to be a sound of drum and bass +You close your eyes to look around + +[Kendrick Lamar:] +Hail Mary, Jesus and Joseph +The great American flag +Is wrapped and dragged with explosives +Compulsive disorder, sons and daughters +Barricaded blocks and borders +Look what you taught us! +It's murder on my street, your street, back streets +Wall Street, corporate offices +Banks, employees, and bosses with +Homicidal thoughts; Donald Trump's in office +We lost Barack and promised to never doubt him again +But is America honest, or do we bask in sin? +Pass the gin, I mix it with American blood +Then bash him in, you Crippin' or you married to blood? +I'll ask again-oops-accident +It's nasty when you set us up +Then roll the dice, then bet us up +You overnight the big rifles, then tell Fox to be scared of us +Gang members or terrorists, et cetera, et cetera +America's reflections of me, that's what a mirror does + +[Bono:] +It's not a place +This country is to be a sound of drum and bass +You close your eyes to look ar-
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar feat. Zacari - LOVE..txt b/ncmpcpp/lyrics/Kendrick Lamar feat. Zacari - LOVE..txt new file mode 100644 index 0000000..f3ed675 --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar feat. Zacari - LOVE..txt @@ -0,0 +1,99 @@ +[Kendrick Lamar:] +Damn, love or lust +Damn, all of us + +[Zacari (Kendrick Lamar):] +Give me a run for my money +There is nobody, no one to outrun me +(Another world premiere!) +So give me a run for my money +Sippin' bubbly, feelin' lovely, livin' lovely +Just love me +(I wanna be with you, ay, I wanna be with) +Just love me, just love me, just love me +(I wanna be with you, ay, I wanna be with) +Love me +(I wanna be with you) +Love me, just love me + +[Kendrick Lamar (Zacari):] +If I didn't ride blade on curb, would you still (love me)? +If I minimized my net worth, would you still (love me)? +Keep it a hundred, I'd rather you trust me than to (love me) +Keep it a whole one hund': don't got you, I got nothin' + +[Kendrick Lamar:] +Ay, I got somethin' +Hol' up, we gon' function, no assumptions +Feelin' like Tyson with it +Knock it out twice, I'm with it +Only for the night, I'm kiddin' +Only for life, yeah, only for life, yeah +Only for life, let's get it +Hit that shoulder lean +I know what comin' over me +Backstroke oversea +I know what you need +Already on ten, all money come in +All feeling go out, this feeling don't drought +This party won't end + +[Kendrick Lamar (Zacari):] +If I didn't ride blade on curb, would you still (love me)? +If I minimized my net worth, would you still (love me)? +Keep it a hundred, I'd rather you trust me than to (love me) +Keep it a whole one hund': don't got you, I got nothin' + +[Zacari (Kendrick Lamar):] +Give me a run for my money +There is nobody, no one to outrun me +So give me a run for my money +Sippin' bubbly, feelin' lovely, livin' lovely +Just love me +(I wanna be with you, ay, I wanna be with) +Just love me, just love me, just love me +(I wanna be with you, ay, I wanna be with) +Love me +(I wanna be with you) +Love me, just love me + +[Kendrick Lamar:] +I'm on the way +We ain't got no time to waste +Poppin' your gum on the way +Am I in the way? +I don't wan' pressure you none +I want your blessing today +Oh, by the way, open the door by the way +Told you that I'm on the way +I'm on the way, I know connection is vague +Pick up the phone for me, babe +Damn it, we jammin' +Bad attitude from your nanny +Curves and your hips from your mammy +Remember Gardena, I took the studio camera +I know Top will be mad at me +I had to do it, I want your body, your music +I bought the big one to prove it +Look what you made +Told you that I'm on the way +I'm like an exit away, yep + +[Kendrick Lamar (Zacari):] +If I didn't ride blade on curb, would you still (love me)? +If I minimized my net worth, would you still (love me)? +Keep it a hundred, I'd rather you trust me than to (love me) +Keep it a whole one hund': don't got you, I got nothin' + +[Zacari (Kendrick Lamar):] +Give me a run for my money +There is nobody, no one to outrun me +So give me a run for my money +Sippin' bubbly, feelin' lovely, livin' lovely +Just love me +(I wanna be with you, ay, I wanna be with) +Just love me, just love me, just love me +(I wanna be with you, ay, I wanna be with) +Love me +(I wanna be with you) +Love me, just love me
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kendrick Lamar ft. Bilal, Anna Wise, & Thundercat - These Walls.txt b/ncmpcpp/lyrics/Kendrick Lamar ft. Bilal, Anna Wise, & Thundercat - These Walls.txt new file mode 100644 index 0000000..9e1adac --- /dev/null +++ b/ncmpcpp/lyrics/Kendrick Lamar ft. Bilal, Anna Wise, & Thundercat - These Walls.txt @@ -0,0 +1,86 @@ +I remember you was conflicted, misusing your influence +Sometimes, I did the same + +If these walls could talk [x6] + +[Anna Wise:] +Sex, she just want to close her eyes and sway +If you, if you, if you exercise your right to work it out +Its true, its true, its true, shout out to the birthday girls say hey +Say hey, everyone deserves a night to play +And shes plays only when you tell her no + +[Hook - Bilal:] +If these walls could talk +I can feel your reign when it cries gold lives inside of you +If these walls could talk +I love it when I’m in it, I love it when I’m in it + +If these walls could talk they’d tell me to swim good +No boat I float better than he would +No life jacket I’m not the guard in Nazareth +But your flood can be misunderstood +Wall telling me they full of pain, resentment +Need someone to live in them just to relieve tension +Me? I’m just a tenant +My lord said these walls vacant more than a minute +These walls are vulnerable, exclamation +Interior pink, color coordinated +I interrogated every nook and cranny +I mean its still amazing before they couldn’t stand me +These walls want to cry tears +These walls happier when I’m here +These walls never could hold up +Everytime I come around demolition might crush + +[Hook] + +If these walls could talk they’d tell me to go deep +Yelling at me continuously I can see +Your defense mechanism is my decision +Knock these walls down that’s my religion +Walls feeling like they ready to close in +I suffocate then catch my second wind +I resonate in these walls +I don’t know how long I can wait in these walls +I’ve been on these streets too long looking at you from the outside in +They sing the same old song about how they walls are always the cleanest +I beg to differ, I must’ve missed them +I’m not involved I’d rather diss them +I’d rather call all you put your wall up +Cause when I come around demolition gon’ crush + +[Hook] + +If your walls could talk they’d tell you it’s too late +Your destiny accepted your fate +Burn accessories and stash them where they are +Take the recipe, the bible and god +Wall telling you that commissary is low +Race wars happening no calling CO +No calling your mother to save you +Homies say to you, you're reputable, not acceptable +Your behavior is Sammy Da Bull like a killer that turned snitch +Walls is telling me you a bitch +You pray for appeals hoping the warden could afford them +That sentence so important +Walls telling you to listen to "Sing About Me" +Retaliation is strong you even dream about me +Killed my homeboy and God spared your life +Dumb criminal got indicted the same night +So when you play this song rewind the first verse +About me abusing my power so you can hurt +About me and her in the shower whenever she horny +About me and her in the after hours of the morning +About her baby daddy currently serving life +And how she think about you until we meet up at night +About the only girl that cared about you when you asked her +And how she fucking on a famous rapper +Walls could talk + +I remember you was conflicted +Misusing your influence +Sometimes I did the same +Abusing my power full of resentment +Resentment that turned into a deep depression +Found myself screaming in a hotel room
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kero Kero Bonito - If I’d Known.txt b/ncmpcpp/lyrics/Kero Kero Bonito - If I’d Known.txt new file mode 100644 index 0000000..09c44c4 --- /dev/null +++ b/ncmpcpp/lyrics/Kero Kero Bonito - If I’d Known.txt @@ -0,0 +1,37 @@ +Looking back, I ponder all the possibilities +That I had sat right in front of me +Every one an optional decision +Giving birth to a dedicated universe + +Only if I'd known long ago +That a choice will grow +Into another road + +But I heard that every single version of events +Will occur whatever we expect +And as such, I really needn't worry very much +'Cause I feel all worlds at once + +Only if I'd known long ago +Space is ours to roam +If you can find your own + +Reality proves me +It goes pretty smoothly +But I haven't found the meaning +Quite yet + +Only if I'd known long ago +That a choice will grow +Into another road +Only if I'd known long ago +Space is ours to roam +If you can find your own + +Who tore the sky? Who copied me? +Water going back on itself, up to the sea +Is that, a whole world talking from just behind a ceiling? +Watch me get my two timelines +Not going through the door all alone +I leave something on the side +So you know I said hello
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Kero Kero Bonito - Trampoline.txt b/ncmpcpp/lyrics/Kero Kero Bonito - Trampoline.txt new file mode 100644 index 0000000..7c62619 --- /dev/null +++ b/ncmpcpp/lyrics/Kero Kero Bonito - Trampoline.txt @@ -0,0 +1,69 @@ +As the rain came down my window +I heard the wind blow all around +I was stuck under the weather +Felt like forever out of the sun +But then I looked at my garden +And saw at the bottom my old trampoline +That's when I knew what to do +I could break right on through +Yeah, the clouds aren't so high + +First you fall down, then you jump back up again +Find your rhythm, momentum is the key +It's so easy, anyone can trampoline +So jump on up and you can see +The whole wide world +When you're ready, mix it up, try everything +Full twist, backflip, just set your body free +Life looks better when you're on your trampoline +But keep an eye on gravity and don't forget to bounce +(Bounce, bounce, bounce, bounce...) + +Though I love it when I'm floating +It's kind of lonely at the top +But if we all jump together +Then we'll go higher +We'll never stop +I know I've got to come down +Put my feet on the ground soon +But that's okay +You see, I'm safe in the knowledge +No matter what, I got my old trampoline + +First you fall down, then you jump back up again +Find your rhythm, momentum is the key +It's so easy, anyone can trampoline +So jump on up and you can see +The whole wide world +When you're ready, mix it up, try everything +Full twist, backflip, just set your body free +Life looks better when you're on your trampoline +But keep an eye on gravity and don't forget to bounce +(Bounce, bounce, bounce, bounce...) + +つまずいて落ちてくことってあるけど +どん底の底の底って何があるか知ってる? +どんどん落ちていくとトランポリンがあるんだよ +突き落とされても大丈夫 +手をあげて飛び上がれ! + +Even if you're falling, that's okay +There's a trampoline waiting for you +It's so easy, you just have to believe +信じればいいんだよ + +So jump, jump, trampoline, fly to where you want to be +Jump, jump, trampoline, fly to where you want to be +Jump, jump, trampoline, fly to where you want to be +Jump, jump, trampoline, fly to where you want to be + +First you fall down, then you jump back up again +Find your rhythm, momentum is the key +It's so easy, anyone can trampoline +So jump on up and you can see +The whole wide world +When you're ready, mix it up, try everything +Full twist, backflip, just set your body free +Life looks better when you're on your trampoline +But keep an eye on gravity and don't forget to bounce +(Bounce, bounce, bounce, bounce...)
\ No newline at end of file diff --git a/ncmpcpp/lyrics/King Crimson - Epitaph (including March for No Reason and Tomorrow and Tomorrow).txt b/ncmpcpp/lyrics/King Crimson - Epitaph (including March for No Reason and Tomorrow and Tomorrow).txt new file mode 100644 index 0000000..a8c181f --- /dev/null +++ b/ncmpcpp/lyrics/King Crimson - Epitaph (including March for No Reason and Tomorrow and Tomorrow).txt @@ -0,0 +1,23 @@ +The wall on which the prophets wrote +Is cracking at the seams +Upon the instruments of death +The sunlight brightly gleams +When every man is torn apart +With nightmares and with dreams, +Will no one lay the laurel wreath +As silence drowns the screams + +Between the iron gates of fate, +The seeds of time were sown, +And watered by the deeds of those +Who know and who are known; +Knowledge is a deadly friend +When no one sets the rules +The fate of all mankind I see +Is in the hands of fools + +Confusion will be my epitaph +As I crawl a cracked and broken path +If we make it we can all sit back and laugh, +But I fear tomorrow I'll be crying, +Yes I fear tomorrow I'll be crying
\ No newline at end of file diff --git a/ncmpcpp/lyrics/King Crimson - Moonchild (including The Dream and The Illusion).txt b/ncmpcpp/lyrics/King Crimson - Moonchild (including The Dream and The Illusion).txt new file mode 100644 index 0000000..3ce9094 --- /dev/null +++ b/ncmpcpp/lyrics/King Crimson - Moonchild (including The Dream and The Illusion).txt @@ -0,0 +1,19 @@ +Call her moonchild +Dancing in the shallows of a river +Lonely moonchild +Dreaming in the shadows of the willow + +Talking to the trees of the cobweb strange +Sleeping on the steps of a fountain +Waving silver wands to the night-birds song +Waiting for the sun on the mountain + +She's a moonchild +Gathering the flowers in a garden +Lovely moonchild +Drifting on the echoes of the hours + +Sailing on the wind in a milk white gown +Dropping circle stones on a sun dial +Playing hide and seek with the ghosts of dawn +Waiting for a smile from a sun child
\ No newline at end of file diff --git a/ncmpcpp/lyrics/King Crimson - The Court of the Crimson King (including The Return of the Fire Witch and The Dance of the Puppets).txt b/ncmpcpp/lyrics/King Crimson - The Court of the Crimson King (including The Return of the Fire Witch and The Dance of the Puppets).txt new file mode 100644 index 0000000..ab302d3 --- /dev/null +++ b/ncmpcpp/lyrics/King Crimson - The Court of the Crimson King (including The Return of the Fire Witch and The Dance of the Puppets).txt @@ -0,0 +1,14 @@ +Cat's foot iron claw +Neuro-surgeons scream for more +At paranoia's poison door. +Twenty first century schizoid man. + +Blood rack barbed wire +Politicians' funeral pyre +Innocents raped with napalm fire +Twenty first century schizoid man. + +Death seed blind man's greed +Poets' starving children bleed +Nothing he's got he really needs +Twenty first century schizoid man.
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Marko Polo - Speedy Speed Boys.txt b/ncmpcpp/lyrics/Marko Polo - Speedy Speed Boys.txt new file mode 100644 index 0000000..381ae25 --- /dev/null +++ b/ncmpcpp/lyrics/Marko Polo - Speedy Speed Boys.txt @@ -0,0 +1,63 @@ +[Chorus] Speedy Speed Boy - gasoline's burnin' in +Speedy Speed Boy - as fast as I can be +Speedy Speed Boy - every night and day +Wind is on my face + +(Speedy Speed Boy) +(Speedy Speed Boy) + +Running with my car +Running in my dreams every night...Night +Born to overtake +Born to race and to overdrive...Drive + +Engine's over the red degrees +And my +Heart beats as much as I can breathe +But I +Don't want claim any stop +They wanna say I'm quitting...(Quitting) + +[Chorus] x 2 + +Squealing off the tyres +skidding to the left and the right...Right +My step on the brakes, +rear vision , mirror to spy...Spy + +Engine's over the red degrees +And my +Heart beats as much as I can breathe +But I +Don't want claim any stop +They wanna say I'm quitting...(Quitting) + +[Chorus] x 2 + +(Speedy Speed Boy woa oh woa oh) +(Speed Boy Speed Boy woa oh woa oh) +(Speedy Speed Boy woa oh woa oh) +(Speed Boy Speed Boy woa oh woa oh) + +(Night...night) +(Drive...drive) +(Stop...Quitting) +(Boy...Boy...Boy...Boy...Boy...Boy) + +Speedy Speed Boy... + +(Boy...Boy...Boy...Boy...Boy...Boy) + +Running with my car +Running in my dreams every night...Night +Born to overtake +Born to race and to overdrive...Drive + +Engine's over the red degrees +And my +Heart beats as much as I can breathe +But I +Don't want claim any stop +They wanna say I'm quitting...(Quitting) + +[Chorus] x 4
\ No newline at end of file diff --git a/ncmpcpp/lyrics/NUMBER GIRL - delayed brain.txt b/ncmpcpp/lyrics/NUMBER GIRL - delayed brain.txt new file mode 100644 index 0000000..f9c0178 --- /dev/null +++ b/ncmpcpp/lyrics/NUMBER GIRL - delayed brain.txt @@ -0,0 +1,96 @@ +(Uh) +(Yeah) +(Bishy Bish) +(Emperor in the room) +(Coming through) +(About to do what it do) +(Uh) + +[Verse 1: Bishop Nehru] +I was thinking we could kick it +And you'd be my Nehruvian empress +I promised that only dreams we would witness +But you seeing something different +I know that this your mind not your intuition +'Cause you in the system giving them tuition + +And yes, I respect your position +But I'm just saying that your brain ain't missin' +So while you playing these games let me listen +Me and you could be slaying all competition + +We both see the vision, so let's make it happen +Dreaming without napping, euphoric satisfaction +We've grown with the passion, in flame for each other +So I wonder why we don't have a name for each other + +Enough with the games, sweet lips soft land +Let me know what you saying, 'cause my flight ain't delayed +There's no time for waitin' +Forget about them hatin' +On the other side +Nehruvian [?] Bishy's trying to vibe + +[Hook: Bishop Nehru] +Girl, I'm thinking that you're beautiful +And I can tell by your eyes that you feel me, too +So why do you feel the way that you do? +Why do you feel the way that you do? + +I catch you in my dreams, just me and you +But you seem confused, I'm trying to break the move +So why do you feel the way that you do? +So why do you feel the way that you do? + +(Uh) + +[Second verse: Bishop Nehru] +They usually play games, so it ain't nothing new to me +I'm used to being the teen who wins the queens musically +I tried through unity +Emotion wasn't workin' +'Cause they weren't seein' +But I'm finally with a bein' who believes in + +With what I do or don't for that matter +The fact that we can chat attracts and makes you badder +I hoping that that will flatter, not push you down the ladder +Don't mean to make you sad or [?] so + +No pressure, my bless friend [?] +Don't even got a dress shirt, you divine sun dresser +And we avoiding lecture, so there's no need to dis +We know that you can't miss me without it ending in a mystery + +'Cause they know that we pounding out the misery +Is literally killing me +I'm hoping that you slip and see +That you and me were meant to be +That you and me were meant to be +We were meant to be + +[Hook: Bishop Nehru] +Girl, I'm thinking that you're beautiful +And I can tell by your eyes that you feel me, too +So why do you feel the way that you do? +Why do you feel the way that you do? + +I catch you in my dreams, just me and you +But you seem confused, I'm trying to break the move +So why do you feel the way that you do? +So why do you feel the way that you do? + +(Trying to break the hold) + +(Let's go) + +[Hook: Bishop Nehru] +Girl, I'm thinking that you're beautiful +And I can tell by your eyes that you feel me, too +So why do you feel the way that you do? +Why do you feel the way that you do? + +I catch you in my dreams, just me and you +But you seem confused, I'm trying to break the move +So why do you feel the way that you do? +So why do you feel the way that you do?
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Otoboke Beaver - I'm Tired of Your Repeating Story.txt b/ncmpcpp/lyrics/Otoboke Beaver - I'm Tired of Your Repeating Story.txt new file mode 100644 index 0000000..afb8a5f --- /dev/null +++ b/ncmpcpp/lyrics/Otoboke Beaver - I'm Tired of Your Repeating Story.txt @@ -0,0 +1,39 @@ +[おとぼけビ~バ~の「もうその話なんべんもきいた」歌詞] + +もうその話きいた +その話きいた +きいたきいたきいたきいたきいたきいた +きいた +もうその話きいた +もうその話きいた +もうその話なんべんもきいた +お茶っぴきOLライクア屍 +もうその話きいた +もうその話きいた +もうその話なんべんもきいた +お茶っぴきOLライクア屍 +耳タコ +耳にタコ 耳にタコ 耳タコ +耳に耳にタコ 耳にタコ 耳タコ +耳にタコ 耳に耳にタコ +耳に耳にタコ ミニにタコ! +さっきその話きいたー! +きいた、きいた、ききききき きいた +その話きいた(きいた) +もうその話なんべんもきいた +一、十、百、千、万、十万、百万、千万 +(Too many times for me) +かけまくもかしこきっきききいた +かけまくもかしこきっきききいた +(Too many times for me) +ママ友サークル・ライク・ア・ブルジョワ +タコ! +このタコ! +タココラ! +一、十、百、千、万、十万、百万、千万 +耳にタコ 耳にタコ +耳にタコ 耳にタコ +耳に耳にタコ +耳にタコ 耳にタコ +耳タコ 耳タコ +耳に耳にタコ ミニにタコ!
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Panchiko - DEATHMETAL.txt b/ncmpcpp/lyrics/Panchiko - DEATHMETAL.txt new file mode 100644 index 0000000..ef9f6fa --- /dev/null +++ b/ncmpcpp/lyrics/Panchiko - DEATHMETAL.txt @@ -0,0 +1,44 @@ +I'm walking down Roppongi +The night is hot and smoggy +I drink a little coffee +A sake and a beer +I run into a ginja man +He speaks but I don't understand +He grins at me and takes my hand +And whispers in my ear + +[Chorus:] +I play Deji Pachi +I play Deji Pachi +I play Deji Pachi +In my Pachinko dream +I go Uchi Domi +I go Uchi Domi +I go Uchi Domi +In my Pachinko dream + +My senses all asunder +I stand and stare in wonder +There's bright light and there's thunder +In Pachinko land + +Well versed in the way of Zen +My pockets lined full of yen +I walk the aisle and back again +And sit at Domo's hand + +[Chorus] + +I'm on the lexus fever +My hand tight on the lever +I'm shrieking like a diva +Staring in a trance + +Turn the handle to the right +A stream of silver balls in flight +It screams and howls a blaze of light +The earth moves below me +I'm laughing tears of sheer delight +As I go Uchi Domi + +[Chorus]
\ No newline at end of file diff --git a/ncmpcpp/lyrics/Rina Sawayama - Comme des garcons (Like the Boys).txt b/ncmpcpp/lyrics/Rina Sawayama - Comme des garcons (Like the Boys).txt new file mode 100644 index 0000000..2d2d580 --- /dev/null +++ b/ncmpcpp/lyrics/Rina Sawayama - Comme des garcons (Like the Boys).txt @@ -0,0 +1,70 @@ +Ooh, I woke up today had to wash my fears away +Again +Ooh, I'm feeling okay, its just another day +To pretend + +I'm done waiting +Anticipating +Keep going and going +Yeah, I'm just in it +Born to win it +Keep going and going + +Comme des garçons +"Like the boys" +"Like the boys" +Comme des garçons +I'm so confident +Comme des garçons +"Like the boys" +"Like the boys" +Comme des garçons +I'm so confident + +Excuse my ego +Can't go Incognito +Every time you see me, its like winning big in Reno +Don't fuck wit me ho +Take you down like judo +Make it rain, I'm taking names from London to Meguro + +Yeah yeah +Girl, its ok, you should never be ashamed +To have it all +Yeah yeah +Its gonna be okay, yeah, you've come a long way + +Comme des garçons +"Like the boys" +"Like the boys" +Comme des garçons +I'm so confident +Comme des garçons +"Like the boys" +"Like the boys" +Comme des garçons +I'm so confident + +Hot like a fever +Make you a believer +Write my name up in the sky from Paris to Shibuya +Miu Miu, Prada, Mugler +Virgil, Ross, Nicola +Elavate your vision when you put me on your cover +Ooh... + +Comme des garçons +Comme des garçons +Comme des garçons + +Comme des garçons +"Like the boys" +"Like the boys" +Comme des garçons +I'm so confident +Comme des garçons +"Like the boys" +"Like the boys" +Comme des garçons +I'm so confident +...
\ No newline at end of file diff --git a/ncmpcpp/lyrics/The Velvet Underground - All Tomorrow’s Parties.txt b/ncmpcpp/lyrics/The Velvet Underground - All Tomorrow’s Parties.txt new file mode 100644 index 0000000..4dec9fd --- /dev/null +++ b/ncmpcpp/lyrics/The Velvet Underground - All Tomorrow’s Parties.txt @@ -0,0 +1,23 @@ +And what costume shall the poor girl wear +To all tomorrow's parties +A hand-me-down dress from who knows where +To all tomorrow's parties +And where will she go and what shall she do +When midnight comes around +She'll turn once more to Sunday's clown +And cry behind the door +And what costume shall the poor girl wear +To all tomorrow's parties +Why silks and linens of yesterday's gowns +To all tomorrow's parties +And what will she do with Thursday's rags When Monday comes around +She'll turn once more to Sunday's clown +And cry behind the door +And what costume shall the poor girl wear +To all tomorrow's parties +For Thursday's child is Sunday's clown +For whom none will go mourning +A blackened shroud, a hand-me-down gown +Of rags and silks, a costume +Fit for one who sits and cries +For all tomorrow's parties
\ No newline at end of file diff --git a/ncmpcpp/lyrics/The Velvet Underground - Femme Fatale.txt b/ncmpcpp/lyrics/The Velvet Underground - Femme Fatale.txt new file mode 100644 index 0000000..1a12ca3 --- /dev/null +++ b/ncmpcpp/lyrics/The Velvet Underground - Femme Fatale.txt @@ -0,0 +1,19 @@ +Here she comes, you better watch your step +She's going to break your heart in two, it's true It's not hard to realize +Just look into her false colored eyes +She builds you up to just put you down, what a clown +'Cause everybody knows (She's a femme fatale) +The things she does to please (She's a femme fatale) +She's just a little tease (She's a femme fatale) +See the way she walks +Hear the way she talks +You're put down in her book +You're number 37, have a look +She's going to smile to make you frown, what a clown +Little boy, she's from the street +Before you start, you're already beat +She's gonna play you for a fool, yes it's true +'Cause everybody knows (She's a femme fatale) +The things she does to please (She's a femme fatale) +She's just a little tease (She's a femme fatale) +See the way she walks Hear the way she talks
\ No newline at end of file diff --git a/ncmpcpp/lyrics/The Velvet Underground - I’m Waiting for the Man.txt b/ncmpcpp/lyrics/The Velvet Underground - I’m Waiting for the Man.txt new file mode 100644 index 0000000..3cb5dab --- /dev/null +++ b/ncmpcpp/lyrics/The Velvet Underground - I’m Waiting for the Man.txt @@ -0,0 +1,24 @@ +I'm waiting for my man +Twenty-six dollars in my hand +Up to Lexington, 125 +Feel sick and dirty, more dead than alive +I'm waiting for my man +Hey, white boy, what you doin' uptown? +Hey, white boy, you chasin' our women around? +Oh pardon me sir, it's the furthest from my mind +I'm just lookin' for a dear, dear friend of mine +I'm waiting for my man +Here he comes, he's all dressed in black +Beat up shoes and a big straw hat +He's never early, he's always late +First thing you learn is you always gotta wait I'm waiting for my man +Up to a Brownstone, up three flights of stairs +Everybody's pinned you, but nobody cares +He's got the works, gives you sweet taste +Ah then you gotta split because you got no time to waste +I'm waiting for my man +Baby don't you holler, darlin' don't you bawl and shout +I'm feeling good, you know I'm gonna work it on out +I'm feeling good, I'm feeling oh so fine +Until tomorrow, but that's just some other time +I'm waiting for my man
\ No newline at end of file diff --git a/ncmpcpp/lyrics/The Velvet Underground - Run Run Run.txt b/ncmpcpp/lyrics/The Velvet Underground - Run Run Run.txt new file mode 100644 index 0000000..26ce518 --- /dev/null +++ b/ncmpcpp/lyrics/The Velvet Underground - Run Run Run.txt @@ -0,0 +1,35 @@ +Teenage Mary said to Uncle Dave +I sold my soul, must be saved +Gonna take a walk down to Union Square +You never know who you're gonna find there +You gotta run, run, run, run, run +Take a drag or two +Run, run, run, run, run +Gypsy Death and you +Tell you whatcha do +Marguerita Passion had to get her fix +She wasn't well, she was getting sick +Went to sell her soul, she wasn't high +Didn't know, thinks she could buy it +And she would run, run, run, run, run +Take a drag or two +Run, run, run, run, run +Gypsy Death and you +Tell you whatcha do +Seasick Sarah had a golden nose +Hobnail boots wrapped around her toes +When she turned blue, all the angels screamed +They didn't know, they couldn't make the scene +She had to run, run, run, run, run +Take a drag or two +Run, run, run, run, run +Gypsy Death and you +Tell you whatcha do +Beardless Harry, what a waste +Couldn't even get a small-town taste +Rode the trolleys down to forty-seven +Figured he was good to get himself to heaven +'Cause he had to run, run, run, run, run Take a drag or two +Run, run, run, run, run +Gypsy Death and you +Tell you whatcha do
\ No newline at end of file diff --git a/ncmpcpp/lyrics/The Velvet Underground - Sunday Morning.txt b/ncmpcpp/lyrics/The Velvet Underground - Sunday Morning.txt new file mode 100644 index 0000000..ffe1b58 --- /dev/null +++ b/ncmpcpp/lyrics/The Velvet Underground - Sunday Morning.txt @@ -0,0 +1,17 @@ +Sunday morning, praise the dawning +It's just a restless feeling by my side +Early dawning, Sunday morning +It's just the wasted years so close behind +Watch out, the world's behind you +There's always someone around you who will call It's nothing at all +Sunday morning and I'm falling +I've got a feeling I don't want to know +Early dawning, Sunday morning +It's all the streets you crossed, not so long ago +Watch out, the world's behind you +There's always someone around you who will call It's nothing at all +Watch out, the world's behind you +There's always someone around you who will call It's nothing at all +Sunday morning +Sunday morning +Sunday morning
\ No newline at end of file diff --git a/ncmpcpp/lyrics/The Velvet Underground - There She Goes Again.txt b/ncmpcpp/lyrics/The Velvet Underground - There She Goes Again.txt new file mode 100644 index 0000000..afe9103 --- /dev/null +++ b/ncmpcpp/lyrics/The Velvet Underground - There She Goes Again.txt @@ -0,0 +1,27 @@ +There she goes again +She's out on the streets again +She's down on her knees, my friend +But you know she'll never ask you please again +Now take a look, there's no tears in her eyes +She won't take it from just any guy, what can you do +You see her walkin' on down the street +Look at all your friends she's gonna meet +You better hit her +There she goes again +She's knocked out on her feet again +She's down on her knees, my friend +But you know she'll never ask you please again +Now take a look, there's no tears in her eyes +Like a bird, you know she would fly, what can you do +You see her walkin' on down the street +Look at all your friends that she's gonna meet +You better hit her +Now take a look, there's no tears in her eyes +Like a bird, you know she will fly, fly, fly away +See her walking on down the street +Look at all your friends that she's gonna meet +She's gonna bawl and shout +She's gonna work it +She's gonna work it out, bye bye +Bye bye baby +All right
\ No newline at end of file diff --git a/ncmpcpp/lyrics/The Velvet Underground - Venus in Furs.txt b/ncmpcpp/lyrics/The Velvet Underground - Venus in Furs.txt new file mode 100644 index 0000000..f0ac91a --- /dev/null +++ b/ncmpcpp/lyrics/The Velvet Underground - Venus in Furs.txt @@ -0,0 +1,34 @@ +Shiny, shiny, shiny boots of leather +Whiplash girlchild in the dark +Comes in bells, your servant, don't forsake him +Strike, dear mistress, and cure his heart + +Downy sins of streetlight fancies +Chase the costumes she shall wear +Ermine furs adorn the imperious +Severin, Severin awaits you there + +I am tired, I am weary +I could sleep for a thousand years +A thousand dreams that would awake me +Different colors made of tears + +Kiss the boot of shiny, shiny leather +Shiny leather in the dark +Tongue of thongs, the belt that does await you +Strike, dear mistress, and cure his heart + +Severin, Severin, speak so slightly +Severin, down on your bended knee +Taste the whip, in love not given lightly +Taste the whip, now bleed for me + +I am tired, I am weary +I could sleep for a thousand years +A thousand dreams that would awake me +Different colors made of tears + +Shiny, shiny, shiny boots of leather +Whiplash girlchild in the dark +Severin, your servant comes in bells, please don't forsake him +Strike, dear mistress, and cure his heart
\ No newline at end of file diff --git a/ncmpcpp/lyrics/mus.hiba - Darkness.txt b/ncmpcpp/lyrics/mus.hiba - Darkness.txt new file mode 100644 index 0000000..82a4a47 --- /dev/null +++ b/ncmpcpp/lyrics/mus.hiba - Darkness.txt @@ -0,0 +1,118 @@ +[Romanized:] + +Mama no onaka ni iruaida ni +Itte okitai koto ga ayu +Umarete suguni wasurete shimau kara +Papa to Mama to Boku no tame +Tyanto kiite kudashai + +Bokuyori saki ni gohan wo taberuna +Jyunban to shite Boku Mama Inu Papa +Kisu ha kuchi ni suruna +Mushiba ni naru kara +Doushitemo shitakattara +…Inu ni shite + +Wasurete kureruna +Koko ha kurakute fuan ni naru kedo +Mama no koe to dokun dokun no oto to +Papa no ookina otete ga daisuki +Shigoto mo katei mo umaku yaruno ha taihen dakeredo +Papa to Mama nara daijyoubu sa +Datte Boku ga eranda Papa to Mama + +Mama no ninoude sawaruna yurasuna +Mama no nijyu ago sawaruna tsumamuna +Mama no ibiki wo urusai to iuna +Boku ga naitara sonnamonn jyanaiyo + +Onaka ni iru karate kikoeteru kara +Shigoto no guchi wo Mama ni takusan hanashuna +Hoka no Mama wo miru na sonna me de miru na +Donna mekatte iu to …sonna me da! + +Totuki tooka yonjyushu +Mousugu dane aeru ne +Umarete sugu ni naku to omou kedo +Boku ha naitenanka naitenanka nai kara +Wasurete kureruna +Boku ga koushite onaka ni iru no ha +Papa to Mama ga deatte +Aishite musubareta kara + +Douyara sorosoro …jikan ga kita yo +Odekake no jyunbi da Mama ni tsutaeru yo +Awatezu sawagazu jama nado mo sezu +Mama no soba ni ite Boku no soba ni ite + +Saigo ni hitotsu onegai ga arimasu +Boku ga umaretara sugu ni dakko shite +Sonotoki Papa ni iou to omouyo +"Hajimemashite anata no musume dessu"to + +Jinsei ha subete ga subete ga kiseki mitai sa +Mama ha mou wakatteru hazu dakara +Wasurete kureruna +Watashi ga koushite koko ni iruno ha +Papa to Mama ga deatte +Aishite musubareta kara + +[Japanese:] + +ママのお腹に Daddy, 居る間に There is something you should know +言っておきたい while I'm still here 事があゆ in Mama's tummy +産まれてすぐにI won't remember this 忘れてしまうから after I'm born +パパとママと僕の為 But it's for the three of us +ちゃんと聞いててくだしゃい so listen Papa + +僕より先にDon't eat first ご飯を食べるな Not before me +順番として The hierarchy is, 僕、ママ、犬、パパ me, Mama, dog, Papa +キスは口にするな And don't kiss me on the mouth +虫歯になるから It's bad for my teeth +どうしてもしたかったらIf you really have to, +…犬にして! then kiss the dog! + +忘れてくれるな Don't forget Papa +ここは暗くて不安になるけど Although it's dark in here +ママの声とドクンドクンの音と Mama's voice and thump-thump +パパの大きなお手手が大好き and Papa's big hand I love +仕事も家庭もBoth work and home 上手くやるのは大変だけれど I know, it's challenging! +パパとママなら大丈夫さ But you'll both do fine +だって僕が選んだパパとママ 'cause I chose you Mama and Papa + +ママの二の腕 Don't tease the baby fat 触るな揺らすな on Mama's arm +ママの二重アゴ and her double chin 触るなつまむな Don't touch! Don't pinch! +ママのイビキを and her snoringうるさいと言うな Don't tell her it's loud +僕が泣いたら 'cause you have no ideaそんなもんじゃないよ how loud I will cry + +お腹にいるからってI can hear you 聞こえてるから from inside, Papa +仕事の愚痴をDon't complain ママにたくさん話しゅな about work to Mama +他のママを見るな Don't look at other moms そんな目で見るな with such eyes +どんな目かって言うとSuch what eyes? …そんな目だ! Those eyes! + +十月十日、40週 9 months, 40 weeks +もうすぐだね 会えるね We will meet soon +産まれてすぐに、泣くと思うけど I'll cry as soon as I'm born +僕は泣いてなんか、泣いてなんかないから But it's not that I'm sad +忘れてくれるな Don't forget Papa +僕がこうしてお腹に居るのは I'm here in Mama's tummy because +パパとママが出会って Mama and Papa met, +愛して結ばれたから fell in love and tied the knot + +どうやら、そろそろ It seems like …時間が来たよ。 it's time +お出掛けの準備だ Time to get out there ママに伝えるよ I'll tell Mama +慌てず騒がず Don't panic 邪魔などもせず Stay out of the way +ママの側にいて Just be beside Mama 僕の側にいてand beside me + +最後に一つ One last thing お願いがあります Please Papa +僕が産まれたらWhen I'm born, すぐに抱っこして hold me right away +その時パパに Then I will tell you 言おうと思うよ Papa, +「初めまして、あなたの娘です」と。 Nice to meet you. It's a girl! + +人生は全てが Everything in life 全てが奇跡みたいさ It's like a miracle! +奇跡しか無いんだよ、パパ。 It's all a miracle, Papa! +ママはもう、分かってるはずだから Mama knows this already +忘れてくれるな Don't forget Papa +私がこうしてここに居るのは I'm here now because +パパとママが出会って Mama and Papa met, +愛して結ばれたから fell in love and tied the knot
\ No newline at end of file diff --git a/ncmpcpp/lyrics/きゃりーぱみゅぱみゅ - Ninja Re Bang Bang.txt b/ncmpcpp/lyrics/きゃりーぱみゅぱみゅ - Ninja Re Bang Bang.txt new file mode 100644 index 0000000..9da6a45 --- /dev/null +++ b/ncmpcpp/lyrics/きゃりーぱみゅぱみゅ - Ninja Re Bang Bang.txt @@ -0,0 +1,30 @@ +Azayaka ni koishite ninjari bang bang nandaka ninjari bang bang +bloom bloom bloom hanabira no mau tondeke ninjari bang bang jōshiki wakaru ka na +Odoroki ga nichijou ni koishite ninjari bang bang aishite ninjari bang bang +Ring Ring Ring naranai merodī funwari kemuri-maki +Sora o kakeru no wa nin nin nin kimi dakedakara + +Miete ita mono ga nanairo ni kawaru togi kimi wa kitto +Te o nobashite mo sawarenai hikari no yōdakara +Azayaka ni koishite ninjari bang bang nandaka ninjari bang bang +bloom bloom bloom hanabira no mau +Tondeke ninjari bang bang jōshiki wakaru ka na odoroki ga nichijō ni +Koishite ninjari bang bang aishite ninjari bang bang +Ring Ring Ring naranai merodī funwari kemuri-maki +Sora o kakeru no wa nin nin nin kimi dakedakara + +Don'na iro ni mo naranaide kimi wa machi wo someru yo +Hirogatte yuku ne korogaru makimono mitai ne +Michi wa tsukuru +Azayaka ni koishite ninjari bang bang nandaka ninjari bang bang +bloom bloom bloom hanabira no mau tondeke ninjari bang bang jōshiki wakaru ka na +Odoroki ga nichijō ni koishite ninjari bang bang aishite ninjari bang bang +Ring Ring Ring naranai merodī funwari kemuri-maki +Sora o kakeru no wa nin nin nin kimi dakedakara + +Azayaka ni koishite ninjari bang bang nandaka ninjari bang bang +bloom bloom bloom hanabira no mau tondeke ninjari bang bang jōshiki wakaru ka na +Odoroki ga nichijō ni koishite ninjari bang bang aishite ninjari bang bang +Ring Ring Ring naranai merodī +Funwari kemuri-maki +Sora o kakeru no wa nin nin nin kimi dakedakara
\ No newline at end of file diff --git a/ncmpcpp/lyrics/杏里 - A HOPE FROM SAD STREET.txt b/ncmpcpp/lyrics/杏里 - A HOPE FROM SAD STREET.txt new file mode 100644 index 0000000..0adc34d --- /dev/null +++ b/ncmpcpp/lyrics/杏里 - A HOPE FROM SAD STREET.txt @@ -0,0 +1,21 @@ +朝もやのかかる 都会の中で今 +一人歩いているの +過去思い出しながら 人波を覗いているの +貴方からの別れ言葉は 今はもう 日記のページの中 +生きて行けるわ そうよ貴方なしでもいい +夏の余韻を残すこの町はいつも Sad Street +夢を与えた やさしいリズムで +二人の好きなCafeの前を通れば +変らぬ人の流れ +コーヒーの香りさえ 懐しく心にしみるの + +明日からの応えは 今もないけど +素直な気持ちが好き +孤独な道を歩む事だけは したくないのよ +都会にそまる私を おそれてた 思いやりだったのね +夏の終わりにくれた 貴方からのプレゼント +冬の眠りにさめたこの町は いつも Sad Street +冷たい風に 閉ざされた思いは +朝日がうつるビルの窓をみれば +心の傷がうずく +だけど愛した事を 今だけは忘れずにいたいの
\ No newline at end of file diff --git a/ncmpcpp/lyrics/杏里 - CAT'S EYE (NEW TAKE).txt b/ncmpcpp/lyrics/杏里 - CAT'S EYE (NEW TAKE).txt new file mode 100644 index 0000000..b7cd260 --- /dev/null +++ b/ncmpcpp/lyrics/杏里 - CAT'S EYE (NEW TAKE).txt @@ -0,0 +1,51 @@ +One, two, three, four + +都会(はき)らめく passion fruit + +ウインクしてる every night +グラスの中の passion beat +一口だけで fall in love + +甘いメロディ 風にのれば今夜 +秘密めいた 扉がどこかで開くよ + +見つめる Cat's Eye +Magic play is dancing +緑色に光る +妖しく Cat's Eye +Magic play is dancing +月明かり浴びて +We get you... you... you... you... +Mysterious girl + +Bell を鳴らせば passion time +終わりを告げる every night +青いドレスの sexy girl +口づけしては幻 + +古いピアノ 風にのれば夜明け +愛を映すミラーが どこかで割れるよ + +魅かれて Cat's Eye +Magic play is dancing +緑色に光る +迷って Cat's Eye +Magic play is dancing +月明かり浴びて +We get you... you... you... you... + +見つめる Cat's Eye +Magic play is dancing +緑色に光る +妖しく Cat's Eye +Magic play is dancing +月明かり浴びて +We get you... + +魅かれて Cat's Eye +Magic play is dancing +緑色に光る +迷って Cat's Eye +Magic play is dancing +月明かり浴びて +We get you... you... you... you...
\ No newline at end of file diff --git a/ncmpcpp/lyrics/杏里 - STAY BY ME.txt b/ncmpcpp/lyrics/杏里 - STAY BY ME.txt new file mode 100644 index 0000000..9534c46 --- /dev/null +++ b/ncmpcpp/lyrics/杏里 - STAY BY ME.txt @@ -0,0 +1,92 @@ +Banana brains, you're the apple of my eye +Stay with me tonight +Cause I'm having the best time of my life +Banana brains, you're the apple of my eye +Stay with me tonight +Cause I'm having the best time of my life + +Made by God +Ninji + +Baby girl, you're so fine +So, so fine, you blow my mind +Look at you, coochie coo +Juicy, tushy, gushy, goo +Boobie one, boobie two +Bouncing like a Looney Tune +Booty boomin', cookie juice +Gushin' out your coochie, boo +You're so cute, like Pikachu +Ain't no one so sweet like you +I whistle then you sneak into +My lonely heart like peek-a-boo +Now every time I think of you not by my side I dry my eyes +I just wanna sing lullabies to my little butterfly + +Banana brains, you're the apple of my eye +Stay with me tonight +Cause I'm having the best time of my life +Banana brains, you're the apple of my eye +Stay with me tonight +Cause I'm having the best time of my life +Turn up! +Banana brains, you're the apple of my eye +Stay with me tonight +Cause I'm having the best time of my life +Banana brains, you're the apple of my eye +Stay with me tonight +Cause I'm having the best time of my life + +Baby boy, you so cool +How can I stay mad at you? +I love you and that's the truth +You so silly, you so stupid +You the best +I never want you to stress +Everything gonna be cool +Wait and see +Just hold my hand and stay with me + +B-B-Baby girl, you been there for me +Through thick and thin with cool energy +You cared for me, yeah, defended me +Helped me defeat my e-e-enemies +Life's weird it keeps testing me +No other girl in the world impressing me +You like Yudu, you voodoo fresh to me +You just wanna be different +Get the best of me +It was meant to be +You were sent to me +You and me got wild destiny +You're like a little angel won't ever pressure me +E-e-everything you do is so Zef to me +I love it that you best friends with me +Just wanna treat your heart carefully +Cause everyday I feel blessed to be +The boy chillin' with you right next to me + +Banana brains, you're the apple of my eye +Stay with me tonight +Cause I'm having the best time of my life +Banana brains, you're the apple of my eye +Stay with me tonight +Cause I'm having the best time of my life + +Stay with me tonight +Stay with me tonight +Stay with me tonight +Cause I'm having the best time of my life + +I love your energy! (the best time) +I love it that you're there for me! (the best time) +Everything is meant to be! (the best time) +Baby, you were sent to me! (I'm having the best time of my life) +I love your energy! +I love it that you're there for me! +Everything is meant to be! +Baby, you were sent to me! +I love your energy! +I love it that you're there for me! +Everything is meant to be! +Baby, you were sent to me!
\ No newline at end of file diff --git a/ncmpcpp/lyrics/杏里 - WINDY SUMMER.txt b/ncmpcpp/lyrics/杏里 - WINDY SUMMER.txt new file mode 100644 index 0000000..4c44a5e --- /dev/null +++ b/ncmpcpp/lyrics/杏里 - WINDY SUMMER.txt @@ -0,0 +1,33 @@ +光のしずくが +波のしぶきあびたセールを +浜辺に照らしだすと + +走りだす心 +何もかも今忘れたいの +風になれるなら +この身を陽射しにまかせても + +Windy Summer 遠ざかる浜辺に手をふって +Windy Summer 届かぬ想いもかなうわ!! +Here We're Windy Summer!! + +永遠の波が +黄昏の光をいざなう +遥かな想い出さえ + +心に一つの +きらめきを 感じたらすぐに +海へとかけだす +あのころの夢と変わらない + +Windy Summer 風も今は思い通りね +Windy Summer あなたの心へ今すぐ!! +Here We're Windy Summer!! + +Windy Summer 遠ざかる浜辺に手をふって +Windy Summer 届かぬ想いもかなうわ!! +Here We're Windy Summer!! + +Windy Summer 風も今は思い通りね +Windy Summer あなたの心へ今すぐ!! +Here We're Windy Summer!!
\ No newline at end of file diff --git a/ncmpcpp/lyrics/杏里 - YOU ARE NOT ALONE.txt b/ncmpcpp/lyrics/杏里 - YOU ARE NOT ALONE.txt new file mode 100644 index 0000000..2d6a8bc --- /dev/null +++ b/ncmpcpp/lyrics/杏里 - YOU ARE NOT ALONE.txt @@ -0,0 +1,43 @@ +海が見える窓 +椅子を引き寄せて +あなたいつのまにか +深い眠りの中 +夢の中でまだ +なにか探すように +膝に置いた指が +冬の月に光る + +ダーリン you +You are not alone +忘れずにいて +どんな時も +ダーリン you +You are not alone +すぐそばに yes me +私がいる いつも + +前髪をあげて +そっとくちづけた +けして見せなかった +孤独に触れたみたい + +ダーリン you +You are not alone +見守っている +どんな時も +ダーリン you +You are not alone +さびしさを my Love +つつむように ダーリン you +見えない場所で +いつもあなたに +勇気あげたい + +ダーリン you +You are not alone +忘れずにいて +どんな時も +ダーリン you +You are not alone +くちびるを寄せ +私がいるいつも
\ No newline at end of file diff --git a/ncmpcpp/ncmpcpp-ueberzug/LICENSE b/ncmpcpp/ncmpcpp-ueberzug/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/ncmpcpp/ncmpcpp-ueberzug/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<https://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<https://www.gnu.org/licenses/why-not-lgpl.html>. diff --git a/ncmpcpp/ncmpcpp-ueberzug/README.md b/ncmpcpp/ncmpcpp-ueberzug/README.md new file mode 100644 index 0000000..70c57a4 --- /dev/null +++ b/ncmpcpp/ncmpcpp-ueberzug/README.md @@ -0,0 +1,44 @@ +# ncmpcpp-ueberzug + + + +`ncmpcpp-ueberzug` displays ncmpcpp album art using [ueberzug](https://github.com/seebye/ueberzug). It works on `alacritty`, `st`, `urxvt`, `kitty`, `xterm` and `lxterm`. Unlike existing scripts, it dynamically sizes and positions the cover art such that the window can be any size, even resized. It has many settings to customize the position of the album art to suit your ncmpcpp setup. + +**ncmpcpp-ueberzug is currently gradually being improved, expect more features in each version but also potential changes in how settings work. I will update this message when this script is feature-complete.** + +## Install + +Follow the instructions on the [Setup](https://github.com/alnj/ncmpcpp-ueberzug/wiki/Setup) wiki page. + +Check out [sacad](https://github.com/desbma/sacad) if you want to automatically download cover art for your music library. + +## Compatibility + +#### Working: +* `alacritty`, `st`, `urxvt`, `xterm`, `lxterm` +* `kitty` (might use wrong terminal if using `--single-instance` flag) + +#### Require manually setting character size in `ncmpcpp_cover_art.sh`: +* `cool-retro-term` +* `sakura` (resizing can break geometry) +* `gnome-terminal`, `terminator`, `xfce4-terminal` (Album art displays on the last opened terminal irrespective of which is the ncmpcpp window, resizing can break geometry) + +#### Broken: +* `konsole` (stops working randomly, geometry is wrong) +* `guake`, `terminology` (geometry is wrong) + + +## Similar scripts +* [Fixed-width, left-aligned Mopidy album art Python script using Ueberzug](https://www.reddit.com/r/unixporn/comments/addcrf/oc_mopidy_album_art_using_ueberzug/) + +* [Ueberzug script that opens the album art in a tmux pane](https://www.reddit.com/r/unixporn/comments/9bifne/ncmpcpp_with_cover_art_ueberzug_tmux_edition/) + +* [Fixed-geometry urxvt-compatible script using urxvt background escape codes](https://gist.github.com/vlevit/4588882) + +## TODO + +* Refactor alignment settings / Add alignment/scaling options for left-align +* Try out toggle? +* Update columns gif with new geometry behaviour, add more illustrations +* Change cleanup mechanism to allow for several ncmpcpp-ueberzug instances +* Support Spotify album art with mopidy diff --git a/ncmpcpp/ncmpcpp-ueberzug/img/demo.gif b/ncmpcpp/ncmpcpp-ueberzug/img/demo.gif Binary files differnew file mode 100644 index 0000000..d43c171 --- /dev/null +++ b/ncmpcpp/ncmpcpp-ueberzug/img/demo.gif diff --git a/ncmpcpp/ncmpcpp-ueberzug/img/demo.png b/ncmpcpp/ncmpcpp-ueberzug/img/demo.png Binary files differnew file mode 100644 index 0000000..16e7e7b --- /dev/null +++ b/ncmpcpp/ncmpcpp-ueberzug/img/demo.png diff --git a/ncmpcpp/ncmpcpp-ueberzug/img/demo_left_aligned.png b/ncmpcpp/ncmpcpp-ueberzug/img/demo_left_aligned.png Binary files differnew file mode 100644 index 0000000..37cee18 --- /dev/null +++ b/ncmpcpp/ncmpcpp-ueberzug/img/demo_left_aligned.png diff --git a/ncmpcpp/ncmpcpp-ueberzug/img/fallback.png b/ncmpcpp/ncmpcpp-ueberzug/img/fallback.png Binary files differnew file mode 100644 index 0000000..78217e2 --- /dev/null +++ b/ncmpcpp/ncmpcpp-ueberzug/img/fallback.png diff --git a/ncmpcpp/ncmpcpp-ueberzug/img/settings_explained.png b/ncmpcpp/ncmpcpp-ueberzug/img/settings_explained.png Binary files differnew file mode 100644 index 0000000..e618c86 --- /dev/null +++ b/ncmpcpp/ncmpcpp-ueberzug/img/settings_explained.png diff --git a/ncmpcpp/ncmpcpp-ueberzug/img/truncate_reserved_cols.gif b/ncmpcpp/ncmpcpp-ueberzug/img/truncate_reserved_cols.gif Binary files differnew file mode 100644 index 0000000..713931f --- /dev/null +++ b/ncmpcpp/ncmpcpp-ueberzug/img/truncate_reserved_cols.gif diff --git a/ncmpcpp/ncmpcpp-ueberzug/img/ueberzug_columns_mode.gif b/ncmpcpp/ncmpcpp-ueberzug/img/ueberzug_columns_mode.gif Binary files differnew file mode 100644 index 0000000..0c13006 --- /dev/null +++ b/ncmpcpp/ncmpcpp-ueberzug/img/ueberzug_columns_mode.gif diff --git a/ncmpcpp/ncmpcpp-ueberzug/ncmpcpp-ueberzug b/ncmpcpp/ncmpcpp-ueberzug/ncmpcpp-ueberzug new file mode 100755 index 0000000..028baa0 --- /dev/null +++ b/ncmpcpp/ncmpcpp-ueberzug/ncmpcpp-ueberzug @@ -0,0 +1,18 @@ +#!/bin/sh +export FIFO_UEBERZUG="/tmp/mpd-ueberzug-${PPID}" + +cleanup() { + rm "$FIFO_UEBERZUG" 2>/dev/null + rm /tmp/mpd_cover.jpg 2>/dev/null + pkill -P $$ 2>/dev/null + pkill ncmpcpp_cover_art.sh +} + +pkill -P $$ 2>/dev/null +rm "$FIFO_UEBERZUG" 2>/dev/null +mkfifo "$FIFO_UEBERZUG" >/dev/null +trap cleanup EXIT 2>/dev/null +tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser simple >/dev/null 2>&1 & + +ncmpcpp +cleanup diff --git a/ncmpcpp/ncmpcpp-ueberzug/ncmpcpp_cover_art.sh b/ncmpcpp/ncmpcpp-ueberzug/ncmpcpp_cover_art.sh new file mode 100755 index 0000000..99a9403 --- /dev/null +++ b/ncmpcpp/ncmpcpp-ueberzug/ncmpcpp_cover_art.sh @@ -0,0 +1,246 @@ +#!/bin/sh +# Cover art script for ncmpcpp-ueberzug + +# SETTINGS +music_library="$HOME/music" +fallback_image="$HOME/.config/ncmpcpp/ncmpcpp-ueberzug/img/fallback.png" +padding_top=4 +padding_bottom=2 +padding_right=2 +max_width=30 +reserved_playlist_cols=70 +reserved_cols_in_percent="true" +force_square="true" +square_alignment="top" + +left_aligned="true" +padding_left=2 + +# Only set this if the geometries are wrong or ncmpcpp shouts at you to do it. +# Visually select/highlight a character on your terminal, zoom in an image +# editor and count how many pixels a character's width and height are. +font_height= +font_width= + +main() { + kill_previous_instances >/dev/null 2>&1 + find_cover_image >/dev/null 2>&1 + display_cover_image 2>/dev/null + detect_window_resizes >/dev/null 2>&1 +} + +# ==== Main functions ========================================================= + +kill_previous_instances() { + script_name=$(basename "$0") + for pid in $(pidof -x "$script_name"); do + if [ "$pid" != $$ ]; then + kill -15 "$pid" + fi + done +} + +find_cover_image() { + + # First we check if the audio file has an embedded album art + ext="$(mpc --format %file% current | sed 's/^.*\.//')" + if [ "$ext" = "flac" ]; then + # since FFMPEG cannot export embedded FLAC art we use metaflac + metaflac --export-picture-to=/tmp/mpd_cover.jpg \ + "$(mpc --format "$music_library"/%file% current)" && + cover_path="/tmp/mpd_cover.jpg" && return + else + ffmpeg -y -i "$(mpc --format "$music_library"/%file% | head -n 1)" \ + /tmp/mpd_cover.jpg && + cover_path="/tmp/mpd_cover.jpg" && return + fi + + # If no embedded art was found we look inside the music file's directory + album="$(mpc --format %album% current)" + file="$(mpc --format %file% current)" + album_dir="${file%/*}" + album_dir="$music_library/$album_dir" + found_covers="$(find "$album_dir" -type d -exec find {} -maxdepth 1 -type f \ + -iregex ".*/.*\(${album}\|cover\|folder\|artwork\|front\).*[.]\\(jpe?g\|png\|gif\|bmp\)" \; )" + cover_path="$(echo "$found_covers" | head -n1)" + if [ -n "$cover_path" ]; then + return + fi + + # If we still failed to find a cover image, we use the fallback + if [ -z "$cover_path" ]; then + cover_path=$fallback_image + fi +} + +display_cover_image() { + compute_geometry + + send_to_ueberzug \ + action "add" \ + identifier "mpd_cover" \ + path "$cover_path" \ + x "$ueber_left" \ + y "$padding_top" \ + height "$ueber_height" \ + width "$ueber_width" \ + synchronously_draw "True" \ + scaler "forced_cover" \ + scaling_position_x "0.5" +} + +detect_window_resizes() { + { + trap 'display_cover_image' WINCH + while :; do sleep .1; done + } & +} + + +# ==== Helper functions ========================================================= + +compute_geometry() { + unset LINES COLUMNS # Required in order for tput to work in a script + term_lines=$(tput lines) + term_cols=$(tput cols) + if [ -z "$font_height" ] || [ -z "$font_height" ]; then + guess_font_size + fi + + ueber_height=$(( term_lines - padding_top - padding_bottom )) + # Because Ueberzug uses characters as a unit we must multiply + # the line count (height) by the font size ratio in order to + # obtain an equivalent width in column count + ueber_width=$(( ueber_height * font_height / font_width )) + ueber_left=$(( term_cols - ueber_width - padding_right )) + + if [ "$left_aligned" = "true" ]; then + compute_geometry_left_aligned + else + compute_geometry_right_aligned + fi + + apply_force_square_setting +} + +compute_geometry_left_aligned() { + ueber_left=$padding_left + max_width_chars=$(( term_cols * max_width / 100 )) + if [ "$max_width" != 0 ] && + [ $(( ueber_width + padding_right + padding_left )) -gt "$max_width_chars" ]; then + ueber_width=$(( max_width_chars - padding_left - padding_right )) + fi +} + +compute_geometry_right_aligned() { + if [ "$reserved_cols_in_percent" = "true" ]; then + ueber_left_percent=$(printf "%.0f\n" $(calc "$ueber_left" / "$term_cols" '*' 100)) + if [ "$ueber_left_percent" -lt "$reserved_playlist_cols" ]; then + ueber_left=$(( term_cols * reserved_playlist_cols / 100 )) + ueber_width=$(( term_cols - ueber_left - padding_right )) + fi + else + if [ "$ueber_left" -lt "$reserved_playlist_cols" ]; then + ueber_left=$reserved_playlist_cols + ueber_width=$(( term_cols - ueber_left - padding_right )) + fi + + fi + + if [ "$max_width" != 0 ] && [ "$ueber_width" -gt "$max_width" ]; then + ueber_width=$max_width + ueber_left=$(( term_cols - ueber_width - padding_right )) + fi +} + +apply_force_square_setting() { + if [ $force_square = "true" ]; then + ueber_height=$(( ueber_width * font_width / font_height )) + case "$square_alignment" in + center) + area=$(( term_lines - padding_top - padding_bottom )) + padding_top=$(( padding_top + area / 2 - ueber_height / 2 )) + ;; + bottom) + padding_top=$(( term_lines - padding_bottom - ueber_height )) + ;; + *) ;; + esac + fi +} + +guess_font_size() { + # A font width and height estimate is required to + # properly compute the cover width (in columns). + # We are reproducing the arithmetic used by Ueberzug + # to guess font size. + # https://github.com/seebye/ueberzug/blob/master/ueberzug/terminal.py#L24 + + guess_terminal_pixelsize + + approx_font_width=$(( term_width / term_cols )) + approx_font_height=$(( term_height / term_lines )) + + term_xpadding=$(( ( - approx_font_width * term_cols + term_width ) / 2 )) + term_ypadding=$(( ( - approx_font_height * term_lines + term_height ) / 2 )) + + font_width=$(( (term_width - 2 * term_xpadding) / term_cols )) + font_height=$(( (term_height - 2 * term_ypadding) / term_lines )) +} + +guess_terminal_pixelsize() { + # We are re-using the same Python snippet that + # Ueberzug utilizes to retrieve terminal window size. + # https://github.com/seebye/ueberzug/blob/master/ueberzug/terminal.py#L10 + + python <<END +import sys, struct, fcntl, termios + +def get_geometry(): + fd_pty = sys.stdout.fileno() + farg = struct.pack("HHHH", 0, 0, 0, 0) + fretint = fcntl.ioctl(fd_pty, termios.TIOCGWINSZ, farg) + rows, cols, xpixels, ypixels = struct.unpack("HHHH", fretint) + return "{} {}".format(xpixels, ypixels) + +output = get_geometry() +f = open("/tmp/ncmpcpp_geometry.txt", "w") +f.write(output) +f.close() +END + + # ioctl doesn't work inside $() for some reason so we + # must use a temporary file + term_width=$(awk '{print $1}' /tmp/ncmpcpp_geometry.txt) + term_height=$(awk '{print $2}' /tmp/ncmpcpp_geometry.txt) + rm "/tmp/ncmpcpp_geometry.txt" + + if ! is_font_size_successfully_computed; then + echo "Failed to guess font size, try setting it in ncmpcpp_cover_art.sh settings" + fi +} + +is_font_size_successfully_computed() { + [ -n "$term_height" ] && [ -n "$term_width" ] && + [ "$term_height" != "0" ] && [ "$term_width" != "0" ] +} + + +calc() { + awk "BEGIN{print $*}" +} + +send_to_ueberzug() { + old_IFS="$IFS" + + # Ueberzug's "simple parser" uses tab-separated + # keys and values so we separate words with tabs + # and send the result to the wrapper's FIFO + IFS="$(printf "\t")" + echo "$*" > "$FIFO_UEBERZUG" + + IFS=${old_IFS} +} + + +main diff --git a/ncmpcpp/patterns.list b/ncmpcpp/patterns.list new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/ncmpcpp/patterns.list diff --git a/newsboat/cache.db b/newsboat/cache.db Binary files differnew file mode 100644 index 0000000..b1e5864 --- /dev/null +++ b/newsboat/cache.db diff --git a/newsboat/config b/newsboat/config new file mode 100644 index 0000000..6499499 --- /dev/null +++ b/newsboat/config @@ -0,0 +1,12 @@ +unbind-key g # bound to `sort` by default +unbind-key G # bound to `rev-sort` by default +bind-key g home +bind-key G end +bind-key k up +bind-key j down + +auto-reload yes +article-sort-order date-asc + +macro y set browser "devour mpv %u" +macro l set browser "devour brave %u" diff --git a/newsboat/history.cmdline b/newsboat/history.cmdline new file mode 100644 index 0000000..f246346 --- /dev/null +++ b/newsboat/history.cmdline @@ -0,0 +1,100 @@ +10 +21 +21 +25 +25 +21 +20 +11 +11 +26 +q +24 +5 +20 +14 +29 +38 +21 +20 +21 +6 +20 +38 +266 +25 +22 +5 +21 +15 +20 +21 +15 +20 +3 +21 +39 +3 +20 +6 +21 +39 +21 +6 +6 +24 +5 +200 +20 +29 +29 +20 +6 +21 +33 +5 +28 +39 +33 +20 +q +218 +145 +20 +20\ +8 +5 +37 +9 +19 +20 +q +9A +19 +19 +9 +19 +9 +20 +38 +20 +q +q +20 +5 +36 +6 +28 +10 +4 +19 +19 +250 +21 +18 +3 +8 +18 +8 +31 +18 diff --git a/newsboat/history.search b/newsboat/history.search new file mode 100644 index 0000000..6e3dc87 --- /dev/null +++ b/newsboat/history.search @@ -0,0 +1,46 @@ +demo +gta +cursed +demo +2018 +demo +demo +demo +gta +dunkey +DEMO +GTA +funhaus +gta +gta +like +groff +gta +insi +gta +drunk +wheel +demo +drunk +matrix +gta +White +gta +sxiv +gta +moder +drunk +gta +gta +GTA +gta +gta +gta +my su +gta +moder +fun +modern +poof +modern +mod diff --git a/newsboat/urls b/newsboat/urls new file mode 100644 index 0000000..0b6d5ba --- /dev/null +++ b/newsboat/urls @@ -0,0 +1,54 @@ +" " +"--- YOUTUBE ---" +" " +https://www.youtube.com/feeds/videos.xml?channel_id=UC6nSFpj9HTCZ5t-N3Rm3-HA "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UC3r2fHMP1OXoKt-FBgwVnOA "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCraOIV5tXbWQtq7ORVOG4gg "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCmYBTQilY7p8EQ9IsyA3oLw "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCbpMy0Fg74eXXkvxJrtEn3w "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCeR0n8d3ShTn_yrMhpwyE1Q "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCEY0yxj6QxG4RBVRSe5orig "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCdJdEguB1F1CiYe7OEi3SBg "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UC-wNjNTqCfXSKd4S1tNgWUg "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UC87PQkY3dDS-FastDm97emA "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCJHA_jMfCvEnv-3kRjTCQXw "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCsn6cjffsvyOZCZxvGoJxGg "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UC4USoIAL9qcsx5nCZV_QRnA "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCboMX_UNgaPBsUOIgasn3-Q "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UC-tsNNJ3yIW98MtPH6PWFAQ "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCIEv3lZ_tNXHzL3ox-_uUGQ "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCwV_0HmQkRrTcrReaMxPeDw "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UC42VsoDtra5hMiXZSsD6eGg "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCsvn_Po0SmunchJYOWpOxMg "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCRIZtPl9nb9RiXc9btSTQNw "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCjyNFmk6Ionj9Lw9iIo9LtQ "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UC4PooiX37Pld1T8J5SYT-SQ "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCRcgy6GzDeccI7dkbbBna3Q "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCUTXYARYwmf7XvVOU4qPUYw "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCKab3hYnOoTZZbEUQBMx-ww "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCDsO-0Yo5zpJk575nKXgMVA "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCekQr9znsk2vWxBo3YiLq2w "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCzoinqTgfEaQsKFFi9Tdmkg "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCdTH9d3ViHVlyQq3BMaCuIQ "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCwboyKXJkCiHajQorzh-agQ "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCnQC_G5Xsjhp9fEJKuIcrSw "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCDRbNGFusqlXX4a5vwi9ouQ "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCaeO5vkdj5xOQHp4UmIN6dw "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCpprBWvibvmOlI8yJOEAAjA "YouTube Subscriptions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCLXo7UDZvByw2ixzpQCufnA "YouTube Subscriptions" + +" " +"--- ART ---" +" " +http://www.shadbase.com/feed/ "Shadbase" + +" " +" --- TECH ---" +" " +https://opentrackers.org/feed/ +https://digdeeper.neocities.org/atom.xml "Dig Deeper" +https://www.archlinux.org/feeds/news/ "Arch Linux +https://lukesmith.xyz/rss.xml "Luke Smith" +https://zoomersrants.xyz/rss/ "Zoomer's Rants" diff --git a/obs-studio/global.ini b/obs-studio/global.ini new file mode 100644 index 0000000..fc10658 --- /dev/null +++ b/obs-studio/global.ini @@ -0,0 +1,36 @@ +[General] +Pre19Defaults=false +Pre21Defaults=false +Pre23Defaults=false +FirstRun=true +LastVersion=436273154 +Pre24.1Defaults=true +CurrentTheme2=System + +[PropertiesWindow] +cx=720 +cy=580 + +[BasicWindow] +geometry=AdnQywADAAAAAAAAAAAAFQAAB38AAAQ3AAAAAAAAABUAAAd/AAAENwAAAAAAAAAAB4AAAAAAAAAAFQAAB38AAAQ3 +DockState=AAAA/wAAAAD9AAAAAQAAAAMAAAeAAAAAy/wBAAAABvsAAAAUAHMAYwBlAG4AZQBzAEQAbwBjAGsBAAAAAAAAAawAAACgAP////sAAAAWAHMAbwB1AHIAYwBlAHMARABvAGMAawEAAAGyAAABtAAAAKAA////+wAAABIAbQBpAHgAZQByAEQAbwBjAGsBAAADbAAAAtQAAADcAP////sAAAAYAGMAbwBuAHQAcgBvAGwAcwBEAG8AYwBrAQAABkYAAAE6AAAAngD////7AAAAHgB0AHIAYQBuAHMAaQB0AGkAbwBuAHMARABvAGMAawAAAAQoAAAAgAAAAJoA////+wAAABIAcwB0AGEAdABzAEQAbwBjAGsCAAABTQAAARwAAAK8AAAAyAAAB4AAAAMjAAAABAAAAAQAAAAIAAAACPwAAAAA +PreviewEnabled=true +AlwaysOnTop=false +SceneDuplicationMode=true +SwapScenesMode=true +EditPropertiesMode=false +PreviewProgramMode=false +DocksLocked=false +gridMode=false +WarnBeforeStartingStream=false +WarnBeforeStoppingStream=false +WarnBeforeStoppingRecord=false + +[Basic] +SceneCollection=podcast1 +SceneCollectionFile=podcast1 +Profile=Podcast +ProfileDir=Podcast + +[ScriptLogWindow] +geometry=AdnQywADAAAAAAAAAAAAFAAAAlcAAAGjAAAAAAAAABQAAAJXAAABowAAAAAAAAAAB4AAAAAAAAAAFAAAAlcAAAGj diff --git a/obs-studio/plugin_config/rtmp-services/meta.json b/obs-studio/plugin_config/rtmp-services/meta.json new file mode 100644 index 0000000..b1bce5f --- /dev/null +++ b/obs-studio/plugin_config/rtmp-services/meta.json @@ -0,0 +1,3 @@ +{ + "etag": "W/\"6044f63a-7a\"" +}
\ No newline at end of file diff --git a/obs-studio/plugin_config/rtmp-services/package.json b/obs-studio/plugin_config/rtmp-services/package.json new file mode 100644 index 0000000..5434240 --- /dev/null +++ b/obs-studio/plugin_config/rtmp-services/package.json @@ -0,0 +1 @@ +{"url":"https://obsproject.com/obs2_update/rtmp-services","version":170,"files":[{"name":"services.json","version":170}]} diff --git a/obs-studio/plugin_config/rtmp-services/services.json b/obs-studio/plugin_config/rtmp-services/services.json new file mode 100644 index 0000000..5edfcc9 --- /dev/null +++ b/obs-studio/plugin_config/rtmp-services/services.json @@ -0,0 +1 @@ +{"format_version":3,"services":[{"name":"Twitch","common":true,"servers":[{"name":"Asia: Hong Kong","url":"rtmp://live-hkg.twitch.tv/app"},{"name":"Asia: Seoul, South Korea","url":"rtmp://live-sel.twitch.tv/app"},{"name":"Asia: Singapore","url":"rtmp://live-sin.twitch.tv/app"},{"name":"Asia: Taipei, Taiwan","url":"rtmp://live-tpe.twitch.tv/app"},{"name":"Asia: Tokyo, Japan","url":"rtmp://live-tyo.twitch.tv/app"},{"name":"Australia: Sydney","url":"rtmp://live-syd.twitch.tv/app"},{"name":"EU: Amsterdam, NL","url":"rtmp://live-ams.twitch.tv/app"},{"name":"EU: Berlin, DE","url":"rtmp://live-ber.twitch.tv/app"},{"name":"Europe: Copenhagen, DK","url":"rtmp://live-cph.twitch.tv/app"},{"name":"EU: Frankfurt, DE","url":"rtmp://live-fra.twitch.tv/app"},{"name":"EU: Helsinki, FI","url":"rtmp://live-hel.twitch.tv/app"},{"name":"EU: Lisbon, Portugal","url":"rtmp://live-lis.twitch.tv/app"},{"name":"EU: London, UK","url":"rtmp://live-lhr.twitch.tv/app"},{"name":"EU: Madrid, Spain","url":"rtmp://live-mad.twitch.tv/app"},{"name":"EU: Marseille, FR","url":"rtmp://live-mrs.twitch.tv/app"},{"name":"EU: Milan, Italy","url":"rtmp://live-mil.twitch.tv/app"},{"name":"EU: Norway, Oslo","url":"rtmp://live-osl.twitch.tv/app"},{"name":"EU: Paris, FR","url":"rtmp://live-cdg.twitch.tv/app"},{"name":"EU: Prague, CZ","url":"rtmp://live-prg.twitch.tv/app"},{"name":"EU: Stockholm, SE","url":"rtmp://live-arn.twitch.tv/app"},{"name":"EU: Vienna, Austria","url":"rtmp://live-vie.twitch.tv/app"},{"name":"EU: Warsaw, Poland","url":"rtmp://live-waw.twitch.tv/app"},{"name":"NA: Mexico City","url":"rtmp://live-qro.twitch.tv/app"},{"name":"NA: Quebec, Canada","url":"rtmp://live-ymq.twitch.tv/app"},{"name":"NA: Toronto, Canada","url":"rtmp://live-yto.twitch.tv/app"},{"name":"South America: Argentina","url":"rtmp://live-eze.twitch.tv/app"},{"name":"South America: Chile","url":"rtmp://live-scl.twitch.tv/app"},{"name":"South America: Lima, Peru","url":"rtmp://live-lim.twitch.tv/app"},{"name":"South America: Medellin, Colombia","url":"rtmp://live-mde.twitch.tv/app"},{"name":"South America: Rio de Janeiro, Brazil","url":"rtmp://live-rio.twitch.tv/app"},{"name":"South America: Sao Paulo, Brazil","url":"rtmp://live-sao.twitch.tv/app"},{"name":"US Central: Dallas, TX","url":"rtmp://live-dfw.twitch.tv/app"},{"name":"US Central: Denver, CO","url":"rtmp://live-den.twitch.tv/app"},{"name":"US Central: Houston, TX","url":"rtmp://live-hou.twitch.tv/app"},{"name":"US Central: Salt Lake City, UT","url":"rtmp://live-slc.twitch.tv/app"},{"name":"US East: Ashburn, VA","url":"rtmp://live-iad.twitch.tv/app"},{"name":"US East: Atlanta, GA","url":"rtmp://live-atl.twitch.tv/app"},{"name":"US East: Chicago","url":"rtmp://live-ord.twitch.tv/app"},{"name":"US East: Miami, FL","url":"rtmp://live-mia.twitch.tv/app"},{"name":"US East: New York, NY","url":"rtmp://live-jfk.twitch.tv/app"},{"name":"US West: Los Angeles, CA","url":"rtmp://live-lax.twitch.tv/app"},{"name":"US West: Phoenix, AZ","url":"rtmp://live-phx.twitch.tv/app"},{"name":"US West: Portland, Oregon","url":"rtmp://live-pdx.twitch.tv/app"},{"name":"US West: San Francisco, CA","url":"rtmp://live-sfo.twitch.tv/app"},{"name":"US West: San Jose, CA","url":"rtmp://live-sjc.twitch.tv/app"},{"name":"US West: Seattle, WA","url":"rtmp://live-sea.twitch.tv/app"}],"recommended":{"keyint":2,"max video bitrate":6000,"max audio bitrate":320,"x264opts":"scenecut=0"}},{"name":"YouTube - HLS","common":false,"more_info_link":"https://developers.google.com/youtube/v3/live/guides/ingestion-protocol-comparison","servers":[{"name":"Primary YouTube ingest server","url":"https://a.upload.youtube.com/http_upload_hls?cid={stream_key}©=0&file=out.m3u8"},{"name":"Backup YouTube ingest server","url":"https://b.upload.youtube.com/http_upload_hls?cid={stream_key}©=1&file=out.m3u8"}],"recommended":{"keyint":2,"output":"ffmpeg_hls_muxer","max video bitrate":51000,"max audio bitrate":160}},{"name":"YouTube - RTMP","common":true,"alt_names":["YouTube / YouTube Gaming"],"servers":[{"name":"Primary YouTube ingest server","url":"rtmp://a.rtmp.youtube.com/live2"},{"name":"Backup YouTube ingest server","url":"rtmp://b.rtmp.youtube.com/live2?backup=1"}],"recommended":{"keyint":2,"max video bitrate":51000,"max audio bitrate":160}},{"name":"YouTube - RTMPS (Beta)","common":true,"servers":[{"name":"Primary YouTube ingest server","url":"rtmps://a.rtmps.youtube.com:443/live2"},{"name":"Backup YouTube ingest server","url":"rtmps://b.rtmps.youtube.com:443/live2"}],"recommended":{"keyint":2,"max video bitrate":51000,"max audio bitrate":160}},{"name":"Loola.tv","common":false,"servers":[{"name":"US East: Virginia","url":"rtmp://rtmp.loola.tv/push"},{"name":"EU Central: Germany","url":"rtmp://rtmp-eu.loola.tv/push"},{"name":"South America: Brazil","url":"rtmp://rtmp-sa.loola.tv/push"},{"name":"Asia/Pacific: Singapore","url":"rtmp://rtmp-sg.loola.tv/push"},{"name":"Middle East: Bahrain","url":"rtmp://rtmp-me.loola.tv/push"}],"recommended":{"keyint":2,"profile":"high","max video bitrate":2500,"max audio bitrate":160,"bframes":2,"x264opts":"scenecut=0"}},{"name":"VIMM","servers":[{"name":"Europe: Frankfurt","url":"rtmp://eu.vimm.tv/live"},{"name":"North America: Montreal","url":"rtmp://us.vimm.tv/live"}],"recommended":{"keyint":2,"max video bitrate":8000,"max audio bitrate":320,"x264opts":"scenecut=0"}},{"name":"Mobcrush","servers":[{"name":"Primary","url":"rtmp://live.mobcrush.net/mob"}],"recommended":{"keyint":2,"profile":"main","max video bitrate":6000,"max audio bitrate":160}},{"name":"Web.TV","servers":[{"name":"Primary","url":"rtmp://live3.origins.web.tv/liveext"}],"recommended":{"keyint":2,"profile":"main","max video bitrate":3500,"max audio bitrate":160}},{"name":"GoodGame.ru","servers":[{"name":"Моscow","url":"rtmp://msk.goodgame.ru:1940/live"}]},{"name":"YouStreamer","servers":[{"name":"Moscow","url":"rtmp://push.youstreamer.com/in/"}]},{"name":"Vaughn Live / iNSTAGIB","servers":[{"name":"US: Chicago, IL","url":"rtmp://live-ord.vaughnsoft.net/live"},{"name":"US: Vint Hill, VA","url":"rtmp://live-iad.vaughnsoft.net/live"},{"name":"US: Denver, CO","url":"rtmp://live-den.vaughnsoft.net/live"},{"name":"US: New York, NY","url":"rtmp://live-nyc.vaughnsoft.net/live"},{"name":"US: Miami, FL","url":"rtmp://live-mia.vaughnsoft.net/live"},{"name":"US: Seattle, WA","url":"rtmp://live-sea.vaughnsoft.net/live"},{"name":"EU: Amsterdam, NL","url":"rtmp://live-ams.vaughnsoft.net/live"},{"name":"EU: London, UK","url":"rtmp://live-lhr.vaughnsoft.net/live"}],"recommended":{"keyint":2,"max video bitrate":15000,"max audio bitrate":320}},{"name":"Breakers.TV","servers":[{"name":"US: Chicago, IL","url":"rtmp://live-ord.vaughnsoft.net/live"},{"name":"US: Vint Hill, VA","url":"rtmp://live-iad.vaughnsoft.net/live"},{"name":"US: Denver, CO","url":"rtmp://live-den.vaughnsoft.net/live"},{"name":"US: New York, NY","url":"rtmp://live-nyc.vaughnsoft.net/live"},{"name":"US: Miami, FL","url":"rtmp://live-mia.vaughnsoft.net/live"},{"name":"US: Seattle, WA","url":"rtmp://live-sea.vaughnsoft.net/live"},{"name":"EU: Amsterdam, NL","url":"rtmp://live-ams.vaughnsoft.net/live"},{"name":"EU: London, UK","url":"rtmp://live-lhr.vaughnsoft.net/live"}],"recommended":{"keyint":2,"max video bitrate":15000,"max audio bitrate":320}},{"name":"Facebook Live","common":true,"servers":[{"name":"Default","url":"rtmps://rtmp-api.facebook.com:443/rtmp/"}],"recommended":{"keyint":2,"profile":"main","supported resolutions":["1280x720","852x480","480x360"],"max fps":30,"max video bitrate":6000,"max audio bitrate":128}},{"name":"Restream.io","alt_names":["Restream.io - RTMP","Restream.io - FTL"],"common":true,"servers":[{"name":"Autodetect","url":"rtmp://live.restream.io/live"},{"name":"EU-West (London, GB)","url":"rtmp://london.restream.io/live"},{"name":"EU-West (Amsterdam, NL)","url":"rtmp://amsterdam.restream.io/live"},{"name":"EU-West (Luxembourg)","url":"rtmp://luxembourg.restream.io/live"},{"name":"EU-West (Paris, FR)","url":"rtmp://paris.restream.io/live"},{"name":"EU-West (Milan, IT)","url":"rtmp://milan.restream.io/live"},{"name":"EU-Central (Frankfurt, DE)","url":"rtmp://frankfurt.restream.io/live"},{"name":"EU-East (Falkenstein, DE)","url":"rtmp://falkenstein.restream.io/live"},{"name":"EU-East (Prague, Czech)","url":"rtmp://prague.restream.io/live"},{"name":"EU-South (Madrid, Spain)","url":"rtmp://madrid.restream.io/live"},{"name":"Russia (Moscow)","url":"rtmp://moscow.restream.io/live"},{"name":"Turkey (Istanbul)","url":"rtmp://istanbul.restream.io/live"},{"name":"Israel (Tel Aviv)","url":"rtmp://telaviv.restream.io/live"},{"name":"US-West (Seattle, WA)","url":"rtmp://seattle.restream.io/live"},{"name":"US-West (San Jose, CA)","url":"rtmp://sanjose.restream.io/live"},{"name":"US-Central (Dallas, TX)","url":"rtmp://dallas.restream.io/live"},{"name":"US-East (Washington, DC)","url":"rtmp://washington.restream.io/live"},{"name":"US-East (Miami, FL)","url":"rtmp://miami.restream.io/live"},{"name":"US-East (Chicago, IL)","url":"rtmp://chicago.restream.io/live"},{"name":"NA-East (Toronto, Canada)","url":"rtmp://toronto.restream.io/live"},{"name":"SA (Saint Paul, Brazil)","url":"rtmp://saopaulo.restream.io/live"},{"name":"India (Bangalore)","url":"rtmp://bangalore.restream.io/live"},{"name":"Asia (Singapore)","url":"rtmp://singapore.restream.io/live"},{"name":"Asia (Seoul, South Korea)","url":"rtmp://seoul.restream.io/live"},{"name":"Asia (Tokyo, Japan)","url":"rtmp://tokyo.restream.io/live"},{"name":"Australia (Sydney)","url":"rtmp://sydney.restream.io/live"}],"recommended":{"keyint":2}},{"name":"Nood","servers":[{"name":"Global: Fastest (Recommended)","url":"rtmp://stream.nood.tv/live_source"},{"name":"NA East: Ashburn, VA, USA","url":"rtmp://us-east-1.stream.nood.tv/live_source"},{"name":"NA East: Columbus, OH, USA","url":"rtmp://us-east-2.stream.nood.tv/live_source"},{"name":"NA East: Montreal, QC, CAN","url":"rtmp://ca-central-1.stream.nood.tv/live_source"},{"name":"NA West: San Francisco, CA, USA","url":"rtmp://us-west-1.stream.nood.tv/live_source"},{"name":"NA West: Portland, OR, USA","url":"rtmp://us-west-2.stream.nood.tv/live_source"},{"name":"SA East: Sao Paulo, BRA","url":"rtmp://sa-east-1.stream.nood.tv/live_source"},{"name":"EU West: Dublin, IRL","url":"rtmp://eu-west-1.stream.nood.tv/live_source"},{"name":"EU West: London, GBR","url":"rtmp://eu-west-2.stream.nood.tv/live_source"},{"name":"EU West: Paris, FRA","url":"rtmp://eu-west-3.stream.nood.tv/live_source"},{"name":"EU West: Frankfurt, DEU","url":"rtmp://eu-central-1.stream.nood.tv/live_source"},{"name":"Asia North-East: Tokyo, JPN","url":"rtmp://ap-northeast-1.stream.nood.tv/live_source"},{"name":"Asia North-East: Seoul, KOR","url":"rtmp://ap-northeast-2.stream.nood.tv/live_source"},{"name":"Asia South-East: Singapore, SGP","url":"rtmp://ap-southeast-1.stream.nood.tv/live_source"},{"name":"Asia South-East: Sydney, AUS","url":"rtmp://ap-southeast-2.stream.nood.tv/live_source"},{"name":"Asia South: Mumbai, IND","url":"rtmp://ap-south-1.stream.nood.tv/live_source"}],"recommended":{"keyint":2,"max video bitrate":25000,"max audio bitrate":192,"x264opts":"scenecut=0"}},{"name":"Castr.io","servers":[{"name":"US-East (Chicago, IL)","url":"rtmp://cg.castr.io/static"},{"name":"US-East (New York, NY)","url":"rtmp://ny.castr.io/static"},{"name":"US-East (Miami, FL)","url":"rtmp://mi.castr.io/static"},{"name":"US-West (Seattle, WA)","url":"rtmp://se.castr.io/static"},{"name":"US-West (Los Angeles, CA)","url":"rtmp://la.castr.io/static"},{"name":"US-Central (Dallas, TX)","url":"rtmp://da.castr.io/static"},{"name":"NA-East (Toronto, CA)","url":"rtmp://qc.castr.io/static"},{"name":"SA (Sao Paulo, BR)","url":"rtmp://br.castr.io/static"},{"name":"EU-West (London, UK)","url":"rtmp://uk.castr.io/static"},{"name":"EU-Central (Frankfurt, DE)","url":"rtmp://fr.castr.io/static"},{"name":"Russia (Moscow)","url":"rtmp://ru.castr.io/static"},{"name":"Asia (Singapore)","url":"rtmp://sg.castr.io/static"},{"name":"Asia (India)","url":"rtmp://in.castr.io/static"},{"name":"Australia (Sydney)","url":"rtmp://au.castr.io/static"},{"name":"US Central","url":"rtmp://us-central.castr.io/static"},{"name":"US West","url":"rtmp://us-west.castr.io/static"},{"name":"US East","url":"rtmp://us-east.castr.io/static"},{"name":"US South","url":"rtmp://us-south.castr.io/static"},{"name":"South America","url":"rtmp://south-am.castr.io/static"},{"name":"EU Central","url":"rtmp://eu-central.castr.io/static"},{"name":"Singapore","url":"rtmp://sg-central.castr.io/static"}],"recommended":{"keyint":2}},{"name":"Boomstream","servers":[{"name":"Default","url":"rtmp://live.boomstream.com/live"}]},{"name":"Meridix Live Sports Platform","servers":[{"name":"Primary","url":"rtmp://publish.meridix.com/live"}],"recommended":{"max video bitrate":3500}},{"name":"AfreecaTV","alt_names":["아프리카TV","Afreeca.TV"],"servers":[{"name":"Asia : Korea","url":"rtmp://rtmpmanager-freecat.afreeca.tv/app"},{"name":"North America : US East","url":"rtmp://rtmp-esu.afreecatv.com/app"},{"name":"North America : US West","url":"rtmp://rtmp-wsu.afreecatv.com/app"},{"name":"Europe : UK","url":"rtmp://rtmp-uk.afreecatv.com/app"},{"name":"Asia : Singapore","url":"rtmp://rtmp-sgp.afreecatv.com/app"}],"recommended":{"keyint":2,"profile":"main","max video bitrate":8000,"max audio bitrate":192}},{"name":"CAM4","servers":[{"name":"CAM4","url":"rtmp://origin.cam4.com/cam4-origin-live"}],"recommended":{"keyint":1,"profile":"baseline","max video bitrate":3000,"max audio bitrate":128}},{"name":"ePlay","servers":[{"name":"ePlay Primary","url":"rtmp://live.eplay.link/origin"}],"recommended":{"keyint":2,"profile":"main","max video bitrate":7500,"max audio bitrate":192}},{"name":"Picarto","servers":[{"name":"US East (Chicago, USA)","url":"rtmp://live.us-east1.picarto.tv/golive"},{"name":"US West (Los Angeles, USA)","url":"rtmp://live.us-west1.picarto.tv/golive"},{"name":"EU West (Düsseldorf, Germany)","url":"rtmp://live.eu-west1.picarto.tv/golive"}],"recommended":{"keyint":2,"profile":"main","max video bitrate":3500}},{"name":"Pandora TV Korea","servers":[{"name":"Default","url":"rtmp://plive.pandora.tv:80/mediaHub"}]},{"name":"Livestream","servers":[{"name":"Primary","url":"rtmp://rtmpin.livestreamingest.com/rtmpin"}]},{"name":"Uscreen","servers":[{"name":"Default","url":"rtmp://global-live.uscreen.app:5222/app"}],"recommended":{"keyint":2,"max video bitrate":8000,"max audio bitrate":192}},{"name":"Stripchat","servers":[{"name":"Auto","url":"rtmp://s-sd.stripst.com/ext"}],"recommended":{"keyint":2,"profile":"main","bframes":0,"max video bitrate":6000,"max audio bitrate":128,"x264opts":"tune=zerolatency"}},{"name":"CamSoda","servers":[{"name":"North America","url":"rtmp://obs-ingest-na.camsoda.com/cam_obs"},{"name":"South America","url":"rtmp://obs-ingest-sa.camsoda.com/cam_obs"},{"name":"Asia","url":"rtmp://obs-ingest-as.camsoda.com/cam_obs"},{"name":"Europe","url":"rtmp://obs-ingest-eu.camsoda.com/cam_obs"},{"name":"Oceania","url":"rtmp://obs-ingest-oc.camsoda.com/cam_obs"}],"recommended":{"supported resolutions":["1920x1080","1280x720","852x480","480x360"],"max fps":30,"max video bitrate":6000,"max audio bitrate":160,"x264opts":"tune=zerolatency"}},{"name":"Chaturbate","servers":[{"name":"Global Main Fastest - Recommended","url":"rtmp://live.stream.highwebmedia.com/live-origin"},{"name":"Global Backup","url":"rtmp://live-backup.stream.highwebmedia.com/live-origin"},{"name":"US West: Seattle, WA","url":"rtmp://live-sea.stream.highwebmedia.com/live-origin"},{"name":"US West: Phoenix, AZ","url":"rtmp://live-phx.stream.highwebmedia.com/live-origin"},{"name":"US Central: Salt Lake City, UT","url":"rtmp://live-slc.stream.highwebmedia.com/live-origin"},{"name":"US Central: Chicago, IL","url":"rtmp://live-chi.stream.highwebmedia.com/live-origin"},{"name":"US East: Atlanta, GA","url":"rtmp://live-atl.stream.highwebmedia.com/live-origin"},{"name":"US East: Ashburn, VA","url":"rtmp://live-ash.stream.highwebmedia.com/live-origin"},{"name":"South America: Sao Paulo, Brazil","url":"rtmp://live-gru.stream.highwebmedia.com/live-origin"},{"name":"EU: Amsterdam, NL","url":"rtmp://live-nld.stream.highwebmedia.com/live-origin"},{"name":"EU: Alblasserdam, NL","url":"rtmp://live-alb.stream.highwebmedia.com/live-origin"},{"name":"EU: Frankfurt, DE","url":"rtmp://live-fra.stream.highwebmedia.com/live-origin"},{"name":"EU: Belgrade, Serbia","url":"rtmp://live-srb.stream.highwebmedia.com/live-origin"},{"name":"Asia: Singapore","url":"rtmp://live-sin.stream.highwebmedia.com/live-origin"},{"name":"Asia: Tokyo, Japan","url":"rtmp://live-nrt.stream.highwebmedia.com/live-origin"},{"name":"Australia: Sydney","url":"rtmp://live-syd.stream.highwebmedia.com/live-origin"}],"recommended":{"keyint":2,"max video bitrate":50000,"max audio bitrate":192}},{"name":"Twitter / Periscope","common":true,"servers":[{"name":"US West: California","url":"rtmp://ca.pscp.tv:80/x"},{"name":"US West: Oregon","url":"rtmp://or.pscp.tv:80/x"},{"name":"US East: Virginia","url":"rtmp://va.pscp.tv:80/x"},{"name":"South America: Brazil","url":"rtmp://br.pscp.tv:80/x"},{"name":"EU West: Ireland","url":"rtmp://ie.pscp.tv:80/x"},{"name":"EU Central: Germany","url":"rtmp://de.pscp.tv:80/x"},{"name":"Asia/Pacific: Australia","url":"rtmp://au.pscp.tv:80/x"},{"name":"Asia/Pacific: Japan","url":"rtmp://jp.pscp.tv:80/x"},{"name":"Asia/Pacific: Singapore","url":"rtmp://sg.pscp.tv:80/x"}],"recommended":{"keyint":3,"max video bitrate":4000,"max audio bitrate":128}},{"name":"Switchboard Live","alt_names":["Switchboard Live (Joicaster)"],"servers":[{"name":"Global Zone (geo based)","url":"rtmp://ingest-global-a.switchboard.zone/live"},{"name":"US Zone (geo based)","url":"rtmp://ingest-us.switchboard.zone/live"},{"name":"US West 1 (South)","url":"rtmp://ingest-us-west.a.switchboard.zone/live"},{"name":"US West 2 (North)","url":"rtmp://ingest-us-west.b.switchboard.zone/live"},{"name":"US East 1 (North)","url":"rtmp://ingest-us-east.a.switchboard.zone/live"},{"name":"US East 2 (South)","url":"rtmp://ingest-us-east.b.switchboard.zone/live"},{"name":"US Central (North)","url":"rtmp://ingest-us-central.a.switchboard.zone/live"},{"name":"South America East (São Paulo, BR)","url":"rtmp://ingest-sa-east.a.switchboard.zone/live"},{"name":"Europe West (London, UK)","url":"rtmp://ingest-eu-west.a.switchboard.zone/live"},{"name":"Europe North (Hamina, FI)","url":"rtmp://ingest-eu-north.a.switchboard.zone/live"},{"name":"Australia Southeast (Sydney, AU)","url":"rtmp://ingest-au-southeast.a.switchboard.zone/live"},{"name":"Asia East (Changhua County, TW)","url":"rtmp://ingest-as-east.a.switchboard.zone/live"},{"name":"Asia Northeast (Tokyo, JP)","url":"rtmp://ingest-as-northeast.a.switchboard.zone/live"},{"name":"Asia South (Mumbai, IN)","url":"rtmp://ingest-as-south.a.switchboard.zone/live"}],"recommended":{"keyint":2,"max audio bitrate":128,"max video bitrate":10000}},{"name":"Looch","common":false,"servers":[{"name":"Primary Looch ingest server","url":"rtmp://ingest.looch.tv/live"}],"recommended":{"keyint":2,"profile":"main","max video bitrate":6000,"max audio bitrate":160}},{"name":"Eventials","servers":[{"name":"Default","url":"rtmp://live.eventials.com/eventialsLiveOrigin"}],"recommended":{"keyint":1,"profile":"baseline","max video bitrate":900,"max audio bitrate":192}},{"name":"EventLive.pro","servers":[{"name":"Default","url":"rtmp://go.eventlive.pro/live"}],"recommended":{"keyint":2,"max video bitrate":3000,"max audio bitrate":192,"supported resolutions":["1920x1080","1280x720"],"max fps":30}},{"name":"Lahzenegar - StreamG | لحظهنگار - استریمجی","servers":[{"name":"Primary","url":"rtmp://rtmp.lahzecdn.com/pro"},{"name":"Iran","url":"rtmp://rtmp-iran.lahzecdn.com/pro"}],"recommended":{"keyint":2,"profile":"main","max video bitrate":4000,"max audio bitrate":192}},{"name":"MyLive","servers":[{"name":"Default","url":"rtmp://stream.mylive.in.th/live"}],"recommended":{"keyint":2,"profile":"main","max video bitrate":7000,"max audio bitrate":192}},{"name":"Trovo","alt_names":["Madcat"],"servers":[{"name":"Default","url":"rtmp://livepush.trovo.live/live/"}],"recommended":{"keyint":2,"max video bitrate":9000,"max audio bitrate":160,"x264opts":"scenecut=0"}},{"name":"Mixcloud","servers":[{"name":"Default","url":"rtmp://rtmp.mixcloud.com/broadcast"}],"recommended":{"keyint":2,"max video bitrate":6000,"max audio bitrate":320,"x264opts":"scenecut=0"}},{"name":"SermonAudio Cloud","alt_names":["SermonAudio.com"],"servers":[{"name":"Primary","url":"rtmp://webcast.sermonaudio.com/sa"}],"recommended":{"max video bitrate":2000,"max audio bitrate":128}},{"name":"Vimeo","servers":[{"name":"Default","url":"rtmp://rtmp.cloud.vimeo.com/live"}]},{"name":"Aparat","servers":[{"name":"Default","url":"rtmp://rtmp.cdn.asset.aparat.com:443/event"}]},{"name":"GameTips.TV","servers":[{"name":"Iran - Tehran | AsiaTech","url":"rtmp://rtmp.s2.gametips.tv:1935/live"},{"name":"Netherlands - Amsterdam | Serverius","url":"rtmp://rtmp.s3.gametips.tv:1935/live"},{"name":"Iran - Tehran | ParsOnline","url":"rtmp://rtmp.s4.gametips.tv:1935/live"},{"name":"Iran - Tehran | AfraNet","url":"rtmp://rtmp.s5.gametips.tv:1935/live"}]},{"name":"KakaoTV","servers":[{"name":"Default","url":"rtmp://rtmp.play.kakao.com/kakaotv"}],"recommended":{"max video bitrate":8000,"max audio bitrate":192}},{"name":"Piczel.tv","servers":[{"name":"Default","url":"rtmp://piczel.tv:1935/live"}],"recommended":{"keyint":4,"max video bitrate":2500,"max audio bitrate":256,"x264opts":"tune=zerolatency aq-strength=0"}},{"name":"STAGE TEN","servers":[{"name":"STAGE TEN","url":"rtmps://app-rtmp.stageten.tv:443/stageten"}],"recommended":{"keyint":2,"profile":"baseline","max video bitrate":4000,"max audio bitrate":128}},{"name":"DLive","servers":[{"name":"Default","url":"rtmp://stream.dlive.tv/live"}],"recommend":{"keyint":2,"max video bitrate":6000,"max audio bitrate":160}},{"name":"Lightcast.com","servers":[{"name":"North America / East","url":"rtmp://us-east.live.lightcast.com/202E1F/default"},{"name":"North America / West","url":"rtmp://us-west.live.lightcast.com/202E1F/default"},{"name":"Europe / Amsterdam","url":"rtmp://europe.live.lightcast.com/202E1F/default"},{"name":"Europe / Frankfurt","url":"rtmp://europe-fra.live.lightcast.com/202E1F/default"},{"name":"Europe / Stockholm","url":"rtmp://europe-sto.live.lightcast.com/202E1F/default"},{"name":"Asia / Hong Kong","url":"rtmp://asia.live.lightcast.com/202E1F/default"},{"name":"Australia / Sydney","url":"rtmp://australia.live.lightcast.com/202E1F/default"}],"recommend":{"keyint":2,"max video bitrate":6000,"max audio bitrate":160}},{"name":"Bongacams","servers":[{"name":"Automatic / Default","url":"rtmp://auto.origin.gnsbc.com:1934/live"},{"name":"Automatic / Backup","url":"rtmp://origin.bcvidorigin.com:1934/live"},{"name":"Europe","url":"rtmp://z-eu.origin.gnsbc.com:1934/live"},{"name":"North America","url":"rtmp://z-us.origin.gnsbc.com:1934/live"}],"recommend":{"keyint":2,"max video bitrate":6000,"max audio bitrate":192,"bframes":0,"x264opts":"tune=zerolatency"}},{"name":"show-it.tv","servers":[{"name":"Default","url":"rtmp://stream-1.show-it.tv:1935/live"}],"recommend":{"max video bitrate":6000,"max audio bitrate":192}},{"name":"Chathostess","servers":[{"name":"Chathostess - Default","url":"rtmp://wowza01.foobarweb.com/cmschatsys_video"},{"name":"Chathostess - Backup","url":"rtmp://wowza05.foobarweb.com/cmschatsys_video"}],"recommended":{"keyint":2,"max video bitrate":3600,"max audio bitrate":128}},{"name":"Camplace","servers":[{"name":"Camplace - Default","url":"rtmp://rtmp.camplace.com"}],"recommend":{"keyint":2,"max video bitrate":3000,"max audio bitrate":128}},{"name":"OnlyFans.com","servers":[{"name":"USA","url":"rtmp://route0.onlyfans.com/live"},{"name":"Europe","url":"rtmp://route0-dc2.onlyfans.com/live"}],"recommend":{"keyint":2,"profile":"main","max video bitrate":2500,"max audio bitrate":192,"bframes":0,"x264opts":"tune=zerolatency"}},{"name":"YouNow","common":false,"servers":[{"name":"younow.com","url":"https://signaling-api.younow-prod.video.propsproject.com/api/v1/ingest/server/"}],"recommended":{"keyint":2,"output":"ftl_output","max audio bitrate":160,"max video bitrate":7000,"profile":"main","bframes":0}},{"name":"Steam","common":false,"servers":[{"name":"Default","url":"rtmp://ingest-rtmp.broadcast.steamcontent.com/app"}],"recommended":{"keyint":2,"profile":"high","max video bitrate":7000,"max audio bitrate":128}},{"name":"Stars.AVN.com","servers":[{"name":"Default","url":"rtmp://alpha.gateway.stars.avn.com/live"}],"recommended":{"keyint":2,"profile":"main","max video bitrate":2500,"max audio bitrate":192,"bframes":0,"x264opts":"tune=zerolatency"}},{"name":"Konduit.live","servers":[{"name":"Default","url":"rtmp://rtmp.konduit.live/live"}],"recommended":{"keyint":2,"x264opts":"scenecut=0"}},{"name":"Uncanny.gg","servers":[{"name":"Default","url":"rtmp://stream.uncanny.gg/fortnite"}],"recommended":{"keyint":2,"profile":"main","max video bitrate":10000,"max audio bitrate":192}},{"name":"Whalebone.tv","servers":[{"name":"Automatic","url":"rtmp://live.whalebone.tv/live"},{"name":"Tokyo, Japan","url":"rtmp://ap-northeast.live.whalebone.tv/live"},{"name":"Frankfurt, Germany","url":"rtmp://eu-central.live.whalebone.tv/live"},{"name":"London, United Kingdom","url":"rtmp://eu-west.live.whalebone.tv/live"},{"name":"São Paulo, Brazil","url":"rtmp://sa-east.live.whalebone.tv/live"},{"name":"North Virgina, United States","url":"rtmp://us-east.live.whalebone.tv/live"},{"name":"Oregon, United States","url":"rtmp://us-west.live.whalebone.tv/live"}]},{"name":"LOCO","servers":[{"name":"Default","url":"rtmp://ivory-ingest.getloconow.com:1935/stream"}],"recommended":{"keyint":2}},{"name":"niconico, premium member (ニコニコ生放送 プレミアム会員)","servers":[{"name":"Default","url":"rtmp://aliveorigin.dmc.nico/named_input"}],"recommended":{"keyint":2,"profile":"high","max audio bitrate":192,"max video bitrate":5808,"x264opts":"tune=zerolatency"}},{"name":"niconico, free member (ニコニコ生放送 一般会員)","servers":[{"name":"Default","url":"rtmp://aliveorigin.dmc.nico/named_input"}],"recommended":{"keyint":2,"profile":"high","max audio bitrate":96,"max video bitrate":904,"x264opts":"tune=zerolatency"}},{"name":"WASD.TV","servers":[{"name":"Automatic","url":"rtmp://push.rtmp.wasd.tv/live"},{"name":"Russia, Moscow","url":"rtmp://ru-moscow.rtmp.wasd.tv/live"},{"name":"Germany, Frankfurt","url":"rtmp://de-frankfurt.rtmp.wasd.tv/live"},{"name":"Finland, Helsinki","url":"rtmp://fi-helsinki.rtmp.wasd.tv/live"}],"recommended":{"keyint":2,"max video bitrate":10000,"max audio bitrate":192}},{"name":"VirtWish","servers":[{"name":"Default","url":"rtmp://rtmp.virtwish.com/live"}]},{"name":"Nimo TV","servers":[{"name":"Global:1","url":"rtmp://wspush.rtmp.nimo.tv/live/"},{"name":"Global:2","url":"rtmp://txpush.rtmp.nimo.tv/live/"},{"name":"Global:3","url":"rtmp://alpush.rtmp.nimo.tv/live/"}],"recommended":{"keyint":2,"max video bitrate":6000,"max audio bitrate":160}},{"name":"XLoveCam.com","servers":[{"name":"Europe(main)","url":"rtmp://nl.eu.stream.xlove.com/performer-origin"},{"name":"Europe(Romania)","url":"rtmp://ro.eu.stream.xlove.com/performer-origin"},{"name":"Europe(Russia)","url":"rtmp://ru.eu.stream.xlove.com/performer-origin"},{"name":"North America(US East)","url":"rtmp://usec.na.stream.xlove.com/performer-origin"},{"name":"North America(US West)","url":"rtmp://uswc.na.stream.xlove.com/performer-origin"},{"name":"North America(Canada)","url":"rtmp://ca.na.stream.xlove.com/performer-origin"},{"name":"South America","url":"rtmp://co.sa.stream.xlove.com/performer-origin"},{"name":"Asia","url":"rtmp://sg.as.stream.xlove.com/performer-origin"}],"recommended":{"x264opts":"scenecut=0"}},{"name":"AngelThump","servers":[{"name":"Auto","url":"rtmp://ingest.angelthump.com/live"},{"name":"New York 3","url":"rtmp://nyc-ingest.angelthump.com:1935/live"},{"name":"San Francisco 2","url":"rtmp://sfo-ingest.angelthump.com:1935/live"},{"name":"Singapore 1","url":"rtmp://sgp-ingest.angelthump.com:1935/live"},{"name":"London 1","url":"rtmp://lon-ingest.angelthump.com:1935/live"},{"name":"Frankfurt 1","url":"rtmp://fra-ingest.angelthump.com:1935/live"},{"name":"Toronto 1","url":"rtmp://tor-ingest.angelthump.com:1935/live"},{"name":"Bangalore 1","url":"rtmp://blr-ingest.angelthump.com:1935/live"},{"name":"Amsterdam 3","url":"rtmp://ams-ingest.angelthump.com:1935/live"}],"recommended":{"keyint":2,"profile":"high","max video bitrate":3500,"max audio bitrate":160}},{"name":"Taryana - Apachat | تاریانا - آپاچت","servers":[{"name":"Global: Fastest (Recommended)","url":"rtmp://cdn.apachat.com:443/multistream"}],"recommended":{"keyint":2,"profile":"main","max video bitrate":4000,"max audio bitrate":192}},{"name":"api.video","servers":[{"name":"Default","url":"rtmp://broadcast.api.video/s"}],"recommended":{"keyint":2,"max video bitrate":20000,"max audio bitrate":192}},{"name":"SHOWROOM","servers":[{"name":"Default","url":"https://www.showroom-live.com/api/obs/streaming_info?obs_key="}],"recommended":{"keyint":2,"profile":"main","max video bitrate":1500,"max audio bitrate":160,"x264opts":"tune=zerolatency"}},{"name":"Mux","servers":[{"name":"Global (RTMPS)","url":"rtmps://global-live.mux.com:443/app"},{"name":"Global (RTMP)","url":"rtmp://global-live.mux.com:5222/app"}],"recommended":{"keyint":2,"max video bitrate":5000,"max audio bitrate":160}},{"name":"Viloud","servers":[{"name":"Default","url":"rtmp://live.viloud.tv:5222/app"}],"recommended":{"keyint":2,"max video bitrate":5000,"max audio bitrate":160}},{"name":"MyFreeCams","servers":[{"name":"Automatic","url":"rtmp://publish.myfreecams.com/NxServer"},{"name":"Australia","url":"rtmp://publish-syd.myfreecams.com/NxServer"},{"name":"East Asia","url":"rtmp://publish-tyo.myfreecams.com/NxServer"},{"name":"Europe (East)","url":"rtmp://publish-buh.myfreecams.com/NxServer"},{"name":"Europe (West)","url":"rtmp://publish-ams.myfreecams.com/NxServer"},{"name":"North America (East Coast)","url":"rtmp://publish-ord.myfreecams.com/NxServer"},{"name":"North America (West Coast)","url":"rtmp://publish-tuk.myfreecams.com/NxServer"},{"name":"South America","url":"rtmp://publish-sao.myfreecams.com/NxServer"}],"recommended":{"keyint":1,"profile":"high","max fps":60,"max video bitrate":10000,"max audio bitrate":192,"x264opts":"tune=zerolatency scenecut=0"}},{"name":"PolyStreamer.com","servers":[{"name":"Auto-select closest server","url":"rtmp://live.polystreamer.com/live"},{"name":"United States - West","url":"rtmp://us-west.live.polystreamer.com/live"},{"name":"United States - East","url":"rtmp://us-east.live.polystreamer.com/live"},{"name":"Australia","url":"rtmp://aus.live.polystreamer.com/live"},{"name":"India","url":"rtmp://ind.live.polystreamer.com/live"},{"name":"Germany","url":"rtmp://deu.live.polystreamer.com/live"},{"name":"Japan","url":"rtmp://jpn.live.polystreamer.com/live"},{"name":"Singapore","url":"rtmp://sgp.live.polystreamer.com/live"}],"recommended":{"keyint":2}},{"name":"Glimesh","servers":[{"name":"North America - Chicago, United States","url":"ingest.kord.live.glimesh.tv"},{"name":"North America - New York, United States","url":"ingest.kjfk.live.glimesh.tv"},{"name":"North America - San Francisco, United States","url":"ingest.ksfo.live.glimesh.tv"},{"name":"North America - Toronto, Canada","url":"ingest.cyyz.live.glimesh.tv"},{"name":"Europe - Amsterdam, Netherlands","url":"ingest.eham.live.glimesh.tv"},{"name":"Europe - Frankfurt, Germany","url":"ingest.eddf.live.glimesh.tv"},{"name":"Europe - London, United Kingdom","url":"ingest.egll.live.glimesh.tv"},{"name":"Asia - Bangalore, India","url":"ingest.vobl.live.glimesh.tv"},{"name":"Asia - Singapore","url":"ingest.wsss.live.glimesh.tv"}],"recommended":{"keyint":2,"output":"ftl_output","max audio bitrate":160,"max video bitrate":6000,"bframes":0,"x264opts":"scenecut=0"}},{"name":"OPENREC.tv - Premium member (プレミアム会員)","servers":[{"name":"Default","url":"rtmp://a.station.openrec.tv:1935/live1"}],"recommended":{"keyint":2,"max video bitrate":5000,"max audio bitrate":160}},{"name":"nanoStream Cloud / bintu","servers":[{"name":"bintu-stream global ingest (rtmp)","url":"rtmp://bintu-stream.nanocosmos.de/live"},{"name":"bintu-stream global ingest (rtmps)","url":"rtmps://bintu-stream.nanocosmos.de:1937/live"},{"name":"bintu-vtrans global ingest with transcoding/ABR (rtmp)","url":"rtmp://bintu-stream.nanocosmos.de/live"},{"name":"bintu-vtrans global ingest with transcoding/ABR (rtmps)","url":"rtmps://bintu-stream.nanocosmos.de:1937/live"},{"name":"bintu-stream Europe (EU)","url":"rtmp://bintu-stream-eu.nanocosmos.de/live"},{"name":"bintu-stream USA West (USW)","url":"rtmp://bintu-stream-usw.nanocosmos.de/live"},{"name":"bintu-stream US East (USE)","url":"rtmp://bintu-stream-use.nanocosmos.de/live"},{"name":"bintu-stream Asia South (ASS)","url":"rtmp://bintu-stream-ass.nanocosmos.de/live"},{"name":"bintu-stream Australia (AU)","url":"rtmp://bintu-stream-au.nanocosmos.de/live"},{"name":"bintu-vtrans Europe (EU)","url":"rtmp://bintu-vtrans-eu.nanocosmos.de/live"},{"name":"bintu-vtrans USA West (USW)","url":"rtmp://bintu-vtrans-usw.nanocosmos.de/live"},{"name":"bintu-vtrans US East (USE)","url":"rtmp://bintu-vtrans-use.nanocosmos.de/live"},{"name":"bintu-vtrans Asia South (ASS)","url":"rtmp://bintu-vtrans-ass.nanocosmos.de/live"},{"name":"bintu-vtrans Australia (AU)","url":"rtmp://bintu-vtrans-au.nanocosmos.de/live"}],"recommended":{"keyint":2,"profile":"baseline","bframes":0,"max video bitrate":5000,"max audio bitrate":192,"x264opts":"tune=zerolatency b-pyramid=0 scenecut=0"}}]} diff --git a/obs-studio/plugin_config/rtmp-services/twitch_ingests.json b/obs-studio/plugin_config/rtmp-services/twitch_ingests.json new file mode 100644 index 0000000..a9887cb --- /dev/null +++ b/obs-studio/plugin_config/rtmp-services/twitch_ingests.json @@ -0,0 +1,388 @@ +{ + "ingests": [ + { + "_id": 0, + "availability": 1.0, + "default": false, + "name": "US West: Los Angeles, CA", + "url_template": "rtmp://live-lax.twitch.tv/app/{stream_key}", + "priority": 0 + }, + { + "_id": 1, + "availability": 1.0, + "default": false, + "name": "US West: San Jose,CA", + "url_template": "rtmp://live-sjc.twitch.tv/app/{stream_key}", + "priority": 1 + }, + { + "_id": 2, + "availability": 1.0, + "default": false, + "name": "US West: Phoenix, AZ", + "url_template": "rtmp://live-phx.twitch.tv/app/{stream_key}", + "priority": 2 + }, + { + "_id": 3, + "availability": 1.0, + "default": true, + "name": "US West: San Francisco, CA", + "url_template": "rtmp://live-sfo.twitch.tv/app/{stream_key}", + "priority": 3 + }, + { + "_id": 4, + "availability": 1.0, + "default": false, + "name": "Salt Lake City, UT", + "url_template": "rtmp://live-slc.twitch.tv/app/{stream_key}", + "priority": 4 + }, + { + "_id": 5, + "availability": 1.0, + "default": false, + "name": "US Central: Denver, CO", + "url_template": "rtmp://live-den.twitch.tv/app/{stream_key}", + "priority": 5 + }, + { + "_id": 6, + "availability": 1.0, + "default": false, + "name": "US West: Portland, Oregon", + "url_template": "rtmp://live-pdx.twitch.tv/app/{stream_key}", + "priority": 6 + }, + { + "_id": 7, + "availability": 1.0, + "default": false, + "name": "US Central: Dallas, TX", + "url_template": "rtmp://live-dfw.twitch.tv/app/{stream_key}", + "priority": 7 + }, + { + "_id": 8, + "availability": 1.0, + "default": false, + "name": "US Central: Houston, TX", + "url_template": "rtmp://live-hou.twitch.tv/app/{stream_key}", + "priority": 8 + }, + { + "_id": 9, + "availability": 1.0, + "default": false, + "name": "NA: Queretaro, Mexico", + "url_template": "rtmp://live-qro.twitch.tv/app/{stream_key}", + "priority": 9 + }, + { + "_id": 10, + "availability": 1.0, + "default": false, + "name": "US East: Chicago", + "url_template": "rtmp://live-ord.twitch.tv/app/{stream_key}", + "priority": 10 + }, + { + "_id": 11, + "availability": 1.0, + "default": false, + "name": "US East: Atlanta, GA", + "url_template": "rtmp://live-atl.twitch.tv/app/{stream_key}", + "priority": 11 + }, + { + "_id": 12, + "availability": 1.0, + "default": false, + "name": "NA: Toronto, Canada", + "url_template": "rtmp://live-yto.twitch.tv/app/{stream_key}", + "priority": 12 + }, + { + "_id": 13, + "availability": 1.0, + "default": false, + "name": "US East: Ashburn, VA", + "url_template": "rtmp://live-iad.twitch.tv/app/{stream_key}", + "priority": 13 + }, + { + "_id": 14, + "availability": 1.0, + "default": false, + "name": "US East: Miami, FL", + "url_template": "rtmp://live-mia.twitch.tv/app/{stream_key}", + "priority": 14 + }, + { + "_id": 15, + "availability": 1.0, + "default": false, + "name": "US East: New York, NY", + "url_template": "rtmp://live-jfk.twitch.tv/app/{stream_key}", + "priority": 15 + }, + { + "_id": 16, + "availability": 1.0, + "default": false, + "name": "NA: Quebec, Canada", + "url_template": "rtmp://live-ymq.twitch.tv/app/{stream_key}", + "priority": 16 + }, + { + "_id": 17, + "availability": 1.0, + "default": false, + "name": "DEPRECATED South America: Medellin, Colombia", + "url_template": "rtmp://live-mde.twitch.tv/app/{stream_key}", + "priority": 17 + }, + { + "_id": 18, + "availability": 1.0, + "default": false, + "name": "DEPRECATED South America: Lima, Peru", + "url_template": "rtmp://live-lim.twitch.tv/app/{stream_key}", + "priority": 18 + }, + { + "_id": 19, + "availability": 1.0, + "default": false, + "name": "Europe: Norway, Oslo", + "url_template": "rtmp://live-osl.twitch.tv/app/{stream_key}", + "priority": 19 + }, + { + "_id": 20, + "availability": 1.0, + "default": false, + "name": "Europe: United Kingdom, London", + "url_template": "rtmp://live-lhr.twitch.tv/app/{stream_key}", + "priority": 20 + }, + { + "_id": 21, + "availability": 1.0, + "default": false, + "name": "Asia: Tokyo, Japan", + "url_template": "rtmp://live-tyo.twitch.tv/app/{stream_key}", + "priority": 21 + }, + { + "_id": 22, + "availability": 1.0, + "default": false, + "name": "Europe: Sweden, Stockholm", + "url_template": "rtmp://live-arn.twitch.tv/app/{stream_key}", + "priority": 22 + }, + { + "_id": 23, + "availability": 1.0, + "default": false, + "name": "DEPRECATED South America: Chile", + "url_template": "rtmp://live-scl.twitch.tv/app/{stream_key}", + "priority": 23 + }, + { + "_id": 24, + "availability": 1.0, + "default": false, + "name": "Europe: Netherlands, Amsterdam", + "url_template": "rtmp://live-ams.twitch.tv/app/{stream_key}", + "priority": 24 + }, + { + "_id": 25, + "availability": 1.0, + "default": false, + "name": "Europe: Copenhagen, Denmark", + "url_template": "rtmp://live-cph.twitch.tv/app/{stream_key}", + "priority": 25 + }, + { + "_id": 26, + "availability": 1.0, + "default": false, + "name": "Europe: Finland, Helsinki", + "url_template": "rtmp://live-hel.twitch.tv/app/{stream_key}", + "priority": 26 + }, + { + "_id": 27, + "availability": 1.0, + "default": false, + "name": "Europe: France, Paris", + "url_template": "rtmp://live-cdg.twitch.tv/app/{stream_key}", + "priority": 27 + }, + { + "_id": 28, + "availability": 1.0, + "default": false, + "name": "DEPRECATED Europe: Portugal, Lisbon", + "url_template": "rtmp://live-lis.twitch.tv/app/{stream_key}", + "priority": 28 + }, + { + "_id": 29, + "availability": 1.0, + "default": false, + "name": "Seattle, WA", + "url_template": "rtmp://live-sea.twitch.tv/app/{stream_key}", + "priority": 29 + }, + { + "_id": 30, + "availability": 1.0, + "default": false, + "name": "Europe: Spain, Madrid", + "url_template": "rtmp://live-mad.twitch.tv/app/{stream_key}", + "priority": 30 + }, + { + "_id": 31, + "availability": 1.0, + "default": false, + "name": "Europe: Germany, Frankfurt", + "url_template": "rtmp://live-fra.twitch.tv/app/{stream_key}", + "priority": 31 + }, + { + "_id": 32, + "availability": 1.0, + "default": false, + "name": "Europe: Germany, Berlin", + "url_template": "rtmp://live-ber.twitch.tv/app/{stream_key}", + "priority": 32 + }, + { + "_id": 33, + "availability": 1.0, + "default": false, + "name": "Europe: Czech Republic, Prague", + "url_template": "rtmp://live-prg.twitch.tv/app/{stream_key}", + "priority": 33 + }, + { + "_id": 34, + "availability": 1.0, + "default": false, + "name": "Europe: Poland, Warsaw", + "url_template": "rtmp://live-waw.twitch.tv/app/{stream_key}", + "priority": 34 + }, + { + "_id": 35, + "availability": 1.0, + "default": false, + "name": "Asia: Seoul, South Korea", + "url_template": "rtmp://live-sel.twitch.tv/app/{stream_key}", + "priority": 35 + }, + { + "_id": 36, + "availability": 1.0, + "default": false, + "name": "Europe: France, Marseille", + "url_template": "rtmp://live-mrs.twitch.tv/app/{stream_key}", + "priority": 36 + }, + { + "_id": 37, + "availability": 1.0, + "default": false, + "name": "Europe: Italy, Milan", + "url_template": "rtmp://live-mil.twitch.tv/app/{stream_key}", + "priority": 37 + }, + { + "_id": 38, + "availability": 1.0, + "default": false, + "name": "DEPRECATED: South America: Argentina", + "url_template": "rtmp://live-eze.twitch.tv/app/{stream_key}", + "priority": 38 + }, + { + "_id": 39, + "availability": 1.0, + "default": false, + "name": "Europe: Austria, Vienna", + "url_template": "rtmp://live-vie.twitch.tv/app/{stream_key}", + "priority": 39 + }, + { + "_id": 40, + "availability": 1.0, + "default": false, + "name": "DEPRECATED South America: Sao Paulo, Brazil ", + "url_template": "rtmp://live-gru.twitch.tv/app/{stream_key}", + "priority": 40 + }, + { + "_id": 41, + "availability": 1.0, + "default": false, + "name": "South America: Sao Paulo, Brazil", + "url_template": "rtmp://live-sao.twitch.tv/app/{stream_key}", + "priority": 41 + }, + { + "_id": 42, + "availability": 1.0, + "default": false, + "name": "DEPRECATED South America: Rio de Janeiro, Brazil", + "url_template": "rtmp://live-gig.twitch.tv/app/{stream_key}", + "priority": 42 + }, + { + "_id": 43, + "availability": 1.0, + "default": false, + "name": "South America: Rio de Janeiro, Brazil", + "url_template": "rtmp://live-rio.twitch.tv/app/{stream_key}", + "priority": 43 + }, + { + "_id": 44, + "availability": 1.0, + "default": false, + "name": "Asia: Taipei, Taiwan", + "url_template": "rtmp://live-tpe.twitch.tv/app/{stream_key}", + "priority": 44 + }, + { + "_id": 45, + "availability": 1.0, + "default": false, + "name": "Asia: Hong Kong", + "url_template": "rtmp://live-hkg.twitch.tv/app/{stream_key}", + "priority": 45 + }, + { + "_id": 46, + "availability": 1.0, + "default": false, + "name": "Australia: Sydney", + "url_template": "rtmp://live-syd.twitch.tv/app/{stream_key}", + "priority": 46 + }, + { + "_id": 47, + "availability": 1.0, + "default": false, + "name": "Asia: Singapore", + "url_template": "rtmp://live-sin.twitch.tv/app/{stream_key}", + "priority": 47 + } + ] +} diff --git a/polybar/config b/polybar/config new file mode 100644 index 0000000..c6aca3c --- /dev/null +++ b/polybar/config @@ -0,0 +1,393 @@ +[global/wm] +margin-top = 0 +margin-bottom = 0 + +[color] +background = ${xrdb:color0:#222} +foreground = ${xrdb:color15:#222} +foreground-alt = ${xrdb:color4:#222} +primary = ${xrdb:color3:#222} +secondary = ${xrdb:color2:#222} +alert = ${xrdb:color1:#222} + +[bar/momiji] +monitor = ${env:MONITOR:} +override-redirect = false +wm-restack = bspwm +bottom = false +fixed-center = true + +width = 100% +height = 19 + +font-0 = "JetBrains Mono:style=Medium:pixelsize=9" +font-1 = "IPAPGothic,IPA Pゴシック:style=Regular:size=9" +font-2 = "Baekmuk Dotum,백묵 돋움:style=Regular:size=9" +font-3 = "Siji:style=Regular:size=8" +font-4 = "Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid:size=9" +font-5 = "Font Awesome 5 Brands,Font Awesome 5 Brands Regular:style=Regular:size=9" + +background = ${color.background} +foreground = ${color.foreground} + +line-color = ${color.foreground} +underline-size = 1 +overline-size = 2 + +border-bottom-size = 2 +border-bottom-color = ${color.foreground-alt} + +spacing = 0 +padding-right = 1 +padding-left = 1 +module-margin = 1 +#module-margin-left = 1 +#module-margin-right = 1 + +tray-position = right +tray-padding = 0 +tray-maxsize = 10 +tray-detached = false + +#scroll-up = i3wm-wsnext +#scroll-down = i3wm-wsprev +#scroll-up = bspwm-desknext +#scroll-down = bspwm-deskprev + +modules-left = mpd-playing mpd +modules-center = ewmh +modules-right = ethernet pulseaudio battery date time + +[module/ewmh] +type = internal/xworkspaces + +pin-workspaces = false +enable-click = true +enable-scroll = true +reverse-scroll = false + +format = <label-state> +label-monitor = %name% + +label-active = %name% +label-active-foreground = ${color.foreground} +label-active-background = ${color.background} +label-active-underline= #6790eb +label-active-padding = 1 + +label-occupied = %name% +label-occupied-background = ${color.background} +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-foreground = ${color.foreground} +label-urgent-background = ${color.alert} +label-urgent-underline = ${color.alert} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${color.foreground} +label-empty-padding = 1 +format-foreground = ${color.foreground} +format-background = ${color.background} +wrapping-scroll = false + + +[module/xwindow] +type = internal/xwindow +format = <label> +label = %title% +label-maxlen = 100 +label-empty = Empty + +[module/i3] +type = internal/i3 +strip-wsnumbers = true +wrapping-scroll = false + +label-focused =%name% +label-focused-foreground = ${color.foreground-alt} +label-focused-background = ${color.background} +label-focused-padding = 1 + +label-unfocused =%name% +label-unfocused-padding = 1 + +label-visible =%name% +label-visible-padding = 1 + +label-urgent =%name% +label-urgent-background = ${color.background} +label-urgent-foreground = ${color.alert} +label-urgent-underline = ${color.alert} +label-urgent-padding = 1 + +[module/bspwm] +type = internal/bspwm + +; Only show workspaces defined on the same output as the bar +; NOTE: The bspwm and XRandR monitor names must match, which they do by default. +; Default: true +pin-workspaces = true + +; Output mode flags after focused state label +; Default: false +inline-mode = false + +; Create click handler used to focus workspace +; Default: true +enable-click = true + +; Create scroll handlers used to cycle workspaces +; Default: true +enable-scroll = true + +; Set the scroll cycle direction +; Default: true +reverse-scroll = true + +; Use fuzzy (partial) matching on labels when assigning +; icons to workspaces +; Example: code;♚ will apply the icon to all workspaces +; containing 'code' in the label +; Default: false +fuzzy-match = true + +label-focused-foreground = ${color.foreground-alt} +label-urgent-background = ${color.background} +label-urgent-foreground = ${color.alert} +label-urgent-underline = ${color.alert} +label-separator = \ +label-separator-padding = 1 +label-monitor = %name% + +[module/wifi] +type = internal/network +interface = wlo1 +interval = 1.0 +udspeed-minwidth = 0 + +format-connected = <ramp-signal> <label-connected> +label-connected = %ifname% %downspeed% +format-disconnected = disconnected +format-connected-underline = ${color.foreground-alt} +format-disconnected-underline = ${color.alert} + +ramp-signal-0 = +ramp-signal-1 = +ramp-signal-2 = +ramp-signal-3 = +ramp-signal-4 = + +[module/ethernet] +type = internal/network +interface = enp0s25 +interval = 1.0 +udspeed-minwidth = 0 + +format-connected = <ramp-signal> <label-connected> +label-connected = %ifname% %downspeed% +format-disconnected = disconnected +format-connected-underline = ${color.foreground-alt} +format-disconnected-underline = ${color.alert} + +ramp-signal-0 = +ramp-signal-1 = +ramp-signal-2 = +ramp-signal-3 = +ramp-signal-4 = + +[module/cpu] +type = internal/cpu +label = %percentage%% +interval = 2 +format-prefix = " " + + +[module/memory] +type = internal/memory +interval = 2 +label = %mb_used% +format-prefix = " " + + +[module/battery] +type = internal/battery +full-at = 100 +time-format = %H:%M +battery = BAT0 +adapter = AC + +format-charging = <animation-charging> <label-charging> +format-charging-underline = ${color.foreground-alt} +label-charging = %percentage%% + +format-discharging = <ramp-capacity> <label-discharging> +format-discharging-underline = ${color.foreground-alt} +label-discharging = %percentage%% + +format-full = <ramp-capacity> <label-full> +format-full-underline = ${color.foreground-alt} +format-full-prefix = " " + +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = + +animation-charging-0 = + +[module/pulseaudio] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +#sink = alsa_output.pci-0000_12_00.3.analog-stereo +sink = alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = true + +; Interval for volume increase/decrease (in percent points) (unreleased) +interval = 5 +format-volume = <ramp-volume> <label-volume> +format-volume-underline = ${color.foreground-alt} +label-volume = %percentage%% + +format-muted-prefix = " " +format-muted-underline = ${color.alert} +label-muted = MUTE + +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = +ramp-volume-3 = + +ramp-headphones-0 = +ramp-headphones-1 = + +[module/alsa] +type = internal/alsa + +; Soundcard to be used +; Usually in the format hw:# where # is the card number +; You can find the different card numbers in `/proc/asound/cards` +master-soundcard = default +speaker-soundcard = default +headphone-soundcard = default + +; Name of the master, speaker and headphone mixers +; Use the following command to list available mixer controls: +; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" +; If master, speaker or headphone-soundcard isn't the default, +; use `amixer -c # scontrols` instead where # is the number +; of the master, speaker or headphone soundcard respectively +; +; Default: Master +master-mixer = Master + +; Optionally define speaker and headphone mixers +; Default: none +speaker-mixer = Speaker +; Default: none +headphone-mixer = Headphone + +; NOTE: This is required if headphone_mixer is defined +; Use the following command to list available device controls +; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort +; You may also need to use `amixer -c # controls` as above for the mixer names +; Default: none +headphone-id = 9 + +; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear +; Default: false +mapped = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +format-muted-prefix = " " +format-muted-underline = ${color.alert} +label-muted = MUTE + +format-volume = <ramp-volume> <label-volume> +format-volume-underline = ${color.foreground-alt} +label-volume = %percentage%% + +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = +ramp-volume-3 = + +ramp-headphones-0 = +ramp-headphones-1 = + +[module/xmenu] +type = custom/script + +exec = echo "" +click-left = /home/trollshotlol/Work/xmenu/xmenu.sh + +[module/date] +type = internal/date +interval=10 +label = %date% +date = %Y-%m-%d +format-underline = ${color.foreground-alt} + +[module/time] +type = internal/date +interval = 15 +label = %time% +time = %H:%M +format-underline = ${color.foreground-alt} + +[module/mpd] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +host = localhost +port = 6600 +format-online = <icon-prev> <icon-seekb> <toggle> <icon-seekf> <icon-next> <icon-repeat> + +; Only applies if <icon-X> is used +icon-play = +icon-pause = +icon-stop = +icon-prev = +icon-next = +icon-seekb = +icon-seekf = +icon-random = 🔀 +icon-repeat = 🔁 +icon-repeatone = 🔂 +icon-single = 🔂 +icon-consume = ✀ + +[module/mpd-playing] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +host = localhost +port = 6600 +interval = 1 + +format-playing = <label-song> +#format-paused = MPD is paused +format-stopped = MPD has stopped +format-offline = <label-offline> + +label-song = %title% - %artist% +label-time = %elapsed% / %total% +label-offline = MPD is offline + +; Only applies if <bar-progress> is used +bar-progress-width = 8 +bar-progress-indicator = | +bar-progress-fill = ─ +bar-progress-fill-font = 1 +bar-progress-empty = ─ +bar-progress-empty-font = 1 diff --git a/polybar/launch.sh b/polybar/launch.sh new file mode 100755 index 0000000..38d931e --- /dev/null +++ b/polybar/launch.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Terminate already running bar instances +killall -q polybar + +# Wait until the processes have been shut down +while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + +for m in $(polybar --list-monitors | cut -d":" -f1); do + MONITOR=$m polybar --reload momiji & +done @@ -0,0 +1,36 @@ +# ~/ Clean-up: +export XDG_CONFIG_HOME="$HOME/.config" +export XDG_DATA_HOME="$HOME/.local/share" +export XDG_CACHE_HOME="$HOME/.cache" +#export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" # This line will break some DMs. +export NOTMUCH_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/notmuch-config" +export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0" +export LESSHISTFILE="-" +export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc" +export INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/inputrc" +export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh" +export GNUPGHOME="$XDG_DATA_HOME/gnupg" +export WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local/share}/wineprefixes/default" +export KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi" +export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/password-store" +export TMUX_TMPDIR="$XDG_RUNTIME_DIR" +export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android" +export CARGO_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/cargo" +export GOPATH="${XDG_DATA_HOME:-$HOME/.local/share}/go" +export ANSIBLE_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/ansible/ansible.cfg" +export UNISON="${XDG_DATA_HOME:-$HOME/.local/share}/unison" +export HISTFILE="${XDG_DATA_HOME:-$HOME/.local/share}/history" +export VIMINIT="source $HOME/.config/vim/vimrc" + +# Adds `~/.local/bin` to $PATH +export PATH="$PATH:$(du "$HOME/.local/bin" | cut -f2 | paste -sd ':')" +# Various Files +export BIB="$HOME/texmf/bibtex/bib/uni.bib" +export BD="$HOME/docs/general/birthdays.sc" +# Editor +export EDITOR=vim + +# IBUS +export GTK_IM_MODULE=ibus +export XMODIFIERS=@im=ibus +export QT_IM_MODULE=ibus diff --git a/qutebrowser/autoconfig.yml b/qutebrowser/autoconfig.yml new file mode 100644 index 0000000..b66b233 --- /dev/null +++ b/qutebrowser/autoconfig.yml @@ -0,0 +1,96 @@ +# If a config.py file exists, this file is ignored unless it's explicitly loaded +# via config.load_autoconfig(). For more information, see: +# https://github.com/qutebrowser/qutebrowser/blob/master/doc/help/configuring.asciidoc#loading-autoconfigyml +# DO NOT edit this file by hand, qutebrowser will overwrite it. +# Instead, create a config.py - see :help for details. + +config_version: 2 +settings: + aliases: + global: + q: close + qa: quit + w: session-save + wq: quit --save + wqa: quit --save + backend: + global: webengine + bindings.commands: + global: + normal: + <Ctrl+m>: hint links spawn --detach /usr/local/bin/mpv {hint-url} + O: set-cmd-text -s :open -t -s + x: tab-close + content.canvas_reading: + global: false + content.cookies.accept: + global: no-3rdparty + content.cookies.store: + global: true + content.desktop_capture: + https://meet.jit.si: true + content.geolocation: + https://www.fandango.com: false + content.headers.accept_language: + global: en-US,en;q=0.5 + content.headers.custom: + global: + accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + content.headers.user_agent: + global: Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0 + content.host_blocking.enabled: + global: false + content.media_capture: + https://asm.smartmusic.com: true + https://meet.jit.si: true + content.notifications: + http://192.168.0.53:8096: true + http://192.168.1.12:8096: true + https://beta.protonmail.com: true + https://cloud.boomer.cf: true + https://cloud.cumzone.xyz: true + https://media.boomer.cf: true + https://media.cumzone.xyz: true + https://na.op.gg: false + https://www.reddit.com: false + content.proxy: + global: none + content.ssl_strict: + global: true + content.webgl: + global: false + content.webrtc_ip_handling_policy: + global: default-public-interface-only + fonts.debug_console: + global: default_size default_family + fonts.default_family: + global: JetBrains Mono + fonts.default_size: + global: 10pt + fonts.web.family.fantasy: + global: null + fonts.web.family.sans_serif: + global: null + fonts.web.family.standard: + global: null + qt.force_platformtheme: + global: qt5ctl + qt.highdpi: + global: true + statusbar.show: + global: never + tabs.max_width: + global: -1 + tabs.position: + global: top + tabs.show: + global: multiple + tabs.width: + global: 15% + url.default_page: + global: /home/train/work/startpage/index.html + url.searchengines: + global: + DEFAULT: http://search.cumzone.xyz/searx/?q={} + url.start_pages: + global: /home/train/work/startpage/index.html diff --git a/qutebrowser/bookmarks/urls b/qutebrowser/bookmarks/urls new file mode 100644 index 0000000..3ee1c50 --- /dev/null +++ b/qutebrowser/bookmarks/urls @@ -0,0 +1,29 @@ +http://drudgereport.com/ DRUDGE REPORT 2020® +http://192.168.1.12:9091/transmission/web/#upload Transmission Web Interface +http://localhost:9091/transmission/web/ Transmission Web Interface +http://jpopsuki.eu/ Transmission Web Interface +http://last.fm/ +https://www.last.fm/home Home | Last.fm +https://aeries.hbuhsd.edu/parent/LoginParent.aspx Aeries: Portals +https://hbuhsd.instructure.com/?login_success=1 Dashboard +https://pgsso.cccd.edu/_layouts/PG/login.aspx?ReturnUrl=%2Fsso%2Fgo.ashx PortalGuard - Portal Access +https://redacted.ch/ Redacted +https://github.com/awesome-selfhosted/awesome-selfhosted GitHub - awesome-selfhosted/awesome-selfhosted: A list of Free Software network services and web applications which can be hosted locally. Selfhosting is the process of hosting and managing applications instead of renting from Software-as-a-Service providers +https://www.tapmusic.net/ Last.fm Collage Generator - tapmusic +https://milkie.cc/browse Browse - Milkie +https://gw2.limitlessfx.com/ Guild Wars 2 : World Boss Timers +https://www.myanonamouse.net/login.php?returnto=%2F Login | My Anonamouse +https://cumzone.xyz/ train's website +https://upload.cumzone.xyz/ train's lolis - a self-hosted upload service. +http://www.orangecoastcollege.edu/Pages/home.aspx Orange Coast College +https://cloud.cumzone.xyz/login CUM STORAGE +http://192.168.1.12:8181/ botamusique web interface +https://search.cumzone.xyz/ searx +https://yt.cumzone.xyz/ Invidious +http://192.168.1.12:8084/admin/ Pi-hole - maeve +http://192.168.1.12:8096 Jellyfin +https://yadg.cc/ YADG +https://zoomersrants.xyz/ Zoomer's Rants - Conservative Blog On American Politics +https://read.cumzone.xyz/login Welcome to wallabag! – wallabag +https://bonginoreport.com/ Home - The Bongino Report +https://canvas.cccd.edu/ Canvas Discovery Page diff --git a/qutebrowser/qsettings/QtProject.conf b/qutebrowser/qsettings/QtProject.conf new file mode 100644 index 0000000..aab8e23 --- /dev/null +++ b/qutebrowser/qsettings/QtProject.conf @@ -0,0 +1,8 @@ +[FileDialog] +history=file:///home/trollshotlol/Pictures, file:///home/trollshotlol/Pictures/School & Friends, file:///home/trollshotlol/Downloads, file:///home/train/down, file:///home/train +lastVisited=file:///home/train/down +qtVersion=5.15.2 +shortcuts=file:, file:///home/trollshotlol, file:///home/trollshotlol/Downloads +sidebarWidth=92 +treeViewHeader=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x2\x33\0\0\0\x4\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x4\0\0\0\xe8\0\0\0\x1\0\0\0\0\0\0\0\x36\0\0\0\x1\0\0\0\0\0\0\0:\0\0\0\x1\0\0\0\0\0\0\0\xdb\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\xff\xff\xff\xff) +viewMode=Detail diff --git a/qutebrowser/quickmarks b/qutebrowser/quickmarks new file mode 100644 index 0000000..892f9a0 --- /dev/null +++ b/qutebrowser/quickmarks @@ -0,0 +1 @@ +obbed by racoon https://yt.cumzone.xyz/ diff --git a/sxhkd/sxhkdrc b/sxhkd/sxhkdrc new file mode 100644 index 0000000..530905e --- /dev/null +++ b/sxhkd/sxhkdrc @@ -0,0 +1,181 @@ +# Basic binds +super + Return + st +super + F1 + brave +super + F9 + st -e vifmrun +super + F3 + st -e pulsemixer +# st -e alsamixer +super + F5 + discord +super + F2 + st -e ncmpcpp-ueberzug +super + F4 + mumble +super + F6 + st -e neomutt + #thunderbird +super + F8 + sct 2500 +super + F7 + passmenu +super + shift + F7 + otpmenu +super + shift + F8 + sct +#super + shift + x +XF86ScreenSaver + i3lock -c 131313 +# st -n unimatrix -c unimatrix -e unimatrix -g=black -c=white -a -s 92 & slock + +shift + Print + import ~/pics/screenshots/$(date +%F_%H%M%S_%N).png +Print + import -window root ~/pics/screenshots/$(date +%F_%H%M%S_%N).png +super + Escape +#XF86Launch1 + st -e htop +super + d + /home/trollshotlol/Work/xmenu/xmenu.sh +super + r + dmenu_run -fn "JetBrains Mono:style=Regular:size=9" -i -l 10 +super + n + networkmanager_dmenu -fn "JetBrains Mono:style=Regular:size=9" -w 650 -x 365 -y 244 -p ">>" -l 15 +XF86AudioRaiseVolume + pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo +5% +# amixer set Master 5%+ +XF86AudioLowerVolume + pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo -5% +# amixer set Master 5%- +shift + XF86AudioRaiseVolume + mpc volume +2 +shift + XF86AudioLowerVolume + mpc volume -2 +XF86AudioNext + mpc next +XF86AudioPrev + mpc prev +XF86AudioPlay + mpc toggle +XF86AudioMute +# amixer set Master toggle + pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo toggle +XF86AudioMicMute +# amixer set Master toggle + pactl set-source-mute alsa_input.pci-0000_00_1b.0.analog-stereo toggle +XF86Sleep + light -S 0 +XF86MonBrightnessUp + light -A 5 +XF86MonBrightnessDown + light -U 5 +super + c + camtoggle +## +## bspwm hotkeys +## +# +## quit/restart bspwm +#super + shift + {e,r} +# bspc {quit,wm -r} +# +## close and kill +#super + shift + q +# bspc node -c +# +## alternate between the tiled and monocle layout +#super + w +# bspc desktop -l next +# +## send the newest marked node to the newest preselected node +#super + y +# bspc node newest.marked.local -n newest.!automatic.local +# +## swap the current node and the biggest node +#super + g +# bspc node -s biggest +# +## +## state/flags +## +# +## set the window state +#super + {e,t,shift + space,f} +# bspc node -t {tiled,pseudo_tiled,floating,fullscreen} +# +## set the node flags +#super + ctrl + {m,x,y,z} +# bspc node -g {marked,locked,sticky,private} +# +## +## focus/swap +## +# +## focus the node for the given path jump +#super + {p,b,comma,period} +# bspc node -f @{parent,brother,first,second} +# +## focus the next/previous node in the current desktop +#super + {_,shift + }{h,j,k,l} +# LAYOUT=$(bspc query -T -d | jq -r .layout); \ +# [[ "$LAYOUT" == "tiled" ]] && bspc node -{f,s} {west,south,north,east}.local; \ +# [[ "$LAYOUT" == "monocle" ]] && bspc node -{f,s} {prev,next,prev,next}.local +# +## focus the next/previous desktop in the current monitor +#super + bracket{left,right} +# bspc desktop -f {prev,next}.local +# +## focus the last node/desktop +#super + q +# bspc desktop -f last +# +## focus the older or newer node in the focus history +#super + {o,i} +# bspc wm -h off; \ +# bspc node {older,newer} -f; \ +# bspc wm -h on +# +## focus or send to the given desktop +#super + {_,shift + }{1-9,0} +# bspc {desktop -f,node -d} '^{1-9,10}' +# +#super {_,shift +}Tab +# bspc desktop -f {next,prev} +# +## +## preselect +## +# +## preselect the direction +#super + ctrl + {h,j,k,l} +# bspc node -p {west,south,north,east} +# +## preselect the ratio +#super + ctrl + {1-9} +# bspc node -o 0.{1-9} +# +## cancel the preselection for the focused node +#super + ctrl + space +# bspc node -p cancel +# +## cancel the preselection for the focused desktop +#super + ctrl + shift + space +# bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel +# +## +## move/resize +## +# +## expand a window by moving one of its side outward +#alt + {h,j,k,l} +# bspc node -z {left -10 0,bottom 0 10,top 0 -10,right 10 0} +# +## contract a window by moving one of its side inward +#shift + alt + {h,j,k,l} +# bspc node -z {right -10 0,top 0 10,bottom 0 -10,left 10 0} +# +## move a floating window +#super + {Left,Down,Up,Right} +# bspc node -v {-20 0,0 20,0 -20,20 0} diff --git a/user-dirs.dirs b/user-dirs.dirs new file mode 100644 index 0000000..b4e1194 --- /dev/null +++ b/user-dirs.dirs @@ -0,0 +1,15 @@ +# This file is written by xdg-user-dirs-update +# If you want to change or add directories, just edit the line you're +# interested in. All local changes will be retained on the next run. +# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped +# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an +# absolute path. No other format is supported. +# +XDG_DESKTOP_DIR="$HOME/desk" +XDG_DOWNLOAD_DIR="$HOME/down" +XDG_TEMPLATES_DIR="$HOME/" +XDG_PUBLICSHARE_DIR="$HOME/" +XDG_DOCUMENTS_DIR="$HOME/docs" +XDG_MUSIC_DIR="$HOME/" +XDG_PICTURES_DIR="$HOME/pics" +XDG_VIDEOS_DIR="$HOME/vid" diff --git a/user-dirs.locale b/user-dirs.locale new file mode 100644 index 0000000..3e0b419 --- /dev/null +++ b/user-dirs.locale @@ -0,0 +1 @@ +en_US
\ No newline at end of file diff --git a/vifm/colors/Default.vifm b/vifm/colors/Default.vifm new file mode 100644 index 0000000..e562648 --- /dev/null +++ b/vifm/colors/Default.vifm @@ -0,0 +1,80 @@ +" You can edit this file by hand. +" The " character at the beginning of a line comments out the line. +" Blank lines are ignored. + +" The Default color scheme is used for any directory that does not have +" a specified scheme and for parts of user interface like menus. A +" color scheme set for a base directory will also +" be used for the sub directories. + +" The standard ncurses colors are: +" Default = -1 = None, can be used for transparency or default color +" Black = 0 +" Red = 1 +" Green = 2 +" Yellow = 3 +" Blue = 4 +" Magenta = 5 +" Cyan = 6 +" White = 7 + +" Light versions of colors are also available (set bold attribute): +" LightBlack +" LightRed +" LightGreen +" LightYellow +" LightBlue +" LightMagenta +" LightCyan +" LightWhite + +" Available attributes (some of them can be combined): +" bold +" underline +" reverse or inverse +" standout +" italic (on unsupported systems becomes reverse) +" none + +" Vifm supports 256 colors you can use color numbers 0-255 +" (requires properly set up terminal: set your TERM environment variable +" (directly or using resources) to some color terminal name (e.g. +" xterm-256color) from /usr/lib/terminfo/; you can check current number +" of colors in your terminal with tput colors command) + +" highlight group cterm=attrs ctermfg=foreground_color ctermbg=background_color + +highlight clear + +highlight Win cterm=none ctermfg=white ctermbg=default +highlight Directory cterm=bold ctermfg=blue ctermbg=default +highlight Link cterm=bold ctermfg=yellow ctermbg=default +highlight BrokenLink cterm=bold ctermfg=red ctermbg=default +highlight Socket cterm=bold ctermfg=magenta ctermbg=default +highlight Device cterm=bold ctermfg=red ctermbg=default +highlight Fifo cterm=bold ctermfg=yellow ctermbg=default +highlight Executable cterm=bold ctermfg=green ctermbg=default +highlight Selected cterm=bold ctermfg=magenta ctermbg=default +highlight CurrLine cterm=bold,reverse ctermfg=default ctermbg=default +highlight TopLine cterm=none ctermfg=black ctermbg=white +highlight TopLineSel cterm=bold ctermfg=black ctermbg=default +highlight StatusLine cterm=bold ctermfg=black ctermbg=white +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black +highlight Border cterm=none ctermfg=black ctermbg=white +highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white +highlight SuggestBox cterm=bold ctermfg=default ctermbg=default +highlight CmpMismatch cterm=bold ctermfg=white ctermbg=red +highlight AuxWin cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default +highlight TabLine cterm=none ctermfg=white ctermbg=black +highlight TabLineSel cterm=bold,reverse ctermfg=default ctermbg=default +highlight User1 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default +highlight User2 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default +highlight User3 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default +highlight User4 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default +highlight User5 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default +highlight User6 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default +highlight User7 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default +highlight User8 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default +highlight User9 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default diff --git a/vifm/scripts/README b/vifm/scripts/README new file mode 100644 index 0000000..7694952 --- /dev/null +++ b/vifm/scripts/README @@ -0,0 +1,6 @@ +This directory is dedicated for user-supplied scripts/executables. +vifm modifies its PATH environment variable to let user run those +scripts without specifying full path. All subdirectories are added +as well. File in a subdirectory overrules file with the same name +in parent directories. Restart might be needed to recognize files +in newly created or renamed subdirectories.
\ No newline at end of file diff --git a/vifm/scripts/vifmimg b/vifm/scripts/vifmimg new file mode 100755 index 0000000..e5d8763 --- /dev/null +++ b/vifm/scripts/vifmimg @@ -0,0 +1,53 @@ +#!/usr/bin/env bash +readonly ID_PREVIEW="preview" + +#AUTO_REMOVE="yes" +# By enabling this option the script will remove the preview file after it is drawn +# and by doing so the preview will always be up-to-date with the file. +# This however, requires more CPU and therefore affects the overall performance. + +if [ -e "$FIFO_UEBERZUG" ]; then + if [[ "$1" == "draw" ]]; then + declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" + [x]="$2" [y]="$3" [width]="$4" [height]="$5" \ + [path]="${PWD}/$6") \ + > "$FIFO_UEBERZUG" + + elif [[ "$1" == "videopreview" ]]; then + echo -e "Loading preview..\nFile: $6" + [[ ! -d "/tmp${PWD}/$6/" ]] && mkdir -p "/tmp${PWD}/$6/" + [[ ! -f "/tmp${PWD}/$6.png" ]] && ffmpegthumbnailer -i "${PWD}/$6" -o "/tmp${PWD}/$6.png" -s 0 -q 10 + declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" + [x]="$2" [y]="$3" [width]="$4" [height]="$5" \ + [path]="/tmp${PWD}/$6.png") \ + > "$FIFO_UEBERZUG" + + elif [[ "$1" == "gifpreview" ]]; then + echo -e "Loading preview..\nFile: $6" + [[ ! -d "/tmp${PWD}/$6/" ]] && mkdir -p "/tmp${PWD}/$6/" && convert -coalesce "${PWD}/$6" "/tmp${PWD}/$6/$6.png" + for frame in $(ls -1 /tmp${PWD}/$6/$6*.png | sort -V); do + declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" + [x]="$2" [y]="$3" [width]="$4" [height]="$5" \ + [path]="$frame") \ + > "$FIFO_UEBERZUG" + # Sleep between frames to make the animation smooth. + sleep .07 + done + + elif [[ "$1" == "pdfpreview" ]]; then + echo -e "Loading preview..\nFile: $6" + [[ ! -d "/tmp${PWD}/$6/" ]] && mkdir -p "/tmp${PWD}/$6/" + [[ ! -f "/tmp${PWD}/$6.png" ]] && pdftoppm -png -singlefile "$6" "/tmp${PWD}/$6" + declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" + [x]="$2" [y]="$3" [width]="$4" [height]="$5" \ + [path]="/tmp${PWD}/$6.png") \ + > "$FIFO_UEBERZUG" + + elif [[ "$1" == "clear" ]]; then + declare -p -A cmd=([action]=remove [identifier]="$ID_PREVIEW") \ + > "$FIFO_UEBERZUG" + [[ ! -z $AUTO_REMOVE ]] && [[ -f "/tmp${PWD}/$6.png" ]] && rm -f "/tmp${PWD}/$6.png" + [[ ! -z $AUTO_REMOVE ]] && [[ -d "/tmp${PWD}/$6/" ]] && rm -rf "/tmp${PWD}/$6/" + + fi +fi diff --git a/vifm/scripts/vifmrun b/vifm/scripts/vifmrun new file mode 100755 index 0000000..9eda32a --- /dev/null +++ b/vifm/scripts/vifmrun @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +export FIFO_UEBERZUG="/tmp/vifm-ueberzug-${PPID}" + +function cleanup { + rm "$FIFO_UEBERZUG" 2>/dev/null + pkill -P $$ 2>/dev/null +} + +rm "$FIFO_UEBERZUG" 2>/dev/null +mkfifo "$FIFO_UEBERZUG" +trap cleanup EXIT +tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser bash & + +vifm +cleanup diff --git a/vifm/vifm-help.txt b/vifm/vifm-help.txt new file mode 100644 index 0000000..59550f6 --- /dev/null +++ b/vifm/vifm-help.txt @@ -0,0 +1,5899 @@ +VIFM(1) General Commands Manual VIFM(1) + + + +NAME + vifm - vi file manager + +SYNOPSIS + vifm [OPTION]... + vifm [OPTION]... path + vifm [OPTION]... path path + +DESCRIPTION + Vifm is an ncurses based file manager with vi like keybindings. If you + use vi, vifm gives you complete keyboard control over your files with- + out having to learn a new set of commands. + +OPTIONS + vifm starts in the current directory unless it is given a different + directory on the command line or 'vifminfo' option includes "savedirs" + (in which case last visited directories are used as defaults). + + - Read list of files from standard input stream and compose custom + view out of them (see "Custom views" section). Current working + directory is used as a base for relative paths. + + <path> Starts Vifm in the specified path. + + <path> <path> + Starts Vifm in the specified paths. + + Specifying two directories triggers split view even when vifm was in + single-view mode on finishing previous session. To suppress this be- + haviour :only command can be put in the vifmrc file. + + When only one path argument is found on command-line, the left/top pane + is automatically set as the current view. + + Paths to files are also allowed in case you want vifm to start with + some archive opened. + + --select <path> + Open parent directory of the given path and select specified + file in it. + + -f Makes vifm instead of opening files write selection to + $VIFM/vimfiles and quit. + + --choose-files <path>|- + Sets output file to write selection into on exit instead of + opening files. "-" means standard output. Use empty value to + disable it. + + --choose-dir <path>|- + Sets output file to write last visited directory into on exit. + "-" means standard output. Use empty value to disable it. + + --delimiter <delimiter> + Sets separator for list of file paths written out by vifm. + Empty value means null character. Default is new line charac- + ter. + + --on-choose <command> + Sets command to be executed on selected files instead of opening + them. The command may use any of macros described in "Command + macros" section below. The command is executed once for whole + selection. + + --logging[=<startup log path>] + Log some operational details $VIFM/log. If the optional startup + log path is specified and permissions allow to open it for writ- + ing, then logging of early initialization (before value of $VIFM + is determined) is put there. + + --server-list + List available server names and exit. + + --server-name <name> + Name of target or this instance (sequential numbers are appended + on name conflict). + + --remote + Sends the rest of the command line to another instance of vifm, + --server-name is treated just like any other argument and should + precede --remote on the command line. When there is no server, + quits silently. There is no limit on how many arguments can be + processed. One can combine --remote with -c <command> or +<com- + mand> to execute commands in already running instance of vifm. + See also "Client-Server" section below. + + --remote-expr + passes expression to vifm server and prints result. See also + "Client-Server" section below. + + -c <command> or +<command> + Run command-line mode <command> on startup. Commands in such + arguments are executed in the order they appear in command line. + Commands with spaces or special symbols must be enclosed in dou- + ble or single quotes or all special symbols should be escaped + (the exact syntax strongly depends on shell). "+" argument is + equivalent to "$" and thus picks last item of of the view. + + --help, -h + Show a brief command summary and exit vifm. + + --version, -v + Show version information and quit. + + --no-configs + Skip reading vifmrc and vifminfo. + + + See "Startup" section below for the explanations on $VIFM. + +General keys + Ctrl-C or Escape + cancel most operations (see "Cancellation" section below), clear + all selected files. + + Ctrl-L clear and redraw the screen. + +Basic Movement + The basic vi key bindings are used to move through the files and pop-up + windows. + + k, gk, or Ctrl-P + move cursor up one line. + + j, gj or Ctrl-N + move cursor down one line. + + h when 'lsview' is off move up one directory (moves to parent + directory node in tree view), otherwise move left one file. + + l when 'lsview' is off move into a directory or launches a file, + otherwise move right one file. + + gg move to the first line of the file list. + + G move to the last line in the file list. + + gh go up one directory regardless of view representation (regular, + ls-like). Also can be used to leave custom views including tree + view. + + gl or Enter + enter directory or launch a file. + + H move to the first file in the window. + + M move to the file in the middle of the window. + + L move to the last file in the window. + + Ctrl-F or Page Down + move forward one page. + + Ctrl-B or Page Up + move back one page. + + Ctrl-D jump back one half page. + + Ctrl-U jump forward one half page. + + n% move to the file that is n percent from the top of the list (for + example 25%). + + 0 or ^ move cursor to the first column. See 'lsview' option descrip- + tion. + + $ move cursor to the last column. See 'lsview' option descrip- + tion. + + Space switch file lists. + + gt switch to the next tab (wrapping around). + + {n}gt switch to the tab number {n} (wrapping around). + + gT switch to the previous tab (wrapping around). + + {n}gT switch to {n}-th previous tab. + +Movement with Count + Most movement commands also accept a count, 12j would move down 12 + files. + + [count]% + move to percent of the file list. + + [count]j + move down [count] files. + + [count]k + move up [count] files. + + [count]G or [count]gg + move to list position [count]. + + [count]h + go up [count] directories. + +Scrolling panes + zt redraw pane with file in top of list. + + zz redraw pane with file in center of list. + + zb redraw pane with file in bottom of list. + + Ctrl-E scroll pane one line down. + + Ctrl-Y scroll pane one line up. + +Pane manipulation + Second character can be entered with or without Control key. + + Ctrl-W H + move the pane to the far left. + + Ctrl-W J + move the pane to the very bottom. + + Ctrl-W K + move the pane to the very top. + + Ctrl-W L + move the pane to the far right. + + + Ctrl-W h + switch to the left pane. + + Ctrl-W j + switch to the pane below. + + Ctrl-W k + switch to the pane above. + + Ctrl-W l + switch to the right pane. + + + Ctrl-W b + switch to bottom-right window. + + Ctrl-W t + switch to top-left window. + + + Ctrl-W p + switch to previous window. + + Ctrl-W w + switch to other pane. + + + Ctrl-W o + leave only one pane. + + Ctrl-W s + split window horizontally. + + Ctrl-W v + split window vertically. + + + Ctrl-W x + exchange panes. + + Ctrl-W z + quit preview pane or view modes. + + + Ctrl-W - + decrease size of the view by count. + + Ctrl-W + + increase size of the view by count. + + Ctrl-W < + decrease size of the view by count. + + Ctrl-W > + increase size of the view by count. + + + Ctrl-W | + set current view size to count. + + Ctrl-W _ + set current view size to count. + + Ctrl-W = + make size of two views equal. + + For Ctrl-W +, Ctrl-W -, Ctrl-W <, Ctrl-W >, Ctrl-W | and Ctrl-W _ com- + mands count can be given before and/or after Ctrl-W. The resulting + count is a multiplication of those two. So "2 Ctrl-W 2 -" decreases + window size by 4 lines or columns. + + Ctrl-W | and Ctrl-W _ maximise current view by default. + +Marks + Marks are set the same way as they are in vi. + + You can use these characters for marks [a-z][A-Z][0-9]. + + m[a-z][A-Z][0-9] + set a mark for the file at the current cursor position. + + '[a-z][A-Z][0-9] + navigate to the file set for the mark. + + + There are also several special marks that can't be set manually: + + - ' (single quote) - previously visited directory of the view, thus + hitting '' allows switching between two last locations + + - < - the first file of the last visually selected block + + - > - the last file of the last visually selected block + +Searching + /regular expression pattern + search for files matching regular expression in forward direc- + tion and advance cursor to next match. + + / perform forward search with top item of search pattern history. + + ?regular expression pattern + search for files matching regular expression in backward direc- + tion and advance cursor to previous match. + + ? perform backward search with top item of search pattern history. + + Trailing slash for directories is taken into account, so /\/ searches + for directories and symbolic links to directories. At the moment // + works too, but this can change in the future, so consider escaping the + slash if not typing pattern by hand. + + Matches are automatically selected if 'hlsearch' is set. Enabling + 'incsearch' makes search interactive. 'ignorecase' and 'smartcase' + options affect case sensitivity of search queries. + + + [count]n + go to the next file matching last search pattern. Takes last + search direction into account. + + [count]N + go to the previous file matching last search pattern. Takes + last search direction into account. + + If 'hlsearch' option is set, hitting n/N to perform search and go to + the first matching item resets current selection in normal mode. It is + not the case if search was already performed on files in the directory, + thus selection is not reset after clearing selection with escape key + and hitting n/N key again. + + Note: vifm uses extended regular expressions for / and ?. + + + [count]f[character] + search forward for file with [character] as first character in + name. Search wraps around the end of the list. + + [count]F[character] + search backward for file with [character] as first character in + name. Search wraps around the end of the list. + + [count]; + find the next match of f or F. + + [count], + find the previous match of f or F. + + Note: f, F, ; and , wrap around list beginning and end when they are + used alone and they don't wrap when they are used as selectors. + +File Filters + There are three basic file filters: + + - dot files filter (excluding "." and ".." special directories, whose + appearance is controlled by the 'dotdirs' option); + + - manual filter for file names; + + - automatic filter for file names; + + - local filter for file names (see description of the "=" normal mode + command). + + Performing operations on manual filter for file names automatically + does the same on automatic one. The file name filter is separated + mainly for convenience purpose and to get more deterministic behaviour. + + The basic vim folding key bindings are used for filtering files. + + Each file list has its own copy of each filter. + + Filtered files are not checked in / search or :commands. + + Files and directories are filtered separately. For this a slash is + appended to a directory name before testing whether it matches the fil- + ter. Examples: + + + " filter directories which names end with '.files' + :filter /^.*\.files\/$/ + + " filter files which names end with '.d' + :filter /^.*\.d$/ + + " filter files and directories which names end with '.o' + :filter /^.*\.o\/?$/ + + Note: vifm uses extended regular expressions. + + za toggle visibility of dot files. + + zo show dot files. + + zm hide dot files. + + zf add selected files to file name filter. + + zO show files hidden by file name filter. + + zM restore all filters. + + zR remove all filters. + + zr remove local filter. + + zd exclude selection or current file from a custom view. Does + nothing for regular view. For tree view excluding directory + excludes that sub-tree. For compare views zd hides group of + adjacent identical files, count can be specified as 1 to exclude + just single file or selected items instead. Files excluded this + way are not counted as filtered out and can't be returned unless + view is reloaded. + + =regular expression pattern + filter out files that don't match regular expression. Whether + view is updated as regular expression is changed depends on the + value of the 'incsearch' option. This kind of filter is auto- + matically reset when directory is changed. + +Other Normal Mode Keys + [count]: + enter command line mode. [count] generates range. + + q: open external editor to prompt for command-line command. See + "Command line editing" section for details. + + q/ open external editor to prompt for search pattern to be searched + in forward direction. See "Command line editing" section for + details. + + q? open external editor to prompt for search pattern to be searched + in backward direction. See "Command line editing" section for + details. + + q= open external editor to prompt for filter pattern. See "Command + line editing" section for details. Unlike other q{x} commands + this one doesn't work in Visual mode. + + [count]!! and [count]!<selector> + enter command line mode with entered ! command. [count] modi- + fies range. + + Ctrl-O go backwards through directory history of current view. Nonex- + istent directories are automatically skipped. + + Ctrl-I if 'cpoptions' contains "t" flag, <tab> and <c-i> switch active + pane just like <space> does, otherwise it goes forward through + directory history of current view. Nonexistent directories are + automatically skipped. + + Ctrl-G create a window showing detailed information about the current + file. + + Shift-Tab + enters view mode (works only after activating view pane with + :view command). + + ga calculate directory size. Uses cached directory sizes when pos- + sible for better performance. As a special case calculating + size of ".." entry results in calculation of size of current + directory. + + gA like ga, but force update. Ignores old values of directory + sizes. + + If file under cursor is selected, each selected item is processed, oth- + erwise only current file is updated. + + gf find link destination (like l with 'followlinks' off, but also + finds directories). + + gr only for MS-Windows + same as l key, but tries to run program with administrative + privileges. + + av go to visual mode into selection amending state preserving cur- + rent selection. + + gv go to visual mode restoring last selection. + + [reg]gs + when no register is specified, restore last t selection (similar + to what gv does for visual mode selection). If register is + present, then all files listed in that register and which are + visible in current view are selected. + + gu<selector> + make names of selected files lowercase. + + [count]guu and [count]gugu + make names of [count] files starting from the current one lower- + case. Without [count] only current file is affected. + + gU<selector> + make names of selected files uppercase. + + [count]gUU and [count]gUgU + make names of [count] files starting from the current one upper- + case. Without [count] only current file is affected. + + e explore file in the current pane. + + i handle file (even if it's an executable and 'runexec' option is + set). + + cw change word is used to rename a file or files. + + cW change WORD is used to change only name of file (without exten- + sion). + + cl change link target. + + co only for *nix + change file owner. + + cg only for *nix + change file group. + + [count]cp + change file attributes (permission on *nix and properties on + Windows). If [count] is specified, it's treated as numerical + argument for non-recursive `chmod` command (of the form + [0-7]{3,4}). + + [count]C + clone file [count] times. + + [count]dd or d[count]selector + move selected file or files to trash directory (if 'trash' + option is set, otherwise delete). See "Trash directory" section + below. + + [count]DD or D[count]selector + like dd and d<selector>, but omitting trash directory (even when + 'trash' option is set). + + Y, [count]yy or y[count]selector + yank selected files. + + p copy yanked files to the current directory or move the files to + the current directory if they were deleted with dd or :d[elete] + or if the files were yanked from trash directory. See "Trash + directory" section below. + + P move the last yanked files. The advantage of using P instead of + d followed by p is that P moves files only once. This isn't + important in case you're moving files in the same file system + where your home directory is, but using P to move files on some + other file system (or file systems, in case you want to move + files from fs1 to fs2 and your home is on fs3) can save your + time. + + al put symbolic links with absolute paths. + + rl put symbolic links with relative paths. + + t select or unselect (tag) the current file. + + u undo last change. + + Ctrl-R redo last change. + + dp in compare view of "ofboth grouppaths" kind, makes corresponding + entry of the other pane equal to the current one. The semantics + is as follows: + - nothing done for identical entries + - if file is missing in current view, its pair gets removed + - if file is missing or differs in other view, it's replaced + - file pairs are defined by matching relative paths + File removal obeys 'trash' option. When the option is enabled, + the operation can be undone/redone (although results won't be + visible automatically). + Unlike in Vim, this operation is performed on a single line + rather than a set of adjacent changes. + + do same as dp, but applies changes in the opposite direction. + + v or V enter visual mode, clears current selection. + + [count]Ctrl-A + increment first number in file name by [count] (1 by default). + + [count]Ctrl-X + decrement first number in file name by [count] (1 by default). + + ZQ same as :quit!. + + ZZ same as :quit. + + . repeat last command-line command (not normal mode command) of + this session (does nothing right after startup or :restart com- + mand). The command doesn't depend on command-line history and + can be used with completely disabled history. + + ( go to previous group. Groups are defined by primary sorting + key. For name and iname members of each group have same first + letter, for all other sorting keys vifm uses size, uid, ... + + ) go to next group. See ( key description above. + + { speeds up navigation to closest previous entry of the opposite + type by moving to the first file backwards when cursor is on a + directory and to the first directory backwards when cursor is on + a file. This is essentially a special case of ( that is locked + on "dirs". + + } same as {, but in forward direction. + + [c go to previous mismatched entry in directory comparison view or + do nothing. + + ]c go to next mismatched entry in directory comparison view or do + nothing. + + [d go to previous directory entry or do nothing. + + ]d go to next directory entry or do nothing. + + [r same as :siblprev. + + ]r same as :siblnext. + + [R same as :siblprev!. + + ]R same as :siblnext!. + + [s go to previous selected entry or do nothing. + + ]s go to next selected entry or do nothing. + + [z go to first sibling of current entry. + + ]z go to last sibling of current entry. + + zj go to next directory sibling of current entry or do nothing. + + zk go to previous directory sibling of current entry or do nothing. + +Using Count + You can use count with commands like yy. + + [count]yy + yank count files starting from current cursor position downward. + + Or you can use count with motions passed to y, d or D. + + d[count]j + delete (count + 1) files starting from current cursor position + upward. + +Registers + vifm supports multiple registers for temporary storing list of yanked + or deleted files. + + Registers should be specified by hitting double quote key followed by a + register name. Count is specified after register name. By default + commands use unnamed register, which has double quote as its name. + + Though all commands accept registers, most of commands ignores them + (for example H or Ctrl-U). Other commands can fill register or append + new files to it. + + Presently vifm supports ", _, a-z and A-Z characters as register names. + + As mentioned above " is unnamed register and has special meaning of the + default register. Every time when you use named registers (a-z and A- + Z) unnamed register is updated to contain same list of files as the + last used register. + + _ is black hole register. It can be used for writing, but its list is + always empty. + + Registers with names from a to z and from A to Z are named ones. Low- + ercase registers are cleared before adding new files, while uppercase + aren't and should be used to append new files to the existing file list + of appropriate lowercase register (A for a, B for b, ...). + + Registers can be changed on :empty command if they contain files under + trash directory (see "Trash directory" section below). + + Registers do not contain one file more than once. + + Example: + + "a2yy + + puts names of two files to register a (and to the unnamed register), + + "Ad + + removes one file and append its name to register a (and to the unnamed + register), + + p or "ap or "Ap + + inserts previously yanked and deleted files into current directory. + +Selectors + y, d, D, !, gu and gU commands accept selectors. You can combine them + with any of selectors below to quickly remove or yank several files. + + Most of selectors are like vi motions: j, k, gg, G, H, L, M, %, f, F, + ;, comma, ', ^, 0 and $. But there are some additional ones. + + a all files in current view. + + s selected files. + + S all files except selected. + + Examples: + + - dj - delete file under cursor and one below; + + - d2j - delete file under cursor and two below; + + - y6gg - yank all files from cursor position to 6th file in the list. + + When you pass a count to whole command and its selector they are multi- + plied. So: + + - 2d2j - delete file under cursor and four below; + + - 2dj - delete file under cursor and two below; + + - 2y6gg - yank all files from cursor position to 12th file in the + list. + +Visual Mode + Visual mode has to generic operating submodes: + + - plain selection as it is in Vim; + + - selection editing submode. + + Both modes select files in range from cursor position at which visual + mode was entered to current cursor position (let's call it "selection + region"). Each of two borders can be adjusted by swapping them via "o" + or "O" keys and updating cursor position with regular cursor motion + keys. Obviously, once initial cursor position is altered this way, + real start position becomes unavailable. + + Plain Vim-like visual mode starts with cleared selection, which is not + restored on rejecting selection ("Escape", "Ctrl-C", "v", "V"). Con- + trary to it, selection editing doesn't clear previously selected files + and restores them after reject. Accepting selection by performing an + operation on selected items (e.g. yanking them via "y") moves cursor to + the top of current selection region (not to the top most selected file + of the view). + + In turn, selection editing supports three types of editing (look at + statusbar to know which one is currently active): + + - append - amend selection by selecting elements in selection region; + + - remove - amend selection by deselecting elements in selection + region; + + - invert - amend selection by inverting selection of elements in + selection region. + + No matter how you activate selection editing it starts in "append". + One can switch type of operation (in the order given above) via "Ctrl- + G" key. + + Almost all normal mode keys work in visual mode, but instead of accept- + ing selectors they operate on selected items. + + Enter save selection and go back to normal mode not moving cursor. + + av leave visual mode if in amending mode (restores previous selec- + tion), otherwise switch to amending selection mode. + + gv restore previous visual selection. + + v, V, Ctrl-C or Escape + leave visual mode if not in amending mode, otherwise switch to + normal visual selection. + + Ctrl-G switch type of amending by round robin scheme: append -> remove + -> invert. + + : enter command line mode. Selection is cleared on leaving the + mode. + + o switch active selection bound. + + O switch active selection bound. + + gu, u make names of selected files lowercase. + + gU, U make names of selected files uppercase. + +View Mode + This mode tries to imitate the less program. List of builtin shortcuts + can be found below. Shortcuts can be customized using :qmap, :qnoremap + and :qunmap command-line commands. + + Shift-Tab, Tab, q, Q, ZZ + return to normal mode. + + [count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter + scroll forward one line (or [count] lines). + + [count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P + scroll backward one line (or [count] lines). + + [count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space + scroll forward one window (or [count] lines). + + [count]b, [count]Ctrl-B, [count]Alt-V + scroll backward one window (or [count] lines). + + [count]z + scroll forward one window (and set window to [count]). + + [count]w + scroll backward one window (and set window to [count]). + + [count]Alt-Space + scroll forward one window, but don't stop at end-of-file. + + [count]d, [count]Ctrl-D + scroll forward one half-window (and set half-window to [count]). + + [count]u, [count]Ctrl-U + scroll backward one half-window (and set half-window to + [count]). + + r, Ctrl-R, Ctrl-L + repaint screen. + + R reload view preserving scroll position. + + F toggle automatic forwarding. Roughly equivalent to periodic + file reload and scrolling to the bottom. The behaviour is simi- + lar to `tail -F` or F key in less. + + [count]/pattern + search forward for ([count]-th) matching line. + + [count]?pattern + search backward for ([count]-th) matching line. + + [count]n + repeat previous search (for [count]-th occurrence). + + [count]N + repeat previous search in reverse direction (for [count]-th + occurrence). + + [count]g, [count]<, [count]Alt-< + scroll to the first line of the file (or line [count]). + + [count]G, [count]>, [count]Alt-> + scroll to the last line of the file (or line [count]). + + [count]p, [count]% + scroll to the beginning of the file (or N percent into file). + + v invoke an editor to edit the current file being viewed. The + command for editing is taken from the 'vicmd'/'vixcmd' option + value and extended with middle line number prepended by a plus + sign and name of the current file. + + All "Ctrl-W x" keys work the same was as in Normal mode. Active mode + is automatically changed on navigating among windows. When less-like + mode activated on file preview is left using one by "Ctrl-W x" keys, + its state is stored until another file is displayed using preview (it's + possible to leave the mode, hide preview pane, do something else, then + get back to the file and show preview pane again with previously stored + state in it). + +Command line Mode + These keys are available in all submodes of the command line mode: com- + mand, search, prompt and filtering. + + Down, Up, Left, Right, Home, End and Delete are extended keys and they + are not available if vifm is compiled with --disable-extended-keys + option. + + Esc, Ctrl-C + leave command line mode, cancels input. Cancelled input is + saved into appropriate history and can be recalled later. + + Ctrl-M, Enter + execute command and leave command line mode. + + Ctrl-I, Tab + complete command or its argument. + + Shift-Tab + complete in reverse order. + + Ctrl-_ stop completion and return original input. + + Ctrl-B, Left + move cursor to the left. + + Ctrl-F, Right + move cursor to the right. + + Ctrl-A, Home + go to line beginning. + + Ctrl-E, End + go to line end. + + Alt-B go to the beginning of previous word. + + Alt-F go to the end of next word. + + Ctrl-U remove characters from cursor position till the beginning of + line. + + Ctrl-K remove characters from cursor position till the end of line. + + Ctrl-H, Backspace + remove character before the cursor. + + Ctrl-D, Delete + remove character under the cursor. + + Ctrl-W remove characters from cursor position till the beginning of + previous word. + + Alt-D remove characters from cursor position till the beginning of + next word. + + Ctrl-T swap the order of current and previous character and move cursor + forward or, if cursor past the end of line, swap the order of + two last characters in the line. + + Alt-. insert last part of previous command to current cursor position. + Each next call will insert last part of older command. + + Ctrl-G edit command-line content in external editor. See "Command line + editing" section for details. + + Ctrl-N recall more recent command-line from history. + + Ctrl-P recall older command-line from history. + + Up recall more recent command-line from history, that begins as the + current command-line. + + Down recall older command-line from history, that begins as the cur- + rent command-line. + + Ctrl-] trigger abbreviation expansion. + +Pasting special values + The shortcuts listed below insert specified values into current cursor + position. Last key of every shortcut references value that it inserts: + - c - [c]urrent file + - d - [d]irectory path + - e - [e]xtension of a file name + - r - [r]oot part of a file name + - t - [t]ail part of directory path + + - a - [a]utomatic filter + - m - [m]anual filter + - = - local filter, which is bound to "=" in normal mode + + Values related to filelist in current pane are available through Ctrl-X + prefix, while values from the other pane have doubled Ctrl-X key as + their prefix (doubled Ctrl-X is presumably easier to type than upper- + case letters; it's still easy to remap the keys to correspond to names + of similar macros). + + Ctrl-X c + name of the current file of the active pane. + + Ctrl-X d + path to the current directory of the active pane. + + Ctrl-X e + extension of the current file of the active pane. + + Ctrl-X r + name root of current file of the active pane. + + Ctrl-X t + the last component of path to the current directory of the + active pane. + + Ctrl-X Ctrl-X c + name of the current file of the inactive pane. + + Ctrl-X Ctrl-X d + path to the current directory of the inactive pane. + + Ctrl-X Ctrl-X e + extension of the current file of the inactive pane. + + Ctrl-X Ctrl-X r + name root of current file of the inactive pane. + + Ctrl-X Ctrl-X t + the last component of path to the current directory of the inac- + tive pane. + + + Ctrl-X a + value of automatic filter of the active pane. + + Ctrl-X m + value of manual filter of the active pane. + + Ctrl-X = + value of local filter of the active pane. + + + Ctrl-X / + last pattern from search history. + +Command line editing + vifm provides a facility to edit several kinds of data, that is usually + edited in command-line mode, in external editor (using command speci- + fied by 'vicmd' or 'vixcmd' option). This has at least two advantages + over built-in command-line mode: + - one can use full power of Vim to edit text; + - finding and reusing history entries becomes possible. + + The facility is supported by four input submodes of the command-line: + - command; + - forward search; + - backward search; + - file rename (see description of cw and cW normal mode keys). + + Editing command-line using external editor is activated by the Ctrl-G + shortcut. It's also possible to do almost the same from Normal and + Visual modes using q:, q/ and q? commands. + + Temporary file created for the purpose of editing the line has the fol- + lowing structure: + + 1. First line, which is either empty or contains text already entered + in command-line. + + 2. 2nd and all other lines with history items starting with the most + recent one. Altering this lines in any way won't change history + items stored by vifm. + + After editing application is finished the first line of the file is + taken as the result of operation, when the application returns zero + exit code. If the application returns an error (see :cquit command in + Vim), all the edits made to the file are ignored, but the initial value + of the first line is saved in appropriate history. + +More Mode + This is the mode that appears when status bar content is so big that it + doesn't fit on the screen. One can identify the mode by "-- More --" + message at the bottom. + + The following keys are handled in this mode: + + + Enter, Ctrl-J, j or Down + scroll one line down. + + Backspace, k or Up + scroll one line up. + + + d scroll one page (half of a screen) down. + + u scroll one page (half of a screen) up. + + + Space, f or PageDown + scroll down a screen. + + b or PageUp + scroll up a screen. + + + G scroll to the bottom. + + g scroll to the top. + + + q, Escape or Ctrl-C + quit the mode. + + : switch to command-line mode. + +Commands + Commands are executed with :command_name<Enter> + + Commented out lines should start with the double quote symbol ("), + which may be preceded by whitespace characters intermixed with colons. + Inline comments can be added at the end of the line after double quote + symbol, only last line of a multi-line command can contain such com- + ment. Not all commands support inline comments as their syntax con- + flicts with names of registers and fields where double quotes are + allowed. + + Most of the commands have two forms: complete and the short one. Exam- + ple: + + :noh[lsearch] + + This means the complete command is nohlsearch, and the short one is + noh. + + Most of command-line commands completely reset selection in the current + view. However, there are several exceptions: + + - `:invert s` most likely leaves some files selected; + + - :normal command (when it doesn't leave command-line mode); + + - :if and :else commands don't affect selection on successful execu- + tion. + + '|' can be used to separate commands, so you can give multiple commands + in one line. If you want to use '|' in an argument, precede it with + '\'. + + These commands see '|' as part of their arguments even when it's + escaped: + + :[range]! + :autocmd + :cabbrev + :cmap + :cnoreabbrev + :cnoremap + :command + :dmap + :dnoremap + :filetype + :fileviewer + :filextype + :map + :mmap + :mnoremap + :nmap + :nnoremap + :noremap + :normal + :qmap + :qnoremap + :vmap + :vnoremap + :wincmd + :windo + :winrun + + To be able to use another command after one of these, wrap it with the + :execute command. An example: + + if filetype('.') == 'reg' | execute '!!echo regular file' | endif + + :[count] + + :number + move to the file number. + :12 would move to the 12th file in the list. + :0 move to the top of the list. + :$ move to the bottom of the list. + + :[count]command + The only builtin :[count]command are :[count]d[elete] and + :[count]y[ank]. + + :d3 would delete three files starting at the current file position + moving down. + + :3d would delete one file at the third line in the list. + + :command [args] + + :[range]!program + execute command via shell. Accepts macros. + + :[range]!command & + + same as above, but the command is run in the background using vifm's + means. + + Programs that write to stdout like "ls" create an error message showing + partial output of the command. + + Note the space before ampersand symbol, if you omit it, command will be + run in the background using job control of your shell. + + Accepts macros. + + :!! + + :[range]!!command + same as :!, but pauses before returning. + + :!! repeat the last command. + + :alink + + :[range]alink[!?] + create absolute symbolic links to files in directory of inactive + view. With "?" prompts for destination file names in an edi- + tor. "!" forces overwrite. + + :[range]alink[!] path + create absolute symbolic links to files in directory specified + by the path (absolute or relative to directory of inactive + view). + + :[range]alink[!] name1 name2... + create absolute symbolic links of files in directory of other + view giving each next link a corresponding name from the argu- + ment list. + + :apropos + + :apropos keyword... + create a menu of items returned by the apropos command. Select- + ing an item in the menu opens corresponding man page. By + default the command relies on the external "apropos" utility, + which can be customized by altering value of the 'aproposprg' + option. + + :autocmd + + :au[tocmd] {event} {pat} {cmd} + register autocommand for the {event}, which can be: + - DirEnter - performed on entering a directory + Event name is case insensitive. + + {pat} is a comma-separated list of modified globs patterns, + which can contain tilde or environment variables. All paths use + slash ('/') as directory separator. The pattern can start with + a '!', which negates it. Patterns that do not contain slashes + are matched against the last item of the path only (e.g. "dir" + in "/path/dir"). Literal comma can be entered by doubling it. + Two modifications to globs matching are as follows: + - * - never matches a slash (i.e., can signify single direc- + tory level) + - ** - matches any character (i.e., can match path of arbi- + trary depth) + + {cmd} is a :command or several of them separated with '|'. + + Examples of patterns: + - conf.d - matches conf.d directory anywhere + - *.d - matches directories ending with ".d" anywhere + - **.git - matches something.git, but not .git anywhere + - **/.git/** - matches /path/.git/objects, but not /path/.git + - **/.git/**/ - matches /path/.git/ only (because of trailing + slash) + - /etc/* - matches /etc/conf.d/, /etc/X11, but not + /etc/X11/fs + - /etc/**/*.d - matches /etc/conf.d, /etc/X11/conf.d, etc. + - /etc/**/* - matches /etc/ itself and any file below it + - /etc/**/** - matches /etc/ itself and any file below it + + :au[tocmd] [{event}] [{pat}] + list those autocommands that match given event-pattern combina- + tion. + {event} and {pat} can be omitted to list all autocommands. To + list any autocommands for specific pattern one can use * place- + holder in place of {event}. + + :au[tocmd]! [{event}] [{pat}] + remove autocommands that match given event-pattern combination. + Syntax is the same as for listing above. + + :apropos + repeat last :apropos command. + + :bmark + + :bmark tag1 [tag2 [tag3...]] + bookmark current directory with specified tags. + + :bmark! path tag1 [tag2 [tag3...]] + same as :bmark, but allows bookmarking specific path instead of + current directory. This is for use in vifmrc and for bookmark- + ing files. + + Path can contain macros that expand to single path (%c, %C, %d, + %D) or those that can expand to multiple paths, but contain only + one (%f, %F, %rx). The latter is done for convenience on using + the command interactively. Complex macros that include spaces + (e.g. "%c:gs/ /_") should be escaped. + + :bmarks + + :bmarks + display all bookmarks in a menu. + + :bmarks [tag1 [tag2...]] + display menu of bookmarks that include all of the specified + tags. + + :bmgo + + :bmgo [tag1 [tag2...]] + when there are more than one match acts exactly like :bmarks, + otherwise navigates to single match immediately (and fails if + there is no match). + + :cabbrev + + :ca[bbrev] + display menu of command-line mode abbreviations. + + :ca[bbrev] lhs-prefix + display command-line mode abbreviations which left-hand side + starts with specified prefix. + + :ca[bbrev] lhs rhs + register new or overwrites existing abbreviation for command- + line mode. rhs can contain spaces and any special sequences + accepted in rhs of mappings (see "Mappings" section below). + Abbreviations are expanded non-recursively. + + :cnoreabbrev + + :cnorea[bbrev] + display menu of command-line mode abbreviations. + + :cnorea[bbrev] lhs-prefix + display command-line mode abbreviations which left-hand side + starts with specified prefix. + + :cnorea[bbrev] lhs rhs + same as :cabbrev, but mappings in rhs are ignored during expan- + sion. + + :cd + + :cd or :cd ~ or :cd $HOME + change to home directory. + + :cd - go to the last visited directory. + + :cd ~/dir + change directory to ~/dir. + + :cd /curr/dir /other/dir + change directory of the current pane to /curr/dir and directory + of the other pane to /other/dir. Relative paths are assumed to + be relative to directory of current view. Command won't fail if + one of directories is invalid. All forms of the command accept + macros. + + :cd! /dir + same as :cd /dir /dir. + + :change + + :c[hange] + create a menu window to alter a files properties. + + :chmod + + :[range]chmod + display file attributes (permission on *nix and properties on + Windows) change dialog. + + :[range]chmod[!] arg... + only for *nix + change permissions for files. See `man 1 chmod` for arg format. + "!" means set permissions recursively. + + :chown + + :[range]chown + only for *nix + same as co key in normal mode. + + :[range]chown [user][:][group] + only for *nix + change owner and/or group of files. Operates on directories + recursively. + + :clone + + :[range]clone[!?] + clones files in current directory. With "?" vifm will open vi + to edit file names. "!" forces overwrite. Macros are expanded. + + :[range]clone[!] path + clones files to directory specified with the path (absolute or + relative to current directory). "!" forces overwrite. Macros + are expanded. + + :[range]clone[!] name1 name2... + clones files in current directory giving each next clone a cor- + responding name from the argument list. "!" forces overwrite. + Macros are expanded. + + :colorscheme + + :colo[rscheme]? + print current color scheme name on the status bar. + + :colo[rscheme] + display a menu with a list of available color schemes. You can + choose primary color scheme here. It is used for view if no + directory specific colorscheme fits current path. It's also + used to set border color (except view titles) and colors in + menus and dialogs. + + :colo[rscheme] color_scheme_name + change primary color scheme to color_scheme_name. In case of + errors (e.g. some colors are not supported by terminal) either + nothing is changed or color scheme is reset to builtin colors to + ensure that TUI is left in a usable state. + + :colo[rscheme] color_scheme_name directory + associate directory with the color scheme. The directory argu- + ment can be either absolute or relative path when :colorscheme + command is executed from command line, but mandatory should be + an absolute path when the command is executed in scripts loaded + at startup (until vifm is completely loaded). + + :comclear + + :comc[lear] + remove all user defined commands. + + :command + + :com[mand] + display a menu of user commands. + + :com[mand] beginning + display user defined commands that start with the beginning. + + :com[mand] name action + set a new user command. + Trying to use a reserved command name will result in an error + message. + Use :com[mand]! to overwrite a previously set command. + Unlike vim user commands do not have to start with a capital + letter. User commands are run in a shell by default. To run a + command in the background you must set it as a background com- + mand with & at the end of the commands action (:com rm rm %f &). + Command name cannot contain numbers or special symbols (except + '?' and '!'). + + :com[mand] name /pattern + set search pattern. + + :com[mand] name =pattern + set local filter value. + + :com[mand] name filter{:filter args} + set file name filter (see :filter command description). For + example: + + " display only audio files + :command onlyaudio filter/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i + " display everything except audio files + :command noaudio filter!/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i + + :com[mand] cmd :commands + set kind of an alias for internal command (like in a shell). + Passes range given to alias to an aliased command, so running + :%cp after + :command cp :copy %a + equals + :%copy + + :compare + + :compare [byname | bysize | bycontents | listall | listunique | + listdups | ofboth | ofone | groupids | grouppaths | skipempty]... + compare files in one or two views according the arguments. The + default is "bycontents listall ofboth grouppaths". See "Compare + views" section below for details. Tree structure is incompati- + ble with alternative representations, so values of 'lsview' and + 'millerview' options are ignored. + + :copen + + :cope[n] + opens menu with contents of the last displayed menu with naviga- + tion to files by default, if any. + + :copy + + :[range]co[py][!?][ &] + copy files to directory of other view. With "?" prompts for + destination file names in an editor. "!" forces overwrite. + + :[range]co[py][!] path[ &] + copy files to directory specified with the path (absolute or + relative to directory of other view). "!" forces overwrite. + + :[range]co[py][!] name1 name2...[ &] + copy files to directory of other view giving each next file a + corresponding name from the argument list. "!" forces over- + write. + + :cquit + + :cq[uit][!] + same as :quit, but also aborts directory choosing via + --choose-dir (empties output file) and returns non-zero exit + code. + + :cunabbrev + + :cuna[bbrev] lhs + unregister command-line mode abbreviation by its lhs. + + :cuna[bbrev] rhs + unregister command-line mode abbreviation by its rhs, so that + abbreviation could be removed even after expansion. + + :delbmarks + + :delbmarks + remove bookmarks from current directory. + + :delbmarks tag1 [tag2 [tag3...]] + remove set of bookmarks that include all of the specified tags. + + :delbmarks! + remove all bookmarks. + + :delbmarks! path1 [path2 [path3...]] + remove bookmarks of listed paths. + + :delcommand + + :delc[ommand] user_command + remove user defined command named user_command. + + :delete + + :[range]d[elete][!][ &] + delete selected file or files. "!" means complete removal + (omitting trash). + + :[range]d[elete][!] [reg] [count][ &] + delete selected or [count] files to the reg register. "!" means + complete removal (omitting trash). + + :delmarks + + :delm[arks]! + delete all marks. + + :delm[arks] marks ... + delete specified marks, each argument is treated as a set of + marks. + + :display + + :di[splay] + display menu with registers content. + + :di[splay] list ... + display the contents of the numbered and named registers that + are mentioned in list (for example "az to display "", "a and "z + content). + + :dirs + + :dirs display directory stack. + + :echo + + :ec[ho] [<expr>...] + evaluate each argument as an expression and output them sepa- + rated with a space. See help on :let command for a definition + of <expr>. + + :edit + + :[range]e[dit] [file...] + open selected or passed file(s) in editor. Macros and environ- + ment variables are expanded. + + :else + + :el[se] + execute commands until next matching :endif if all other condi- + tions didn't match. See also help on :if and :endif commands. + + :elseif + + :elsei[f] {expr1} + execute commands until next matching :elseif, :else or :endif if + conditions of previous :if and :elseif branches were evaluated + to zero. See also help on :if and :endif commands. + + :empty + + :empty permanently remove files from all existing non-empty trash + directories (see "Trash directory" section below). Trash direc- + tories which are specified via %r and/or %u also get deleted + completely. Also remove all operations from undolist that have + no sense after :empty and remove all records about files located + inside directories from all registers. Removal is performed as + background task with undetermined amount of work and can be + checked via :jobs menu. + + :endif + + :en[dif] + end conditional block. See also help on :if and :else commands. + + :execute + + :exe[cute] [<expr>...] + evaluate each argument as an expression and join results sepa- + rated by a space to get a single string which is then executed + as a command-line command. See help on :let command for a defi- + nition of <expr>. + + :exit + + :exi[t][!] + same as :quit. + + :file + + :f[ile][ &] + display menu of programs set for the file type of the current + file. " &" forces running associated program in background. + + :f[ile] arg[ &] + run associated command that begins with the arg skipping opening + menu. " &" forces running associated program in background. + + :filetype + + :filet[ype] pattern-list [{descr}]def_prog[ &],[{descr}]prog2[ &],... + associate given program list to each of the patterns. Associ- + ated program (command) is used by handlers of l and Enter keys + (and also in the :file menu). If you need to insert comma into + command just double it (",,"). Space followed by an ampersand + as two last characters of a command means running of the command + in the background. Optional description can be given to each + command to ease understanding of what command will do in the + :file menu. Vifm will try the rest of the programs for an asso- + ciation when the default isn't found. When program entry + doesn't contain any of vifm macros, name of current file is + appended as if program entry ended with %c macro on *nix and %"c + on Windows. On Windows path to executables containing spaces + can (and should be for correct work with such paths) be double + quoted. See "Patterns" section below for pattern definition. + See also "Automatic FUSE mounts" section below. Example for zip + archives and several actions: + + filetype *.zip,*.jar,*.war,*.ear + \ {Mount with fuse-zip} + \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR, + \ {View contents} + \ zip -sf %c | less, + \ {Extract here} + \ tar -xf %c, + + Note that on OS X when `open` is used to call an app, vifm is + unable to check whether that app is actually available. So if + automatic skipping of programs that aren't there is desirable, + `open` should be replaced with an actual command. + + :filet[ype] filename + list (in menu mode) currently registered patterns that match + specified file name. Same as ":filextype filename". + + :filextype + + :filex[type] pattern-list [{ description }] def_program,program2,... + same as :filetype, but this command is ignored if not running in + X. In X :filextype is equal to :filetype. See "Patterns" sec- + tion below for pattern definition. See also "Automatic FUSE + mounts" section below. + + For example, consider the following settings (the order might + seem strange, but it's for the demonstration purpose): + + filetype *.html,*.htm + \ {View in lynx} + \ lynx + filextype *.html,*.htm + \ {Open with dwb} + \ dwb %f %i &, + filetype *.html,*.htm + \ {View in links} + \ links + filextype *.html,*.htm + \ {Open with firefox} + \ firefox %f &, + \ {Open with uzbl} + \ uzbl-browser %f %i &, + + If you're using vifm inside a terminal emulator that is running + in graphical environment (when X is used on *nix; always on Win- + dows), vifm attempts to run application in this order: + + 1. lynx + 2. dwb + 3. links + 4. firefox + 5. uzbl + + If there is no graphical environment (checked presence of $DIS- + PLAY environment variable on *nix; never happens on Windows), + the list will look like: + + 1. lynx + 2. links + + Just as if all :filextype commands were not there. + + The purpose of such differentiation is to allow comfortable use + of vifm with same settings in desktop environment/through remote + connection (SSH)/in native console. + + Note that on OS X $DISPLAY isn't defined unless you define it, + so :filextype should be used only if you set $DISPLAY in some + way. + + :filext[ype] filename + list (in menu mode) currently registered patterns that match + specified file name. Same as ":filetype filename". + + :fileviewer + + :filev[iewer] pattern-list command1,command2,... + register specified list of commands as viewers for each of the + patterns. Viewer is a command which output is captured and dis- + played in one of the panes of vifm after pressing "e" or running + :view command. When the command doesn't contain any of vifm + macros, name of current file is appended as if command ended + with %c macro. Comma escaping and missing commands processing + rules as for :filetype apply to this command. See "Patterns" + section below for pattern definition. + + Example for zip archives: + + fileviewer *.zip,*.jar,*.war,*.ear zip -sf %c, echo "No zip to preview:" + + :filev[iewer] filename + list (in menu mode) currently registered patterns that match + specified filename. + + :filter + + :filter[!] {pattern} + filter files matching the pattern out of directory listings. + '!' controls state of filter inversion after updating filter + value (see also 'cpoptions' description). Filter is matched + case sensitively on *nix and case insensitively on Windows. See + "File Filters" and "Patterns" sections. + + Example: + + " filter all files ending in .o from the filelist. + :filter /.o$/ + + + :filter[!] {empty-pattern} + same as above, but use last search pattern as pattern value. + + Example: + + :filter //I + + + :filter + reset filter (set it to an empty string) and show all files. + + :filter! + same as :invert. + + :filter? + show information on local, name and auto filters. + + :find + + :[range]fin[d] pattern + display results of find command in the menu. Searches among + selected files if any. Accepts macros. By default the command + relies on the external "find" utility, which can be customized + by altering value of the 'findprg' option. + + :[range]fin[d] -opt... + same as :find above, but user defines all find arguments. + Searches among selected files if any. + + :[range]fin[d] path -opt... + same as :find above, but user defines all find arguments. + Ignores selection and range. + + :[range]fin[d] + repeat last :find command. + + :finish + + :fini[sh] + stop sourcing a script. Can only be used in a vifm script file. + This is a quick way to skip the rest of the file. + + :goto + + :go[to] + change directory if necessary and put specified path under the + cursor. The path should be existing non-root path. Macros and + environment variables are expanded. + + :grep + + :[range]gr[ep][!] pattern + will show results of grep command in the menu. Add "!" to + request inversion of search (look for lines that do not match + pattern). Searches among selected files if any and no range + given. Ignores binary files by default. By default the command + relies on the external "grep" utility, which can be customized + by altering value of the 'grepprg' option. + + :[range]gr[ep][!] -opt... + same as :grep above, but user defines all grep arguments, which + are not escaped. Searches among selected files if any. + + :[range]gr[ep][!] + repeats last :grep command. "!" of this command inverts "!" in + repeated command. + + :help + + :h[elp] + show the help file. + + :h[elp] argument + is the same as using ':h argument' in vim. Use vifm-<something> + to get help on vifm (tab completion works). This form of the + command doesn't work when 'vimhelp' option is off. + + :highlight + + :hi[ghlight] + display information about all highlight groups active at the + moment. + + :hi[ghlight] clear + reset all highlighting to builtin defaults and removed all file- + name-specific rules. + + :hi[ghlight] clear ( {pat1,pat2,...} | /regexp/ ) + removes specified rule. + + :hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/ ) + display information on given highlight group or file name pat- + tern of color scheme used in the active view. + + :hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/[iI] ) + cterm=style | ctermfg=color | ctermbg=color + set style (cterm), foreground (ctermfg) or/and background + (ctermbg) parameters of highlight group or file name pattern for + color scheme used in the active view. + + All style values as well as color names are case insensitive. + + Available style values (some of them can be combined): + - bold + - underline + - reverse or inverse + - standout + - italic (on unsupported systems becomes reverse) + - none + + Available group-name values: + - Win - color of all windows (views, dialogs, menus) and default color + for their content (e.g. regular files in views) + - AuxWin - color of auxiliary areas of windows + - Border - color of vertical parts of the border + - TabLine - tab line color + - TabLineSel - color of the tip of selected tab + - TopLineSel - top line color of the current pane + - TopLine - top line color of the other pane + - CmdLine - the command line/status bar color + - ErrorMsg - color of error messages in the status bar + - StatusLine - color of the line above the status bar + - JobLine - color of job line that appears above the status line + - WildMenu - color of the wild menu items + - SuggestBox - color of key suggestion box + - CurrLine - line at cursor position in active view + - OtherLine - line at cursor position in inactive view + - Selected - color of selected files + - Directory - color of directories + - Link - color of symbolic links in the views + - BrokenLink - color of broken symbolic links + - Socket - color of sockets + - Device - color of block and character devices + - Executable - color of executable files + - Fifo - color of fifo pipes + - CmpMismatch - color of mismatched files in side-by-side comparison + by path + - User1..User9 - 9 colors which can be used via %* 'statusline' macro + + Available colors: + - -1 or default or none - default or transparent + - black and lightblack + - red and lightred + - green and lightgreen + - yellow and lightyellow + - blue and lightblue + - magenta and lightmagenta + - cyan and lightcyan + - white and lightwhite + - 0-255 - corresponding colors from 256-color palette + + Light versions of colors are regular colors with bold attribute set. + So order of arguments of :highlight command is important and it's bet- + ter to put "cterm" in front of others to prevent it from overwriting + attributes set by "ctermfg" or "ctermbg" arguments. + + For convenience of color scheme authors xterm-like names for 256 color + palette is also supported. The mapping is taken from + http://vim.wikia.com/wiki/Xterm256_color_names_for_console_Vim Dupli- + cated entries were altered by adding an underscore followed by numeri- + cal suffix. + + 0 Black 86 Aquamarine1 172 Orange3 + 1 Red 87 DarkSlateGray2 173 LightSalmon3_2 + 2 Green 88 DarkRed_2 174 LightPink3 + 3 Yellow 89 DeepPink4_2 175 Pink3 + 4 Blue 90 DarkMagenta 176 Plum3 + 5 Magenta 91 DarkMagenta_2 177 Violet + 6 Cyan 92 DarkViolet 178 Gold3_2 + 7 White 93 Purple 179 LightGoldenrod3 + 8 LightBlack 94 Orange4_2 180 Tan + 9 LightRed 95 LightPink4 181 MistyRose3 + 10 LightGreen 96 Plum4 182 Thistle3 + 11 LightYellow 97 MediumPurple3 183 Plum2 + 12 LightBlue 98 MediumPurple3_2 184 Yellow3_2 + 13 LightMagenta 99 SlateBlue1 185 Khaki3 + 14 LightCyan 100 Yellow4 186 LightGoldenrod2 + 15 LightWhite 101 Wheat4 187 LightYellow3 + 16 Grey0 102 Grey53 188 Grey84 + 17 NavyBlue 103 LightSlateGrey 189 LightSteelBlue1 + 18 DarkBlue 104 MediumPurple 190 Yellow2 + 19 Blue3 105 LightSlateBlue 191 DarkOliveGreen1 + 20 Blue3_2 106 Yellow4_2 192 DarkOliveG- + reen1_2 + 21 Blue1 107 DarkOliveGreen3 193 DarkSeaGreen1_2 + 22 DarkGreen 108 DarkSeaGreen 194 Honeydew2 + 23 DeepSkyBlue4 109 LightSkyBlue3 195 LightCyan1 + 24 DeepSkyBlue4_2 110 LightSkyBlue3_2 196 Red1 + 25 DeepSkyBlue4_3 111 SkyBlue2 197 DeepPink2 + 26 DodgerBlue3 112 Chartreuse2_2 198 DeepPink1 + 27 DodgerBlue2 113 DarkOliveGreen3_2 199 DeepPink1_2 + 28 Green4 114 PaleGreen3_2 200 Magenta2_2 + 29 SpringGreen4 115 DarkSeaGreen3 201 Magenta1 + 30 Turquoise4 116 DarkSlateGray3 202 OrangeRed1 + 31 DeepSkyBlue3 117 SkyBlue1 203 IndianRed1 + 32 DeepSkyBlue3_2 118 Chartreuse1 204 IndianRed1_2 + 33 DodgerBlue1 119 LightGreen_2 205 HotPink + 34 Green3 120 LightGreen_3 206 HotPink_2 + 35 SpringGreen3 121 PaleGreen1 207 MediumOrchid1_2 + 36 DarkCyan 122 Aquamarine1_2 208 DarkOrange + 37 LightSeaGreen 123 DarkSlateGray1 209 Salmon1 + 38 DeepSkyBlue2 124 Red3 210 LightCoral + 39 DeepSkyBlue1 125 DeepPink4_3 211 PaleVioletRed1 + 40 Green3_2 126 MediumVioletRed 212 Orchid2 + 41 SpringGreen3_2 127 Magenta3 213 Orchid1 + 42 SpringGreen2 128 DarkViolet_2 214 Orange1 + 43 Cyan3 129 Purple_2 215 SandyBrown + 44 DarkTurquoise 130 DarkOrange3 216 LightSalmon1 + 45 Turquoise2 131 IndianRed 217 LightPink1 + 46 Green1 132 HotPink3 218 Pink1 + 47 SpringGreen2_2 133 MediumOrchid3 219 Plum1 + 48 SpringGreen1 134 MediumOrchid 220 Gold1 + 49 MediumSpringGreen 135 MediumPurple2 221 LightGolden- + rod2_2 + 50 Cyan2 136 DarkGoldenrod 222 LightGolden- + rod2_3 + 51 Cyan1 137 LightSalmon3 223 NavajoWhite1 + 52 DarkRed 138 RosyBrown 224 MistyRose1 + 53 DeepPink4 139 Grey63 225 Thistle1 + 54 Purple4 140 MediumPurple2_2 226 Yellow1 + 55 Purple4_2 141 MediumPurple1 227 LightGoldenrod1 + 56 Purple3 142 Gold3 228 Khaki1 + 57 BlueViolet 143 DarkKhaki 229 Wheat1 + 58 Orange4 144 NavajoWhite3 230 Cornsilk1 + 59 Grey37 145 Grey69 231 Grey100 + 60 MediumPurple4 146 LightSteelBlue3 232 Grey3 + 61 SlateBlue3 147 LightSteelBlue 233 Grey7 + 62 SlateBlue3_2 148 Yellow3 234 Grey11 + 63 RoyalBlue1 149 DarkOliveGreen3_3 235 Grey15 + 64 Chartreuse4 150 DarkSeaGreen3_2 236 Grey19 + 65 DarkSeaGreen4 151 DarkSeaGreen2 237 Grey23 + 66 PaleTurquoise4 152 LightCyan3 238 Grey27 + 67 SteelBlue 153 LightSkyBlue1 239 Grey30 + 68 SteelBlue3 154 GreenYellow 240 Grey35 + 69 CornflowerBlue 155 DarkOliveGreen2 241 Grey39 + 70 Chartreuse3 156 PaleGreen1_2 242 Grey42 + 71 DarkSeaGreen4_2 157 DarkSeaGreen2_2 243 Grey46 + 72 CadetBlue 158 DarkSeaGreen1 244 Grey50 + 73 CadetBlue_2 159 PaleTurquoise1 245 Grey54 + 74 SkyBlue3 160 Red3_2 246 Grey58 + 75 SteelBlue1 161 DeepPink3 247 Grey62 + 76 Chartreuse3_2 162 DeepPink3_2 248 Grey66 + 77 PaleGreen3 163 Magenta3_2 249 Grey70 + 78 SeaGreen3 164 Magenta3_3 250 Grey74 + 79 Aquamarine3 165 Magenta2 251 Grey78 + 80 MediumTurquoise 166 DarkOrange3_2 252 Grey82 + 81 SteelBlue1_2 167 IndianRed_2 253 Grey85 + 82 Chartreuse2 168 HotPink3_2 254 Grey89 + 83 SeaGreen2 169 HotPink2 255 Grey93 + 84 SeaGreen1 170 Orchid + 85 SeaGreen1_2 171 MediumOrchid1 + + There are two colors (foreground and background) and only one bold + attribute. Thus single bold attribute affects both colors when + "reverse" attribute is used in vifm run inside terminal emulator. At + the same time linux native console can handle boldness of foreground + and background colors independently, but for consistency with terminal + emulators this is available only implicitly by using light versions of + colors. This behaviour might be changed in the future. + + Although vifm supports 256 colors in a sense they are supported by UI + drawing library, whether you will be able to use all of them highly + depends on your terminal. To set up terminal properly, make sure that + $TERM in the environment you run vifm is set to name of 256-color ter- + minal (on *nixes it can also be set via X resources), e.g. + xterm-256color. One can find list of available terminal names by list- + ing /usr/lib/terminfo/. Number of colors supported by terminal with + current settings can be checked via "tput colors" command. + + Here is the hierarchy of highlight groups, which you need to know for + using transparency: + JobLine + SuggestBox + StatusLine + WildMenu + User1..User9 + Border + CmdLine + ErrorMsg + Win + AuxWin + File name specific highlights + Directory + Link + BrokenLink + Socket + Device + Fifo + Executable + Selected + CurrLine + OtherLine + TopLine + TopLineSel + TabLine + TabLineSel + + "none" means default terminal color for highlight groups at the first + level of the hierarchy and transparency for all others. + + Here file name specific highlights mean those configured via globs ({}) + or regular expressions (//). At most one of them is applied per file + entry, namely the first that matches file name, hence order of :high- + light commands might be important in certain cases. + + :history + + :his[tory] + creates a pop-up menu of directories visited. + + :his[tory] x + x can be: + d[ir] or . show directory history. + c[md] or : show command line history. + s[earch] or / show search history and search forward on l key. + f[search] or / show search history and search forward on l key. + b[search] or ? show search history and search backward on l key. + i[nput] or @ show prompt history (e.g. on one file renaming). + fi[lter] or = show filter history (see description of the "=" + normal mode command). + + :histnext + + :histnext + same as <c-i>. The main use case for this command is to work + around the common pain point of <tab> and <c-i> being the same + ASCII character: one could alter the terminal emulator settings + to emit, for example, the `F1` keycode when Ctrl-I is pressed, + then `:noremap <f1> :histnext<cr>` in vifm, add "t" flag to the + 'cpoptions', and thus have both <c-i> and <tab> working as + expected. + + :histprev + + :histprev + same as <c-o>. + + :if + + :if {expr1} + starts conditional block. Commands are executed until next + matching :elseif, :else or :endif command if {expr1} evaluates + to non-zero, otherwise they are ignored. See also help on :else + and :endif commands. + + Example: + + if $TERM == 'screen.linux' + highlight CurrLine ctermfg=lightwhite ctermbg=lightblack + elseif $TERM == 'tmux' + highlight CurrLine cterm=reverse ctermfg=black ctermbg=white + else + highlight CurrLine cterm=bold,reverse ctermfg=black ctermbg=white + endif + + :invert + + :invert [f] + invert file name filter. + + :invert? [f] + show current filter state. + + :invert s + invert selection. + + :invert o + invert sorting order of the primary sorting key. + + :invert? o + show sorting order of the primary sorting key. + + :jobs + + :jobs shows menu of current backgrounded processes. + + :let + + :let $ENV_VAR = <expr> + sets environment variable. Warning: setting environment vari- + able to an empty string on Windows removes it. + + :let $ENV_VAR .= <expr> + append value to environment variable. + + :let &[l:|g:]opt = <expr> + sets option value. + + :let &[l:|g:]opt .= <expr> + append value to string option. + + :let &[l:|g:]opt += <expr> + increasing option value, adding sub-values. + + :let &[l:|g:]opt -= <expr> + decreasing option value, removing sub-values. + + Where <expr> could be a single-quoted string, double-quoted string, an + environment variable, function call or a concatanation of any of them + in any order using the '.' operator. Any whitespace is ignored. + + :locate + + :locate filename + use "locate" command to create a menu of filenames. Selecting a + file from the menu will reload the current file list in vifm to + show the selected file. By default the command relies on the + external "locate" utility (it's assumed that its database is + already built), which can be customized by altering value of the + 'locateprg' option. + + :locate + repeats last :locate command. + + :ls + + :ls lists windows of active terminal multiplexer (only when terminal + multiplexer is used). This is achieved by issuing proper com- + mand for active terminal multiplexer, thus the list is not han- + dled by vifm. + + :lstrash + + :lstrash + displays a menu with list of files in trash. Each element of + the list is original path of a deleted file, thus the list can + contain duplicates. + + :mark + + :[range]ma[rk][?] x [/full/path] [filename] + Set mark x (a-zA-Z0-9) at /full/path and filename. By default + current directory is being used. If no filename was given and + /full/path is current directory then last file in [range] is + used. Using of macros is allowed. Question mark will stop com- + mand from overwriting existing marks. + + :marks + + :marks create a pop-up menu of marks. + + :marks list ... + display the contents of the marks that are mentioned in list. + + :media + + :media only for *nix + display media management menu. See also 'mediaprg' option. + + :messages + + :mes[sages] + shows previously given messages (up to 50). + + :mkdir + + :[line]mkdir[!] dir ... + create directories at specified paths. The [line] can be used + to pick node in a tree-view. "!" means make parent directories + as needed. Macros are expanded. + + :move + + :[range]m[ove][!?][ &] + move files to directory of other view. With "?" prompts for + destination file names in an editor. "!" forces overwrite. + + :[range]m[ove][!] path[ &] + move files to directory specified with the path (absolute or + relative to directory of other view). "!" forces overwrite. + + :[range]m[ove][!] name1 name2...[ &] + move files to directory of other view giving each next file a + corresponding name from the argument list. "!" forces over- + write. + + :nohlsearch + + :noh[lsearch] + clear selection in current pane. + + :normal + + :norm[al][!] commands + execute normal mode commands. If "!" is used, user defined map- + pings are ignored. Unfinished last command is aborted as if + <esc> or <c-c> was typed. A ":" should be completed as well. + Commands can't start with a space, so put a count of 1 (one) + before it. + + :only + + :on[ly] + switch to a one window view. + + :popd + + :popd remove pane directories from stack. + + :pushd + + :pushd[!] /curr/dir [/other/dir] + add pane directories to stack and process arguments like :cd + command. + + :pushd exchange the top two items of the directory stack. + + :put + + :[line]pu[t][!] [reg] [ &] + puts files from specified register (" by default) into current + directory. The [line] can be used to pick node in a tree-view. + "!" moves files "!" moves files from their original location + instead of copying them. During this operation no confirmation + dialogs will be shown, all checks are performed beforehand. + + :pwd + + :pw[d] show the present working directory. + + :qall + + :qa[ll][!] + exit vifm (add ! to skip saving changes and checking for active + backgrounded commands). + + :quit + + :q[uit][!] + if there is more than one tab, close the current one, otherwise + exit vifm (add ! to skip saving changes and checking for active + backgrounded commands). + + :redraw + + :redr[aw] + redraw the screen immediately. + + :registers + + :reg[isters] + display menu with registers content. + + :reg[isters] list ... + display the contents of the numbered and named registers that + are mentioned in list (for example "az to display "", "a and "z + content). + + :regular + + :regular + + switch to regular view leaving custom view. + :rename + + :[range]rename[!] + rename files using vi to edit names. ! means go recursively + through directories. + + :[range]rename name1 name2... + rename each of selected files to a corresponding name. + + :restart + + :restart + free a lot of things (histories, commands, etc.), reread + vifminfo and vifmrc files and run startup commands passed in the + argument list, thus losing all unsaved changes (e.g. recent his- + tory or keys mapped in current session). + + :restore + + :[range]restore + restore file from trash directory, doesn't work outside one of + trash directories. See "Trash directory" section below. + + :rlink + + :[range]rlink[!?] + create relative symbolic links to files in directory of other + view. With "?" prompts for destination file names in an editor. + "!" forces overwrite. + + :[range]rlink[!] path + create relative symbolic links of files in directory specified + with the path (absolute or relative to directory of other view). + "!" forces overwrite. + + :[range]rlink[!] name1 name2... + create relative symbolic links of files in directory of other + view giving each next link a corresponding name from the argu- + ment list. "!" forces overwrite. + + :screen + + :screen + toggle whether to use the terminal multiplexer or not. + A terminal multiplexer uses pseudo terminals to allow multiple + windows to be used in the console or in a single xterm. Start- + ing vifm from terminal multiplexer with appropriate support + turned on will cause vifm to open a new terminal multiplexer + window for each new file edited or program launched from vifm. + This requires screen version 3.9.9 or newer for the screen -X + argument or tmux (1.8 version or newer is recommended). + + :screen! + enable integration with terminal multiplexers. + + :screen? + display whether integration with terminal multiplexers is + enabled. + + Note: the command is called screen for historical reasons (when tmux + wasn't yet supported) and might be changed in future releases, or get + an alias. + + :select + + :[range]select + select files in the given range (current file if no range is + given). + + :select {pattern} + select files that match specified pattern. Possible {pattern} + forms are described in "Patterns" section below. Trailing slash + for directories is taken into account, so `:select! */ | invert + s` selects only files. + + :select //[iI] + same as item above, but reuses last search pattern. + + :select !{external command} + select files from the list supplied by external command. Files + are matched by full paths, relative paths are converted to abso- + lute ones beforehand. + + :[range]select! [{pattern}] + same as above, but resets previously selected items before pro- + ceeding. + + :set + + :se[t] display all options that differ from their default value. + + :se[t] all + display all options. + + :se[t] opt1=val1 opt2='val2' opt3="val3" ... + sets given options. For local options both values are set. + You can use following syntax: + - for all options - option, option? and option& + - for boolean options - nooption, invoption and option! + - for integer options - option=x, option+=x and option-=x + - for string options - option=x and option+=x + - for string list options - option=x, option+=x and option-=x + - for enumeration options - option=x, option+=x and option-=x + - for set options - option=x, option+=x and option-=x + - for charset options - option=x, option+=x, option-=x and + option^=x + + the meaning: + - option - turn option on (for boolean) or print its value (for + all others) + - nooption - turn option off + - invoption - invert option state + - option! - invert option state + - option? - print option value + - option& - reset option to its default value + - option=x or option:x - set option to x + - option+=x - add/append x to option + - option-=x - remove (or subtract) x from option + - option^=x - toggle x presence among values of the option + + Option name can be prepended and appended by any number of + whitespace characters. + + :setglobal + + :setg[lobal] + display all global options that differ from their default value. + + :setg[lobal] all + display all global options. + + :setg[lobal] opt1=val1 opt2='val2' opt3="val3" ... + same as :set, but changes/prints only global options or global + values of local options. Changes to the latter might be not + visible until directory is changed. + + :setlocal + + :setl[ocal] + display all local options that differ from their default value. + + :setl[ocal] all + display all local options. + + :setl[ocal] opt1=val1 opt2='val2' opt3="val3" ... + same as :set, but changes/prints only local values of local + options. + + :shell + + :sh[ell][!] + start a shell in current directory. "!" suppresses spawning + dedicated window of terminal multiplexer for a shell. To make + vifm adaptive to environment it uses $SHELL if it's defined, + otherwise 'shell' value is used. + + + :siblnext + + :[count]siblnext[!] + + change directory to [count]th next sibling directory after cur- + rent path using value of global sort option of current pane. + "!" enables wrapping. + + For example, say, you're at /boot and root listing starts like + this: + + bin/ + boot/ + dev/ + ... + + Issuing :siblnext will navigate to /dev. + + + :siblprev + + :[count]siblprev[!] + same as :siblnext, but in the opposite direction. + + :sort + + :sor[t] + display dialog with different sorting methods, when one can + select primary sorting key. When 'viewcolumns' options is empty + and 'lsview' is off, changing primary sorting key will also + affect view look (in particular the second column of the view + will be changed). + + :source + + :so[urce] file + read command-line commands from the file. + + :split + + :sp[lit] + switch to a two window horizontal view. + + :sp[lit]! + toggle horizontal window splitting. + + :sp[lit] path + splits the window horizontally to show both file directories. + Also changes other pane to path (absolute or relative to current + directory of active pane). + + :substitute + + :[range]s[ubstitute]/pattern/string/[flags] + for each file in range replace a match of pattern with string. + + String can contain \0...\9 to link to capture groups (\0 - all match, + \1 - first group, etc.). + + Pattern is stored in search history. + + Available flags: + + - i - ignore case (the 'ignorecase' and 'smartcase' options are not + used) + + - I - don't ignore case (the 'ignorecase' and 'smartcase' options are + not used) + + - g - substitute all matches in each file name (each g toggles this) + + :[range]s[ubstitute]/pattern + substitute pattern with an empty string. + + :[range]s[ubstitute]//string/[flags] + use last pattern from search history. + + :[range]s[ubstitute] + repeat previous substitution command. + + :sync + + :sync [relative path] + change the other pane to the current pane directory or to some + path relative to the current directory. Using macros is + allowed. + + :sync! change the other pane to the current pane directory and synchro- + nize cursor position. If current pane displays custom list of + files, position before entering it is used (current one might + not make any sense). + + + :sync! [location | cursorpos | localopts | filters | filelist | tree | + all]... + change enumerated properties of the other pane to match corre- + sponding properties of the current pane. Arguments have the + following meanings: + + - location - current directory of the pane; + + - cursorpos - cursor position (doesn't make sense without + "location"); + + - localopts - all local options; + + - filters - all filters; + + - filelist - list of files for custom view (implies "loca- + tion"); + + - tree - tree structure for tree view (implies "location"); + + - all - all of the above. + + :tabclose + + :tabc[lose] + close current tab, unless it's the only one open at current + scope. + + :tabmove + + :tabm[ove] [N] + without the argument or with `$` as the argument, current tab + becomes the last tab. With the argument, current tab is moved + after the tab with the specified number. Argument of `0` moves + current tab to the first position. + + :tabname + + :tabname [name] + set, update or reset (when no argument is provided) name of the + current tab. + + :tabnew + + :tabnew [path] + create new tab. Accepts optional path for the new tab. Macros + and environment variables are expanded. + + :tabnext + + :tabn[ext] + switch to the next tab (wrapping around). + + :tabn[ext] {n} + go to the tab number {n}. Tab numeration starts with 1. + + :tabprevious + + :tabp[revious] + switch to the previous tab (wrapping around). + + :tabp[revious] {n} + go to the {n}-th previous tab. Note that :tabnext handles its + argument differently. + + :touch + + :[line]touch file... + create files at specified paths. Aborts on errors. Doesn't + update time of existing files. The [line] can be used to pick + node in a tree-view. Macros are expanded. + + :tr + + :[range]tr/pattern/string/ + for each file in range transliterate the characters which appear + in pattern to the corresponding character in string. When + string is shorter than pattern, it's padded with its last char- + acter. + + :trashes + + :trashes + lists all valid trash directories in a menu. Only non-empty and + writable trash directories are shown. This is exactly the list + of directories that are cleared when :empty command is executed. + + :trashes? + same as :trashes, but also displays size of each trash direc- + tory. + + :tree + + :tree turn pane into tree view with current directory as its root. + The tree view is implemented on top of a custom view, but is + automatically kept in sync with file system state and considers + all the filters. Thus the structure corresponds to what one + would see on visiting the directories manually. As a special + case for trees built out of custom view file-system tracking + isn't performed. + + To leave tree view go up from its root or use gh at any level of + the tree. Any command that changes directory will also do, in + particular, `:cd ..`. + + Tree structure is incompatible with alternative representations, + so values of 'lsview' and 'millerview' options are ignored. + + :tree! toggle current view in and out of tree mode. + + :undolist + + :undol[ist] + display list of latest changes. Use "!" to see actual commands. + + :unlet + + :unl[et][!] $ENV_VAR1 $ENV_VAR2 ... + remove environment variables. Add ! to omit displaying of warn- + ings about nonexistent variables. + + :unselect + + :[range]unselect + unselect files in the given range (current file if no range is + given). + + :unselect {pattern} + unselect files that match specified pattern. Possible {pattern} + forms are described in "Patterns" section below. Trailing slash + for directories is taken into account, so `:unselect */` unse- + lects directories. + + :unselect !{external command} + unselect files from the list supplied by external command. + Files are matched by full paths, relative paths are converted to + absolute ones beforehand. + + :unselect //[iI] + same as item above, but reuses last search pattern. + + :version + + :ve[rsion] + show menu with version information. + + :vifm + + :vifm same as :version. + + :view + + :vie[w] + toggle on and off the quick file view. See also 'quickview' + option. + + :vie[w]! + turn on quick file view if it's off. + + :volumes + + :volumes + only for MS-Windows + display menu with volume list. Hitting l (or Enter) key opens + appropriate volume in the current pane. + + :vsplit + + :vs[plit] + switch to a two window vertical view. + + :vs[plit]! + toggle window vertical splitting. + + :vs[plit] path + split the window vertically to show both file directories. And + changes other pane to path (absolute or relative to current + directory of active pane). + + :wincmd + + :[count]winc[md] {arg} + same as running Ctrl-W [count] {arg}. + + :windo + + :windo [command...] + execute command for each pane (same as :winrun % command). + + :winrun + + :winrun type [command...] + execute command for pane(s), which is determined by type argu- + ment: + - ^ - top-left pane + - $ - bottom-right pane + - % - all panes + - . - current pane + - , - other pane + + :write + + :w[rite] + write vifminfo file. + + :wq + + :wq[!] same as :quit, but ! only disables check of backgrounded com- + mands. :wqall + + :wqa[ll][!] + same as :qall, but ! only disables check of backgrounded com- + mands. + + :xall + + :xa[ll][!] + same as :qall. + + :xit + + :x[it][!] + same as :quit. + + :yank + + :[range]y[ank] [reg] [count] + will yank files to the reg register. + + :map lhs rhs + + :map lhs rhs + map lhs key sequence to rhs in normal and visual modes. + + :map! lhs rhs + map lhs key sequence to rhs in command line mode. + + + :cmap :dmap :mmap :nmap :qmap + :vmap + + :cm[ap] lhs rhs + map lhs to rhs in command line mode. + + :dm[ap] lhs rhs + map lhs to rhs in dialog modes. + + :mm[ap] lhs rhs + map lhs to rhs in menu mode. + + :nm[ap] lhs rhs + map lhs to rhs in normal mode. + + :qm[ap] lhs rhs + map lhs to rhs in view mode. + + :vm[ap] lhs rhs + map lhs to rhs in visual mode. + + + :*map + + :cm[ap] + list all maps in command line mode. + + :dm[ap] + list all maps in dialog modes. + + :mm[ap] + list all maps in menu mode. + + :nm[ap] + list all maps in normal mode. + + :qm[ap] + list all maps in view mode. + + :vm[ap] + list all maps in visual mode. + + :*map beginning + + :cm[ap] beginning + list all maps in command line mode that start with the begin- + ning. + + :dm[ap] beginning + list all maps in dialog modes that start with the beginning. + + :mm[ap] beginning + list all maps in menu mode that start with the beginning. + + :nm[ap] beginning + list all maps in normal mode that start with the beginning. + + :qm[ap] beginning + list all maps in view mode that start with the beginning. + + :vm[ap] beginning + list all maps in visual mode that start with the beginning. + + :noremap + + :no[remap] lhs rhs + map the key sequence lhs to rhs for normal and visual modes, but + disallow mapping of rhs. + + :no[remap]! lhs rhs + map the key sequence lhs to rhs for command line mode, but dis- + allow mapping of rhs. + + :cnoremap :dnoremap :mnoremap :nnoremap :qnoremap + :vnoremap + + :cno[remap] lhs rhs + map the key sequence lhs to rhs for command line mode, but dis- + allow mapping of rhs. + + :dn[oremap] lhs rhs + map the key sequence lhs to rhs for dialog modes, but disallow + mapping of rhs. + + :mn[oremap] lhs rhs + map the key sequence lhs to rhs for menu mode, but disallow map- + ping of rhs. + + :nn[oremap] lhs rhs + map the key sequence lhs to rhs for normal mode, but disallow + mapping of rhs. + + :qn[oremap] lhs rhs + map the key sequence lhs to rhs for view mode, but disallow map- + ping of rhs. + + :vn[oremap] lhs rhs + map the key sequence lhs to rhs for visual mode, but disallow + mapping of rhs. + + :unmap + + :unm[ap] lhs + remove the mapping of lhs from normal and visual modes. + + :unm[ap]! lhs + remove the mapping of lhs from command line mode. + + :cunmap :dunmap :munmap :nunmap :qunmap + :vunmap + + :cu[nmap] lhs + remove the mapping of lhs from command line mode. + + :du[nmap] lhs + remove the mapping of lhs from dialog modes. + + :mu[nmap] lhs + remove the mapping of lhs from menu mode. + + :nun[map] lhs + remove the mapping of lhs from normal mode. + + :qun[map] lhs + remove the mapping of lhs from view mode. + + :vu[nmap] lhs + remove the mapping of lhs from visual mode. + +Ranges + The ranges implemented include: + 2,3 - from second to third file in the list (including it) + % - the entire directory. + . - the current position in the filelist. + $ - the end of the filelist. + 't - the mark position t. + + Examples: + + :%delete + + would delete all files in the directory. + + :2,4delete + + would delete the files in the list positions 2 through 4. + + :.,$delete + + would delete the files from the current position to the end of the + filelist. + + :3delete4 + + would delete the files in the list positions 3, 4, 5, 6. + + If a backward range is given :4,2delete - an query message is given and + user can chose what to do next. + + The builtin commands that accept a range are :d[elete] and :y[ank]. + +Command macros + The command macros may be used in user commands. + + %a User arguments. When user arguments contain macros, they are + expanded before preforming substitution of %a. + + %c %"c The current file under the cursor. + + %C %"C The current file under the cursor in the other directory. + + %f %"f All of the selected files. + + %F %"F All of the selected files in the other directory list. + + %b %"b Same as %f %F. + + %d %"d Full path to current directory. + + %D %"D Full path to other file list directory. + + %rx %"rx + Full paths to files in the register {x}. In case of invalid + symbol in place of {x}, it's processed with the rest of the line + and default register is used. + + %m Show command output in a menu. + + %M Same as %m, but l (or Enter) key is handled like for :locate and + :find commands. + + %u Process command output as list of paths and compose custom view + out of it. + + %U Same as %u, but implies less list updates inside vifm, which is + absence of sorting at the moment. + + %Iu same as %u, but gives up terminal before running external com- + mand. + + %IU same as %U, but gives up terminal before running external com- + mand. + + %S Show command output in the status bar. + + %q redirect command output to quick view, which is activated if + disabled. + + %s Execute command in split window of active terminal multiplexer + (ignored if not running inside one). + + %n Forbid using of terminal multiplexer to run the command. + + %i Completely ignore command output. + + + %pc Marks end of the main command and beginning of the clear command + for graphical preview, which is invoked on closing preview of a + file. + + The following dimensions and coordinates are in characters: + + %px x coordinate of top-left corner of preview area. + + %py y coordinate of top-left corner of preview area. + + %pw width of preview area. + + %ph height of preview area. + + + Use %% if you need to put a percent sign in your command. + + Note that %m, %M, %s, %S, %i, %u and %U macros are mutually exclusive. + Only the last one of them on the command will take effect. + + You can use file name modifiers after %c, %C, %f, %F, %b, %d and %D + macros. Supported modifiers are: + + - :p - full path + + - :u - UNC name of path (e.g. "\\server" in + "\\server\share"), Windows only. Expands to current computer name + for not UNC paths. + + - :~ - relative to the home directory + + - :. - relative to current directory + + - :h - head of the file name + + - :t - tail of the file name + + - :r - root of the file name (without last extension) + + - :e - extension of the file name (last one) + + - :s?pat?sub? - substitute the first occurrence of pat with sub. + You can use any character for '?', but it must not occur in pat or + sub. + + - :gs?pat?sub? - like :s, but substitutes all occurrences of pat with + sub. + + See ':h filename-modifiers' in Vim's documentation for the detailed + description. + + Using %x means expand corresponding macro escaping all characters that + have special meaning. And %"x means using of double quotes and escape + only backslash and double quote characters, which is more useful on + Windows systems. + + Position and quantity (if there is any) of %m, %M, %S or %s macros in + the command is unimportant. All their occurrences are removed from the + resulting command. + + %c and %f macros are expanded to file names only, when %C and %F are + expanded to full paths. %f and %F follow this in %b too. + + :com move mv %f %D + set the :move command to move all of the files selected in the + current directory to the other directory. + + The %a macro is replaced with any arguments given to an alias command. + All arguments are considered optional. + :com lsl !!ls -l %a - set the lsl command to execute ls -l with + or without an argument. + + :lsl<Enter> + will list the directory contents of the current directory. + + :lsl filename<Enter> + will list only the given filename. + + The macros can also be used in directly executing commands. ":!mv %f + %D" would move the current directory selected files to the other direc- + tory. + + Appending & to the end of a command causes it to be executed in the + background. Typically you want to run two kinds of external commands + in the background: + + - GUI applications that doesn't fork thus block vifm (:!sxiv %f &); + + - console tools that do not work with terminal (:!mv %f %D &). + + You don't want to run terminal commands, which require terminal input + or output something in background because they will mess up vifm's TUI. + Anyway, if you did run such a command, you can use Ctrl-L key to update + vifm's TUI. + + Rewriting the example command with macros given above with background- + ing: + + %m, %M, %s, %S, %u and %U macros cannot be combined with background + mark (" &") as it doesn't make much sense. + +Command backgrounding + Copy and move operation can take a lot of time to proceed. That's why + vifm supports backgrounding of this two operations. To run :copy, + :move or :delete command in the background just add " &" at the end of + a command. + + For each background operation a new thread is created. Currently job + cannot be stopped or paused. + + You can see if command is still running in the :jobs menu. Back- + grounded commands have progress instead of process id at the line + beginning. + + Background operations cannot be undone. + +Cancellation + Note that cancellation works somewhat different on Windows platform due + to different mechanism of break signal propagation. One also might + need to use Ctrl-Break shortcut instead of Ctrl-C. + + There are two types of operations that can be cancelled: + + - file system operations; + + - mounting with FUSE (but not unmounting as it can cause loss of + data); + + - calls of external applications. + + Note that vifm never terminates applications, it sends SIGINT signal + and lets the application quit normally. + + When one of set of operations is cancelled (e.g. copying of 5th file of + 10 files), further operations are cancelled too. In this case undo + history will contain only actually performed operations. + + Cancelled operations are indicated by "(cancelled)" suffix appended to + information message on statusbar. + + File system operations + + Currently the following commands can be cancelled: :alink, :chmod, + :chown, :clone, :copy, :delete, :mkdir, :move, :restore, :rlink, + :touch. File putting (on p/P key) can be cancelled as well. It's not + hard to see that these are mainly long-running operations. + + Cancelling commands when they are repeated for undo/redo operations is + allowed for convenience, but is not recommended as further undo/redo + operations might get blocked by side-effects of partially cancelled + group of operations. + + These commands can't be cancelled: :empty, :rename, :substitute, :tr. + + Mounting with FUSE + + It's not considered to be an error, so only notification on the status + bar is shown. + + External application calls + + Each of this operations can be cancelled: :apropos, :find, :grep, + :locate. + +Patterns + :highlight, :filetype, :filextype, :fileviewer commands and 'classify' + option support globs, regular expressions and mime types to match file + names or their paths. + + There are six possible ways to write a single pattern: + + 1. [!]{comma-separated-name-globs} + + 2. [!]{{comma-separated-path-globs}} + + 3. [!]/name-regular-expression/[iI] + + 4. [!]//path-regular-expression//[iI] + + 5. [!]<comma-separated-mime-type-globs> + + 6. undecorated-pattern + + Flags of regular expressions mean the following: + - "i" makes filter case insensitive; + - "I" makes filter case sensitive. They can be repeated multiple + times, but the later one takes precedence (e.g. "iiiI" is equivalent + to "I" and "IiIi" is the same as "i"). + + To combine several patterns (AND them), make sure you're using one of + the first five forms and write patterns one after another, like this: + <text/plain>{*.vifm} + Mind that if you make a mistake the whole string will be treated as the + sixth form. + + :filetype, :filextype and :fileviewer commands accept comma-separated + list of patterns instead of a single pattern, thus effectively handling + OR operation on them: + <text/plain>{*.vifm},<application/pdf>{*.pdf} + + Five first forms can include leading exclamation mark that negates pat- + tern matching. + + The last form is implicitly refers to one of others. :highlight does + not accept undecorated form, while :filetype, :filextype, :fileviewer, + :select, :unselect and 'classify' treat it as list of name globs. + + Regular expression patterns are case insensitive by default, see + description of commands, which might override default behaviour. + + "Globs" section below provides short overview of globs and some impor- + tant points that one needs to know about them. + + Mime type matching is essentially globs matching applied to mime type + of a file instead of its name/path. Note: mime types aren't detected + on Windows. + +Globs + Globs are always case insensitive as it makes sense in general case. + + *, ?, [ and ] are treated as special symbols in the pattern. E.g. + + :filetype * less %c + + matches all files. One can use character classes for escaping, so + + :filetype [*] less %c + + matches only one file name, the one which contains only asterisk sym- + bol. + + * means any number of any characters (possibly an empty substring), + with one exception: asterisk at the pattern beginning doesn't match dot + in the first position. E.g. + + :fileviewer *.zip,*.jar zip -sf %c + + associates using of zip program to preview all files with zip or jar + extensions as listing of their content. + + ? means any character at this position. E.g. + + :fileviewer ?.out file %c + + calls file tool for all files which has exactly one character before + their extension (e.g. a.out, b.out). + + Square brackets designate character class, which means that whole char- + acter class matches against any of characters listed in it. For exam- + ple + + :fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c + + makes vifm call highlight program to colorize source and header files + in C language for a 256-color terminal. Equal command would be + + :fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c + + + Inside square brackets ^ or ! can be used for symbol class negotiation + and the - symbol to set a range. ^ and ! should appear right after the + opening square bracket. For example + + :filetype *.[!d]/ inspect_dir + + associates inspect_dir as additional handler for all directories that + have one character extension unless it's "d" letter. And + + :filetype [0-9].jpg sxiv + + associates sxiv picture viewer only for JPEG-files that contain single + digit in their name. + +:set options + Local options + These are kind of options that are local to a specific view. So + you can set ascending sorting order for left pane and descending + order for right pane. + + In addition to being local to views, each such option also has + two values: + + - local to current directory (value associated with current + location); + + - global to current directory (value associated with the + pane). + + The idea is that current directory can be made a temporary + exception to regular configuration of the view, until directory + change. Use :setlocal for that. :setglobal changes view value + not affecting settings until directory change. :set applies + changes immediately to all values. + + + 'aproposprg' + type: string + default: "apropos %a" + Specifies format for an external command to be invoked by the + :apropos command. The format supports expanding of macros, spe- + cific for a particular *prg option, and %% sequence for insert- + ing percent sign literally. This option should include the %a + macro to specify placement of arguments passed to the :apropos + command. If the macro is not used, it will be implicitly added + after a space to the value of this option. + + 'autochpos' + type: boolean + default: true + When disabled vifm will set cursor to the first line in the view + after :cd and :pushd commands instead of saved cursor position. + Disabling this will also make vifm clear information about cur- + sor position in the view history on :cd and :pushd commands (and + on startup if 'autochpos' is disabled in the vifmrc). l key in + the ":history ." and ":trashes" menus are treated like :cd com- + mand. This option also affects marks so that navigating to a + mark doesn't restore cursor position. + + When this option is enabled, more fine grained control over cur- + sor position is available via 'histcursor' option. + + 'columns' 'co' + type: integer + default: terminal width on startup + Terminal width in characters. + + 'caseoptions' + type: charset + default: "" + This option gives additional control over case sensitivity by + allowing overriding default behaviour to either always be case + sensitive or always be case insensitive. Possible values form + pairs of lower and upper case letters that configure specific + aspect of behaviour: + p - always ignore case of paths during completion. + P - always match case of paths during completion. + g - always ignore case of characters for f/F/;/,. + G - always match case of characters for f/F/;/,. + + At most one item of each pair takes affect, if both or more are + present, only the last one matters. When none of pair's ele- + ments are present, the behaviour is default (depends on operat- + ing system for path completion and on values of 'ignorecase' and + 'smartcase' options for file navigation). + + 'cdpath' 'cd' + type: string list + default: value of $CDPATH with commas instead of colons + Specifies locations to check on changing directory with relative + path that doesn't start with "./" or "../". When non-empty, + current directory is examined after directories listed in the + option. + + This option doesn't affect completion of :cd command. + + Example: + + set cdpath=~ + + This way ":cd bin" will switch to "~/bin" even if directory + named "bin" exists in current directory, while ":cd ./bin" com- + mand will ignore value of 'cdpath'. + + 'chaselinks' + type: boolean + default: false + When enabled path of view is always resolved to real path (with + all symbolic links expanded). + + 'classify' + type: string list + default: ":dir:/" + Specifies file name prefixes and suffixes depending on file type + or name. The format is either of: + - [{prefix}]:{filetype}:[{suffix}] + - [{prefix}]::{pattern}::[{suffix}] + Possible {pattern} forms are described in "Patterns" section + above. + + Priority rules: + - file name patterns have priority over type patterns + - file name patterns are matched in left-to-right order of + their appearance in this option + + Either {prefix} or {suffix} or both can be omitted (which is the + default for all unspecified file types), this means empty {pre- + fix} and/or {suffix}. {prefix} and {suffix} should consist of + at most eight characters. Elements are separated by commas. + Neither prefixes nor suffixes are part of file names, so they + don't affect commands which operate on file names in any way. + Comma (',') character can be inserted by doubling it. List of + file type names can be found in the description of filetype() + function. + + 'confirm' 'cf' + type: set + default: delete,permdelete + Defines which operations require confirmation: + - delete - moving files to trash (on d or :delete); + - permdelete - permanent deletion of files (on D or :delete! + command or on undo/redo operation). + + 'cpoptions' 'cpo' + type: charset + default: "fst" + Contains a sequence of single-character flags. Each flag + enables behaviour of older versions of vifm. Flags: + - f - when included, running :filter command results in not + inverted (matching files are filtered out) and :filter! in + inverted (matching files are left) filter, when omitted, meaning + of the exclamation mark changes to the opposite; + - s - when included, yy, dd and DD normal mode commands act on + selection, otherwise they operate on current file only; + - t - when included, <tab> (thus <c-i>) behave as <space> and + switches active pane, otherwise <tab> and <c-i> go forward in + the view history. It's possible to make both <tab> and <c-i> to + work as expected by setting up the terminal to emit a custom + sequence when <c-i> is pressed; see :histnext for details. + + 'cvoptions' + type: set + default: + Specifies whether entering/leaving custom views triggers events + that normally happen on entering/leaving directories: + - autocmds - trigger autocommands on entering/leaving custom + views; + - localopts - reset local options on entering/leaving custom + views; + - localfilter - reset local filter on entering/leaving custom + views. + + 'deleteprg' + type: string + default: "" + Specifies program to run on files that are permanently removed. + When empty, files are removed as usual, otherwise this command + is invoked on each file by appending its name. If the command + doesn't remove files, they will remain on the file system. + + 'dirsize' + type: enumeration + default: size + Controls how size of directories is displayed in file views. + The following values are possible: + - size - size of directory (i.e., size used to store list of + files) + - nitems - number of entries in the directory (excluding . and + ..) + + Size obtained via ga/gA overwrites this setting so seeing count + of files and occasionally size of directories is possible. + + 'dotdirs' + type: set + default: nonrootparent + Controls displaying of dot directories. The following values + are possible: + - rootparent - show "../" in root directory of file system + - nonrootparent - show "../" in non-root directories of file + system + + Note that empty directories always contain "../" entry regard- + less of value of this option. "../" disappears at the moment at + least one file is created. + + 'dotfiles' + type: boolean + default: false + Whether dot files are shown in the view. Can be controlled with + z* bindings. + + 'fastrun' + type: boolean + default: false + With this option turned on you can run partially entered com- + mands with unambiguous beginning using :! (e.g. :!Te instead of + :!Terminal or :!Te<tab>). + + 'fillchars' 'fcs' + type: string list + default: "" + Sets characters used to fill borders. + + item default used for + vborder:c ' ' left, middle and right vertical bor- + ders + + If value is omitted, its default value is used. Example: + + set fillchars=vborder:. + + 'findprg' + type: string + default: "find %s %a -print , -type d \( ! -readable -o ! -exe- + cutable \) -prune" + Specifies format for an external command to be invoked by the + :find command. The format supports expanding of macros, spe- + cific for a particular *prg option, and %% sequence for insert- + ing percent sign literally. This option should include the %s + macro to specify placement of list of paths to search in and %a + or %A macro to specify placement of arguments passed to the + :find command. If some of the macros are not used, they will be + implicitly added after a space to the value of the option in the + following order: %s, %a. Note that when neither %a nor %A are + specified, it's %a which is added implicitly. + + The macros can slightly change their meaning depending on :find + command arguments. When the first argument points to an exist- + ing directory, %s is assigned all arguments and %a/%A are left + empty. Otherwise, %s is assigned a dot (".") meaning current + directory or list of selected file names, if any. %a/%A are + assigned arguments when first argument starts with a dash ("-"), + otherwise %a gets an escaped version of arguments, prepended by + "-name" (on *nix) or "-iname" (on Windows) predicate. + + %a and %A macros contain almost the same value, the difference + is that %a can be escaped and %A is never escaped. %A is to be + used mainly on Windows, where shell escaping is a mess and can + break command execution. + + Optional %u or %U macro could be used (if both specified %U is + chosen) to force redirection to custom or unsorted custom view + respectively. + + Starting from Windows Server 2003 a where command is available, + one can configure vifm to use it in the following way: + + set findprg="where /R %s %A" + + As the syntax of this command is rather limited, one can't use + :find command with selection of more than one item in this case. + The command looks for files only completely ignoring directo- + ries. + + When using find port on Windows, another option is to setup + 'findprg' like this: + + set findprg="find %s %a" + + 'followlinks' + type: boolean + default: true + Follow links on l or Enter. That is navigate to destination + file instead of treating the link as if it were target file. + Doesn't affects links to directories, which are always entered + (use gf key for directories). + + 'fusehome' + type: string + default: "($XDG_DATA_HOME/.local/share | $VIFM)/fuse/" + Directory to be used as a root dir for FUSE mounts. Value of + the option can contain environment variables (in form + "$envname"), which will be expanded (prepend it with a slash to + prevent expansion). The value should expand to an absolute + path. + + If you change this option, vifm won't remount anything. It + affects future mounts only. See "Automatic FUSE mounts" section + below for more information. + + 'gdefault' 'gd' + type: boolean + default: false + When on, 'g' flag is on for :substitute by default. + + 'grepprg' + type: string + default: "grep -n -H -I -r %i %a %s" + Specifies format for an external command to be invoked by the + :grep command. The format supports expanding of macros, spe- + cific for a particular *prg option, and %% sequence for insert- + ing percent sign literally. This option should include the %i + macro to specify placement of "-v" string when inversion of + results is requested, %a or %A macro to specify placement of + arguments passed to the :grep command and the %s macro to spec- + ify placement of list of files to search in. If some of the + macros are not used, they will be implicitly added after a space + to the value of the 'grepprg' option in the following order: %i, + %a, %s. Note that when neither %a nor %A are specified, it's %a + which is added implicitly. + + Optional %u or %U macro could be used (if both specified %U is + chosen) to force redirection to custom or unsorted custom view + respectively. + + See 'findprg' option for description of difference between %a + and %A. + + Example of setup to use ack (http://beyondgrep.com/) instead of + grep: + + set grepprg='ack -H -r %i %a %s' + + or The Silver Searcher (https://github.com/ggreer/the_sil- + ver_searcher): + + set grepprg='ag --line-numbers %i %a %s' + + + + 'histcursor' + type: set + default: startup,dirmark,direnter + Defines situations when cursor should be moved according to + directory history: + - startup - on loading file lists during startup + - dirmark - after navigating to a mark that doesn't specify + file + - direnter - on opening directory from a file list + + This option has no effect when 'autochpos' is disabled. + + Note that the list is not exhaustive and there are other situa- + tions when cursor is positioned automatically. + + 'history' 'hi' + type: integer + default: 15 + Maximum number of stored items in all histories. + + 'hlsearch' 'hls' + type: boolean + default: true + Highlight all matches of search pattern. + + 'iec' type: boolean + default: false + Use KiB, MiB, ... suffixes instead of K, M, ... when printing + size in human-friendly format. + + 'ignorecase' 'ic' + type: boolean + default: false + Ignore case in search patterns (:substitute, / and ? commands) + and characters after f and F commands. It doesn't affect file + filtering. + + 'incsearch' 'is' + type: boolean + default: false + When this option is set, search and view update for local filter + is be performed starting from initial cursor position each time + search pattern is changed. + + 'iooptions' + type: set + default: + Controls details of file operations. The following values are + available: + - fastfilecloning - perform fast file cloning (copy-on-write), + when available + (available on Linux and btrfs file system). + + 'laststatus' 'ls' + type: boolean + default: true + Controls if status bar is visible. + + 'lines' + type: integer + default: terminal height on startup + Terminal height in lines. + + 'locateprg' + type: string + default: "locate %a" + Specifies format for an external command to be invoked by the + :locate command. The format supports expanding of macros, spe- + cific for a particular *prg option, and %% sequence for insert- + ing percent sign literally. This option should include the %a + macro to specify placement of arguments passed to the :locate + command. If the macro is not used, it will be implicitly added + after a space to the value of this option. + + Optional %u or %U macro could be used (if both specified %U is + chosen) to force redirection to custom or unsorted custom view + respectively. + + 'mediaprg' + type: string + default: path to bundled script that supports udevil and udisks + {only for *nix} + Specifies command to be used to manage media devices. Used by + :media command. + + The command can be passed the following parameters: + - list -- list media + - mount {device} -- mount a device + - unmount {path} -- unmount given mount point + + The output of `list` subcommand is parsed in search of lines + that start with one of the following prefixes: + - device= - specifies device path (e.g., "/dev/sde") + - label= - specifies optional device label (e.g., "Memory + card") + - mount-point= - specifies a mount point (can be absent or + appear more than once) + + All other lines are ignored. Each `device=` starts a new sec- + tion describing a device which should include two other possible + prefixes. + + `list` subcommand is assumed to always succeed, while error + stream and exit code of `mount` and `unmount` is taken into + account to determine whether operation was performed success- + fully. + + 'lsoptions' + type: string list + default: "" + scope: local + + Configures ls-like view. + + item used for + transposed filling view grid by columns rather than by + lines + + + 'lsview' + type: boolean + default: false + scope: local + When this option is set, directory view will be displayed in + multiple columns with file names similar to output of `ls -x` + command. See "ls-like view" section below for format descrip- + tion. This option has no effect if 'millerview' is on. + + 'milleroptions' + type: string list + default: "lsize:1,csize:1,rsize:1" + scope: local + + Configures miller view. + + item default used for + lsize:num 0 left column + csize:num 1 center column (can't be disabled) + rsize:num 0 right column + + *size specifies ratios of columns. Each ratio is in the range + from 0 to 100 and values are adjusted to fit the limits. Zero + disables a column, but central (main) column can't be disabled. + + Example of two-column mode which is useful in combination with + :view command: + + set milleroptions=lsize:1,csize:2 + + + 'millerview' + type: boolean + default: false + scope: local + When this option is set, directory view will be displayed in + multiple cascading columns. Ignores 'lsview'. + + 'mintimeoutlen' + type: integer + default: 150 + The fracture of 'timeoutlen' in milliseconds that is waited + between subsequent input polls, which affects various asynchro- + nous operations (detecting changes made by external applica- + tions, monitoring background jobs, redrawing UI). There are no + strict guarantees, however the higher this value is, the less is + CPU load in idle mode. + + 'number' 'nu' + type: boolean + default: false + scope: local + Print line number in front of each file name when 'lsview' + option is turned off. Use 'numberwidth' to control width of + line number. Also see 'relativenumber'. + + 'numberwidth' 'nuw' + type: integer + default: 4 + scope: local + Minimal number of characters for line number field. + + 'previewprg' + type: string + default: "" + scope: local + + External command to be used instead of preview programs config- + ured via :fileviewer command. + + Example: + + " always show git log in preview of files inside some repository + au DirEnter '~/git-repo/**/*' setl previewprg='git log --color -- %c 2>&1' + + 'quickview' + type: boolean + default: false + Whether quick view (:view) is currently active or not. + + 'relativenumber' 'rnu' + type: boolean + default: false + scope: local + Print relative line number in front of each file name when + 'lsview' option is turned off. Use 'numberwidth' to control + width of line number. Various combinations of 'number' and + 'relativenumber' lead to such results: + + nonumber number + + norelativenumber | first | 1 first + | second | 2 second + | third | 3 third + + relativenumber | 1 first | 1 first + | 0 second |2 second + | 1 third | 1 third + + + 'rulerformat' 'ruf' + type: string + default: "%l/%S " + Determines the content of the ruler. Its minimal width is 13 + characters and it's right aligned. Following macros are sup- + ported: + %= - separation point between left and right aligned halves of + the line + %l - file number + %L - total number of files in view (including filtered out + ones) + %x - number of files excluded by filters + %0- - old name for %x macro + %S - number of displayed files + %= - separation point between left and right align items + %% - percent sign + %[ - designates beginning of an optional block + %] - designates end of an optional block + + Percent sign can be followed by optional minimum field width. + Add '-' before minimum field width if you want field to be right + aligned. + + Example: + + set rulerformat='%2l-%S%[ +%x%]' + + 'runexec' + type: boolean + default: false + Run executable file on Enter or l. + + 'scrollbind' 'scb' + type: boolean + default: false + When this option is set, vifm will try to keep difference of + scrolling positions of two windows constant. + + 'scrolloff' 'so' + type: integer + default: 0 + Minimal number of screen lines to keep above and below the cur- + sor. If you want cursor line to always be in the middle of the + view (except at the beginning or end of the file list), set this + option to some large value (e.g. 999). + + 'shell' 'sh' + type: string + default: $SHELL or "/bin/sh" or "cmd" (on MS-Windows) + Full path to the shell to use to run external commands. On *nix + a shell argument can be supplied. + + 'shortmess' 'shm' + type: charset + default: "p" + Contains a sequence of single-character flags. Each flag + enables shortening of some message displayed by vifm in the TUI. + Flags: + - M - shorten titles in windows of terminal multiplexers cre- + ated by vifm down to file name instead of using full path. + - T - truncate status-bar messages in the middle if they are + too long to fit on the command line. "..." will appear in the + middle. + - p - use tilde shortening in view titles. + + + 'showtabline' 'stal' + type: enumeration + default: multiple + Specifies when tab line should be displayed. Possible values: + - never - never display tab line + - multiple - show tab line only when there are at least two + tabs + - always - display tab line always + + Alternatively 0, 1 and 2 Vim-like values are also accepted and + correspond to "never", "multiple" and "always" respectively. + + + 'sizefmt' + type: string list + default: "units:iec" + Configures the way size is formatted in human-friendly way. + + item value meaning + units: iec Use 1024 byte units (K or KiB, + etc.). + See 'iec' option. + si Use 1000 byte units (KB, etc.). + precision: i > 0 How many fraction digits to con- + sider. + {not set} Precision of 1 for integer part + < 10, + 0 otherwise (provides old behav- + iour). + + Numbers are rounded from zero. Trailing zeros are dropped. + + Example: + + set sizefmt=units:iec,precision:2 + + + 'slowfs' + type: string list + default: "" + only for *nix + A list of mounter fs name beginnings (first column in /etc/mtab + or /proc/mounts) or paths prefixes for fs/directories that work + too slow for you. This option can be used to stop vifm from + making some requests to particular kinds of file systems that + can slow down file browsing. Currently this means don't check + if directory has changed, skip check if target of symbolic links + exists, assume that link target located on slow fs to be a + directory (allows entering directories and navigating to files + via gf). If you set the option to "*", it means all the systems + are considered slow (useful for cygwin, where all the checks + might render vifm very slow if there are network mounts). + + Example for autofs root /mnt/autofs: + + set slowfs+=/mnt/autofs + + 'smartcase' 'scs' + type: boolean + default: false + Overrides the ignorecase option if the search pattern contains + at least one upper case character. Only used when ignorecase + option is enabled. It doesn't affect file filtering. + + 'sort' type: string list + default: +name on *nix and +iname on Windows + scope: local + Sets list of sorting keys (first item is primary key, second is + secondary key, etc.): + [+-]ext - extension of files and directories + [+-]fileext - extension of files only + [+-]name - name (including extension) + [+-]iname - name (including extension, ignores case) + [+-]type - file type + (dir/reg/exe/link/char/block/sock/fifo) + [+-]dir - directory grouping (directory < file) + [+-]gid - group id (*nix only) + [+-]gname - group name (*nix only) + [+-]mode - file type derived from its mode (*nix only) + [+-]perms - permissions string (*nix only) + [+-]uid - owner id (*nix only) + [+-]uname - owner name (*nix only) + [+-]nlinks - number of hard links (*nix only) + [+-]inode - inode number (*nix only) + [+-]size - size + [+-]nitems - number of items in a directory (zero for files) + [+-]groups - groups extracted via regexps from 'sortgroups' + [+-]target - symbolic link target (empty for other file + types) + [+-]atime - time accessed (e.g. read, executed) + [+-]ctime - time changed (changes in metadata, e.g. mode) + [+-]mtime - time modified (when file contents is changed) + + Note: look for st_atime, st_ctime and st_mtime in "man 2 stat" + for more information on time keys. + + '+' means ascending sort for this key, and '-' means descending + sort. + + "dir" key is somewhat similar in this regard but it's added + implicitly: when "dir" is not specified, sorting behaves as if + it was the first key in the list. That's why if one wants sort- + ing algorithm to mix directories and files, "dir" should be + appended to sorting option, for example like this: + + set sort+=dir + + or + + set sort=-size,dir + + Value of the option is checked to include dir key and default + sorting key (name on *nix, iname on Windows). Here is what hap- + pens if one of them is missing: + + - type key is added at the beginning; + + - default key is added at the end; + + all other keys are left untouched (at most they are moved). + + This option also changes view columns according to primary sort- + ing key set, unless 'viewcolumns' option is not empty. + + 'sortnumbers' + type: boolean + default: false + scope: local + Natural sort of (version) numbers within text. + + 'sortgroups' + type: string + default: "" + scope: local + Sets comma-separated list of regular expressions to use for + group sorting, double comma is literal comma. Each expression + should contain at least one group or its value will be consid- + ered to be always empty. Only first match of each regular + expression is considered. Groups are considered from right to + first similar to 'sort', first group divides list of files into + sub-groups, each of which is sorted by the second group and so + on. + + Example: + set sortgroups=-(done|todo).* + this would put files with "-done" in their names above all files + with "-todo". + + 'sortorder' + type: enumeration + default: ascending + Sets sort order for primary key: ascending, descending. + + 'statusline' 'stl' + type: string + default: "" + Determines the content of the status line (the line right above + command-line). Empty string means use same format like in pre- + vious versions. Following macros are supported: + + - %t - file name (considering value of the 'classify' option) + + - %T - symbolic link target (empty for other filetypes) + + - %f - file name relative to current directory (considers 'clas- + sify') + + - %A - file attributes (permissions on *nix or properties on + Windows) %u - user name or uid (if it cannot be resolved) + + - %g - group name or gid (if it cannot be resolved) + + - %s - file size in human readable format + + - %E - size of selected files in human readable format, same as + %s when no files are selected, except that it will never show + size of ../ in visual mode, since it cannot be selected + + - %d - file modification date (uses 'timefmt' option) + + - %D - path of the other pane for single-pane layout + + - %a - amount of free space available at current partition + + - %z - short tips/tricks/hints that chosen randomly after one + minute period + + - %{<expr>} - evaluate arbitrary vifm expression '<expr>', e.g. + '&sort' + + - %* - resets or applies one of User1..User9 highlight groups; + reset happens when width field is 0 or not specified, one of + groups gets picked when width field is in the range from 1 to + 9 + + - all 'rulerformat' macros + + Percent sign can be followed by optional minimum field width. + Add '-' before minimum field width if you want field to be right + aligned. + + On Windows file properties include the following flags (upper + case means flag is on): + A - archive + H - hidden + I - content isn't indexed + R - readonly + S - system + C - compressed + D - directory + E - encrypted + P - reparse point (e.g. symbolic link) + Z - sparse file + + Example without colors: + + set statusline=" %t%= %A %10u:%-7g %15s %20d %{&sort} " + + Example with colors: + + highlight User1 ctermbg=yellow + highlight User2 ctermbg=blue ctermfg=white cterm=bold + set statusline="%1* %-26t %2* %= %1* %A %2* %7u:%-7g %1* %-5s %2* %d " + + + 'suggestoptions' + type: string list + default: + Controls when, for what and how suggestions are displayed. The + following values are available: + - normal - in normal mode; + - visual - in visual mode; + - view - in view mode; + - otherpane - use other pane to display suggestions, when + available; + - delay[:num] - display suggestions after a small delay (to + do not annoy if you just want to type a fast shortcut consisting + of multiple keys), num specifies the delay in ms (500 by + default), 'timeoutlen' at most; + - keys - include shortcuts (commands and selectors); + - foldsubkeys - fold multiple keys with common prefix; + - marks - include marks; + - registers[:num] - include registers, at most num files (5 by + default). + + 'syncregs' + type: string + default: + Specifies identifier of group of instances that share registers + between each other. When several instances of vifm have this + option set to identical value, they automatically synchronize + contents of their registers on operations which use them. + + 'syscalls' + type: boolean + default: false + When disabled, vifm will rely on external applications to per- + form file-system operations, otherwise system calls are used + instead (much faster and supports progress tracking). The + option should eventually be removed. Mostly *nix-like systems + are affected. + + 'tabscope' + type: enumeration + default: global + Picks style of tabs, which defines what a single tab contains. + Possible values: + - global - tab describes complete UI of two views and how they + are arranged + - pane - tab is located "inside" a pane and manages it and + quick view + + 'tabstop' 'ts' + type: integer + default: value from curses library + Number of spaces that a Tab in the file counts for. + + 'timefmt' + type: string + default: "%m/%d %H:%M" + Format of time in file list. See "man 1 date" or "man 3 strf- + time" for details. + + 'timeoutlen' 'tm' + type: integer + default: 1000 + The time in milliseconds that is waited for a mapped key in case + of already typed key sequence is ambiguous. + + 'title' + type: boolean + default: true when title can be restored, false otherwise + When enabled title of the terminal or terminal multiplexer's + window is updated according to current location. + + 'trash' + type: boolean + default: true + Use trash directory. See "Trash directory" section below. + + 'trashdir' + type: string + default: on *nix: + "%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash" + or if $VIFM/Trash doesn't exist + "%r/.vifm-Trash-%u,$XDG_DATA_HOME/vifm/Trash,%r/.vifm-Trash" + on Windows: + "%r/.vifm-Trash,$XDG_DATA_HOME/vifm/Trash" + List of trash directory path specifications, separated with com- + mas. Each list item either defines an absolute path to trash + directory or a path relative to a mount point root when list + element starts with "%r/". Value of the option can contain + environment variables (of form "$envname"), which will be + expanded (prepend $ with a slash to prevent expansion). Envi- + ronment variables are expanded when the option is set. + + On *nix, if element ends with "%u", the mark is replaced with + real user ID and permissions are set so that only that only + owner is able to use it. + Note that even this setup is not completely secure when combined + with "%r/" and it's overall safer to keep files in home direc- + tory, but that implies cost of copying files between partitions. + + When new file gets cut (deleted) vifm traverses each element of + the option in the order of their appearance and uses first trash + directory that it was able to create or that is already + writable. + + Default value tries to use trash directory per mount point and + falls back to ~/.vifm/Trash on failure. + + Will attempt to create the directory if it does not exist. See + "Trash directory" section below. + + 'tuioptions' 'to' + type: charset + default: "ps" + Each flag configures some aspect of TUI appearance. The flags + are: + p - when included: + * file list inside a pane gets additional single character + padding on left and right sides; + * quick view and view mode get single character padding. + s - when included, left and right borders (side borders, hence + "s" character) are visible. + u - use Unicode characters in the TUI (Unicode ellipsis instead + of "..."). + + 'undolevels' 'ul' + type: integer + default: 100 + Maximum number of changes that can be undone. Note that here + single file operation is used as a unit, not operation, i.e. + deletion of 101 files will exceed default limit. + + 'vicmd' + type: string + default: "vim" + The actual command used to start vi. Ampersand sign at the end + (regardless whether it's preceded by space or not) means back- + grounding of command. + + Background flag is ignored in certain context where vifm waits + for the editor to finish. Such contexts include any command + that spawns editor to change list of file names or a command, + with :rename being one example. `-f` is also appended to pre- + vent forking in such cases, so the command needs to handle the + flag. + + Additionally `+{num}` and `+'call cursor()'` arguments are used + to position cursor when location is known. + + 'viewcolumns' + type: string + default: "" + scope: local + Format string containing list of columns in the view. When this + option is empty, view columns to show are chosen automatically + using sorting keys (see 'sort') as a base. Value of this option + is ignored if 'lsview' is set. See "Column view" section below + for format description. + + An example of setting the options for both panes (note :windo + command): + + windo set viewcolumns=-{name}..,6{size},11{perms} + + 'vixcmd' + type: string + default: value of 'vicmd' + Same as 'vicmd', but takes precedence over it when running in X. + + 'vifminfo' + type: set + default: bookmarks,bmarks + Controls what will be saved in the $VIFM/vifminfo file. + + bmarks - named bookmarks + bookmarks - marks, except special ones like '< and '> + tui - state of the user interface (sorting, number of + windows, quick + view state, active view) + dhistory - directory history + state - file name and dot filters and terminal multiplex- + ers integration + state + cs - primary color scheme + savedirs - save last visited directory (requires dhistory) + chistory - command line history + shistory - search history (/ and ? commands) + phistory - prompt history + fhistory - history of local filter (see description of the + "=" normal mode + command) + dirstack - directory stack overwrites previous stack, unless + stack of + current session is empty + registers - registers content + options - all options that can be set with the :set command + (obsolete) + filetypes - associated programs and viewers (obsolete) + commands - user defined commands (see :command description) + (obsolete) + + 'vimhelp' + type: boolean + default: false + Use vim help format. + + 'wildmenu' 'wmnu' + type: boolean + default: false + Controls whether possible matches of completion will be shown + above the command line. + + 'wildstyle' + type: enumeration + default: bar + Picks presentation style of wild menu. Possible values: + - bar - one-line with left-to-right cursor + - popup - multi-line with top-to-bottom cursor + + 'wordchars' + type: string list + default: "1-8,14-31,33-255" (that is all non-whitespace charac- + ters) + Specifies which characters in command-line mode should be con- + sidered as part of a word. Value of the option is comma-sepa- + rated list of ranges. If both endpoints of a range match, sin- + gle endpoint is enough (e.g. "a" = "a-a"). Both endpoints are + inclusive. There are two accepted forms: character representing + itself or number encoding character according to ASCII table. + In case of ambiguous characters (dash, comma, digit) use numeric + form. Accepted characters are in the range from 0 to 255. Any + Unicode character with code greater than 255 is considered to be + part of a word. + + The option affects Alt-D, Alt-B and Alt-F, but not Ctrl-W. This + is intentionally to allow two use cases: + + - Moving by WORDS and deletion by words. + - Moving by words and deletion by WORDS. + + To get the latter use the following mapping: + + cnoremap <c-w> <a-b><a-d> + + Also used for abbreviations. + + 'wrap' type: boolean + default: true + Controls whether to wrap text in quick view. + + 'wrapscan' 'ws' + type: boolean + default: true + Searches wrap around end of the list. + +Mappings + Map arguments + + LHS of mappings can be preceded by arguments which take the form of + special sequences: + + <silent> + Postpone UI updates until RHS is completely processed. + + <wait> In case of builtin mapping causing conflict for a user-defined + mapping (e.g., `t` builtin to a partially typed `ta` user- + defined mapping), ignore the builtin mapping and wait for input + indefinitely as opposed to default behaviour of triggering the + builtin mapping after a delay defined by 'timeoutlen'. Example: + + nnoremap <wait> tw :set wrap!<cr> + nnoremap <wait> tn :set number!<cr> + nnoremap <wait> tr :set relativenumber!<cr> + + Special sequences + + Since it's not easy to enter special characters there are several spe- + cial sequences that can be used in place of them. They are: + + <cr> Enter key. + + <esc> Escape key. + + <space> + Space key. + + <lt> Less-than character (<). + + <nop> provides a way to disable a mapping (by mapping it to <nop>). + + <bs> Backspace key (see key conflict description below). + + <tab> <s-tab> + Tabulation and Shift+Tabulation keys. + + <home> <end> + Home/End. + + <left> <right> <up> <down> + Arrow keys. + + <pageup> <pagedown> + PageUp/PageDown. + + <del> <delete> + Delete key. <del> and <delete> mean different codes, but + <delete> is more common. + + <insert> + Insert key. + + <c-a>,<c-b>,...,<c-z>,<c-[>,<c->,<c-]>,<c-^>,<c-_> + Control + some key (see key conflict description below). + + <c-@> only for *nix + Control + Space. + + <a-a>,<a-b>,...,<a-z> + <m-a>,<m-b>,...,<m-z> Alt + some key. + + <a-c-a>,<a-c-b>,...,<a-c-z> + <m-c-a>,<m-c-b>,...,<m-c-z> only for *nix + Alt + Ctrl + some key. + + <f0> - <f63> + Functional keys. + + <c-f1> - <c-f12> + only for MS-Windows + functional keys with Control key pressed. + + <a-f1> - <a-f12> + only for MS-Windows + functional keys with Alt key pressed. + + <s-f1> - <s-f12> + only for MS-Windows + functional keys with Shift key pressed. + + Note that due to the way terminals process their input, several key- + board keys might be mapped to single key code, for example: + + - <cr> and <c-m>; + + - <tab> and <c-i>; + + - <c-h> and <bs>; + + - etc. + + Most of the time they are defined consistently and don't cause sur- + prises, but <c-h> and <bs> are treated differently in different envi- + ronments (although they match each other all the time), that's why they + correspond to different keys in vifm. As a consequence, if you map <c- + h> or <bs> be sure to repeat the mapping with the other one so that it + works in all environments. Alternatively, provide your mapping in one + form and add one of the following: + + " if mappings with <c-h> in the LHS work + map <c-h> <bs> + " if mappings with <bs> in the LHS work + map <bs> <c-h> + + Whitespace + + vifm removes whitespace characters at the beginning and end of com- + mands. That's why you may want to use <space> at the end of rhs in + mappings. For example: + + cmap <f1> man<space> + + will put "man " in line when you hit the <f1> key in the command line + mode. + +Expression syntax + Supported expressions is a subset of what VimL provides. + + Expression syntax summary, from least to most significant: + + expr1 expr2 + expr2 || expr2 .. logical OR + + expr2 expr3 + expr3 && expr3 .. logical AND + + expr3 expr4 + expr4 == expr4 equal + expr4 != expr4 not equal + expr4 > expr4 greater than + expr4 >= expr4 greater than or equal + expr4 < expr4 smaller than + expr4 <= expr4 smaller than or equal + + expr4 expr5 + expr5 + expr5 .. number addition + expr5 - expr5 .. number subtraction + + expr5 expr6 + expr6 . expr6 .. string concatenation + + expr6 expr7 + - expr6 unary minus + + expr6 unary plus + ! expr6 logical NOT + + expr7 number number constant + "string" string constant, \ is special + 'string' string constant, ' is doubled + &option option value + $VAR environment variable + v:var builtin variable + function(expr1, ...) function call + (expr1) nested expression + + ".." indicates that the operations in this level can be concatenated. + + expr1 + ----- + expr2 || expr2 + + Arguments are converted to numbers before evaluation. + + Result is non-zero if at least one of arguments is non-zero. + + It's right associative and with short-circuiting, so sub-expressions + are evaluated from left to right until result of whole expression is + determined (i.e., until first non-zero) or end of the expression. + + expr2 + ----- + expr3 && expr3 + + Arguments are converted to numbers before evaluation. + + Result is non-zero only if both arguments are non-zero. + + It's right associative and with short-circuiting, so sub-expressions + are evaluated from left to right until result of whole expression is + determined (i.e., until first zero) or end of the expression. + + expr3 + ----- + expr4 {cmp} expr4 + + Compare two expr4 expressions, resulting in a 0 if it evaluates to + false or 1 if it evaluates to true. + + equal == + not equal != + greater than > + greater than or equal >= + smaller than < + smaller than or equal <= + + Examples: + + 'a' == 'a' == 1 + 'a' > 'b' == 1 + 'a' == 'b' == 0 + '2' > 'b' == 0 + 2 > 'b' == 1 + 2 > '1b' == 1 + 2 > '9b' == 0 + -1 == -'1' == 1 + 0 == '--1' == 1 + + expr4 + ----- + expr5 + expr5 .. number addition expr5 - expr5 .. number sub- + traction + + Examples: + + 1 + 3 - 3 == 1 + 1 + '2' == 3 + + expr5 + ----- + expr6 . expr6 .. string concatenation + + Examples: + + 'a' . 'b' == 'ab' + 'aaa' . '' . 'c' == 'aaac' + + expr6 + ----- + + - expr6 unary minus + + expr6 unary plus + ! expr6 logical NOT + + For '-' the sign of the number is changed. + For '+' the number is unchanged. + For '!' non-zero becomes zero, zero becomes one. + + A String will be converted to a Number first. + + These operations can be repeated and mixed. Examples: + + --9 == 9 + ---9 == -9 + -+9 == 9 + !-9 == 0 + !'' == 1 + !'x' == 0 + !!9 == 1 + + expr7 + ----- + + number number constant + ----- + + Decimal number. Examples: + + 0 == 0 + 0000 == 0 + 01 == 1 + 123 == 123 + 10000 == 10000 + + string + ------ + "string" string constant + + Note that double quotes are used. + + A string constant accepts these special characters: + \b backspace <bs> + \e escape <esc> + \n newline + \r return <cr> + \t tab <tab> + \\ backslash + \" double quote + + Examples: + + "\"Hello,\tWorld!\"" + "Hi,\nthere!" + + literal-string + -------------- + 'string' string constant + + Note that single quotes are used. + + This string is taken as it is. No backslashes are removed or have a + special meaning. The only exception is that two quotes stand for one + quote. + + Examples: + + 'All\slashes\are\saved.' + 'This string contains doubled single quotes ''here''' + + option + ------ + &option option value (local one is preferred, if exists) + &g:option global option value &l:option local + option value + + Examples: + + echo 'Terminal size: '.&columns.'x'.&lines + if &columns > 100 + + Any valid option name can be used here (note that "all" in ":set all" + is a pseudo option). See ":set options" section above. + + environment variable + -------------------- + $VAR environment variable + + The String value of any environment variable. When it is not defined, + the result is an empty string. + + Examples: + + 'This is my $PATH env: ' . $PATH + 'vifmrc at ' . $MYVIFMRC . ' is used.' + + builtin variable + -------------------- + v:var builtin variable + + Information exposed by vifm for use in scripting. + + v:count + count passed to : command, 0 by default. Can be used in mappings to + pass + count to a different command. + v:count1 + same as v:count, but 1 by default. + v:servername + See below. + + function call + ------------- + function(expr1, ...) function call + + See "Functions" section below. + + Examples: + + "'" . filetype('.') . "'" + filetype('.') == 'reg' + + expression nesting + ------------------ + (expr1) nested expression + + Groups any other expression of arbitrary complexity enforcing order in + which operators are applied. + + +Functions + USAGE RESULT DESCRIPTION + + chooseopt({opt}) String Queries choose parameters passed on + startup. + executable({expr}) Integer Checks whether {expr} command avail- + able. + expand({expr}) String Expands special keywords in {expr}. + filetype({fnum} [, {resolve}]) + String Returns file type from position. + fnameescape({expr}) String Escapes {expr} for use in a :command. + getpanetype() String Returns type of current pane. + has({property}) Integer Checks whether instance has {prop- + erty}. + layoutis({type}) Integer Checks whether layout is of type + {type}. + paneisat({loc}) Integer Checks whether current pane is at + {loc}. + system({command}) String Executes shell command and returns + its output. + tabpagenr([{arg}]) Integer Returns number of current or last + tab. + term({command}) String Like system(), but for interactive + commands. + + chooseopt({opt}) + + Retrieves values of options related to file choosing. {opt} can be one + of: + files returns argument of --choose-files or empty string + dir returns argument of --choose-dir or empty string + cmd returns argument of --on-choose or empty string + delimiter returns argument of --delimiter or the default one (\n) + + executable({expr}) + + If {expr} is absolute or relative path, checks whether path destination + exists and refers to an executable, otherwise checks whether command + named {expr} is present in directories listed in $PATH. Checks for + various executable extensions on Windows. Returns boolean value + describing result of the check. + + Example: + + " use custom default viewer script if it's available and installed + " in predefined system directory, otherwise try to find it elsewhere + if executable('/usr/local/bin/defviewer') + fileview * /usr/local/bin/defviewer %c + else + if executable('defviewer') + fileview * defviewer %c + endif + endif + + expand({expr}) + + Expands environment variables and macros in {expr} just like it's done + for command-line commands. Returns a string. See "Command macros" + section above. + + Examples: + + " percent sign + :echo expand('%%') + " the last part of directory name of the other pane + :echo expand('%D:t') + " $PATH environment variable (same as `:echo $PATH`) + :echo expand('$PATH') + + filetype({fnum}[,{resolve}]) + + The result is a string, which represents file type and is one of the + list: + exe executables + reg regular files + link symbolic links + broken broken symbolic links (appears only when resolving) + dir directories + char character devices + block block devices + fifo pipes + sock *nix domain sockets + ? unknown file type (should not normally appear) + + The result can also be an empty string in case of invalid argument. + + Parameter {fnum} can have following values: + - '.' to get type of file under the cursor in the active pane + - numerical value base 1 to get type of file on specified line num- + ber + + Optional parameter {resolve} is treated as a boolean and specifies + whether symbolic links should be resolved. + + fnameescape({expr}) + + Escapes parameter to make it suitable for use as an argument of a :com- + mand. List of escaped characters includes %, which is doubled. + + Usage example: + + " navigate to most recently modified file in current directory + execute 'goto' fnameescape(system('ls -t | head -1')) + + getpanetype() + + Retrieves string describing type of current pane. Possible return val- + ues: + regular regular file listing of some directory + custom custom file list (%u) + very-custom very custom file list (%U) + tree tree view + + has({property}) + + Allows examining internal parameters from scripts to e.g. figure out + environment in which application is running. Returns 1 if property is + true/present, otherwise 0 is returned. Currently the following proper- + ties are supported (anything else will yield 0): + unix runs in *nix-like environment (including Cygwin) + win runs on Windows + + Usage example: + + " skip user/group on Windows + if !has('win') + let $RIGHTS = '%10u:%-7g ' + endif + + execute 'set' 'statusline=" %t%= %A '.$RIGHTS.'%15E %20d "' + + layoutis({type}) + + Checks whether current interface layout is {type} or not, where {type} + can be: + only single-pane mode + split double-pane mode (either vertical or horizon split) + vsplit vertical split (left and right panes) + hsplit horizontal split (top and bottom panes) + + Usage example: + + " automatically split vertically before enabling preview + :nnoremap w :if layoutis('only') | vsplit | endif | view!<cr> + + paneisat({loc}) + + Checks whether position of active pane in current layout matches one of + the following locations: + top pane reaches top border + bottom pane reaches bottom border + left pane reaches left border + right pane reaches right border + + system({command}) + + Runs the command in shell and returns its output (joined standard out- + put and standard error streams). All trailing newline characters are + stripped to allow easy appending to command output. Ctrl-C should + interrupt the command. + + Use this function to consume output of external commands that don't + require user interaction and term() for interactive commands that make + use of terminal and are capable of handling stream redirection. + + Usage example: + + " command to enter .git/ directory of git-repository (when ran inside one) + command! cdgit :execute 'cd' system('git rev-parse --git-dir') + + tabpagenr([{arg}]) + + When called without arguments returns number of current tab page base + one. + + When called with "$" as an argument returns number of the last tab page + base one, which is the same as number of tabs. + + term({command}) + + Same as system() function, but user interface is shutdown during the + execution of the command, which makes sure that external interactive + applications won't affect the way terminal is used by vifm. + + Usage example: + + " command to change directory by picking it via fzf + command! fzfcd :execute 'cd' "'".term('find -type d | fzf 2> /dev/tty')."'" + +Menus and dialogs + When navigating to some path from a menu there is a difference in end + location depending on whether path has trailing slash or not. Files + normally don't have trailing slashes so "file/" won't work and one can + only navigate to a file anyway. On the other hand with directories + there are two options: navigate to a directory or inside of it. To + allow both use cases, the first one is used on paths like "dir" and the + second one for "dir/". + + Commands + + :range navigate to a menu line. + + :exi[t][!] :q[uit][!] :x[it][!] + leave menu mode. + + :noh[lsearch] + reset search match highlighting. + + :w[rite] {dest} + write all menu lines into file specified by {dest}. + + General + + j, Ctrl-N - move down. + k, Ctrl-P - move up. + Enter, l - select and exit the menu. + Ctrl-L - redraw the menu. + + Escape, Ctrl-C, ZZ, ZQ, q - quit. + + In all menus + + The following set of keys has the same meaning as in normal mode. + + Ctrl-B, Ctrl-F + Ctrl-D, Ctrl-U + Ctrl-E, Ctrl-Y + /, ? + n, N + [count]G, [count]gg + H, M, L + zb, zt, zz + + zh - scroll menu items [count] characters to the right. + zl - scroll menu items [count] characters to the left. + zH - scroll menu items half of screen width characters to the right. + zL - scroll menu items half of screen width characters to the left. + + : - enter command line mode for menus (currently only :exi[t], :q[uit], + :x[it] and :{range} are supported). + + b - interpret content of the menu as list of paths and use it to create + custom view in place of previously active pane. See "Custom views" + section below. + B - same as above, but creates unsorted view. + + v - load menu content into quickfix list of the editor (Vim compatible + by assumption) or if list doesn't have separators after file names + (colons) open each line as a file name. + + + Below is description of additional commands and reaction on selection + in some menus and dialogs. + + Apropos menu + + Selecting menu item runs man on a given topic. Menu won't be closed + automatically to allow view several pages one by one. + + Command-line mode abbreviations menu + + Type dd on an abbreviation to remove it. + + c leaves menu preserving file selection and inserts right-hand side of + selected command into command-line. + + Color scheme menu + + Selecting name of a color scheme applies it the same way as if ":col- + orscheme <name>" was executed on the command-line. + + Commands menu + + Selecting command executes it with empty arguments (%a). + + dd on a command to remove. + + Marks menu + + Selecting mark navigates to it. + + dd on a mark to remove it. + + Bookmarks menu + + Selecting a bookmark navigates to it. + + Type dd on a bookmark to remove it. + + gf and e also work to make it more convenient to bookmark files. + + Trash (:lstrash) menu + + r on a file name to restore it from trash. + + dd deletes file under the cursor. + + Trashes menu + + dd empties selected trash in background. + + Directory history and Trashes menus + + Selecting directory name will change directory of the current view as + if :cd command was used. + + Directory stack menu + + Selecting directory name will rotate stack to put selected directory + pair at the top of the stack. + + Filetype menu + + Commands from vifmrc or typed in command-line are displayed above empty + line. All commands below empty line are from .desktop files. + + c leaves menu preserving file selection and inserts command after :! in + command-line mode. + + Grep, find, locate, bookmarks and user menu with navigation (%M macro) + + gf - navigate previously active view to currently selected item. + Leaves menu mode except for grep menu. Pressing Enter key has the same + effect. + + e - open selected path in the editor, stays in menu mode. + + c - leave menu preserving file selection and insert file name after :! + in command-line mode. + + User menu without navigation (%m macro) + + c leaves menu preserving file selection and inserts whole line after :! + in command-line mode. + + Grep menu + + Selecting file (via Enter or l key) opens it in editor set by 'vicmd' + at given line number. Menu won't be closed automatically to allow + viewing more than one result. + + See above for "gf" and "e" keys description. + + Command-line history menu + + Selecting an item executes it as command-line command, search query or + local filter. + + c leaves menu preserving file selection and inserts line into command- + line of appropriate kind. + + Volumes menu + + Selecting a drive navigates previously active pane to the root of that + drive. + + Fileinfo dialog + + Enter, q - close dialog + + Sort dialog + + h, Space - switch ascending/descending. + q - close dialog + + One shortcut per sorting key (see the dialog). + + Attributes (permissions or properties) dialog + + h, Space - check/uncheck. + q - close dialog + + Item states: + + - * - checked flag. + + - X - means that it has different value for files in selection. + + - d (*nix only) - (only for execute flags) means u-x+X, g-x+X or o-x+X + argument for the chmod program. If you're not on OS X and want to + remove execute permission bit from all files, but preserve it for + directories, set all execute flags to 'd' and check 'Set Recursively' + flag. + + Jobs menu + + dd requests cancellation of job under cursor. The job won't be removed + from the list, but marked as being cancelled (if cancellation was suc- + cessfully requested). A message will pop up if the job has already + stopped. Note that on Windows cancelling external programs like this + might not work, because their parent shell doesn't have any windows. + + e key displays errors of selected job if any were collected. They are + displayed in a new menu, but you can get back to jobs menu by pressing + h. + + + Undolist menu + + r - reset undo position to group under the cursor. + + + Media menu + + r - reload the list. + + m - mount/unmount device (cursor should be positioned on lines under + device information). + + +Custom views + Definition + + Normally file views contain list of files from a single directory, but + sometimes it's useful to populate them with list of files that do not + belong to the same directory, which is what custom views are for. + + Presentation + + Custom views are still related to directory they were in before custom + list was loaded. Path to that directory (original directory) can be + seen in the title of a custom view. + + Files in same directory have to be named differently, this doesn't hold + for custom views thus seeing just file names might be rather confusing. + In order to give an idea where files come from and when possible, rela- + tive paths to original directory of the view is displayed, otherwise + full path is used instead. + + Custom views normally don't contain any inexistent files. + + Navigation + + Custom views have some differences related to navigation in regular + views. + + gf - acts similar to gf on symbolic links and navigates to the file at + its real + location. + + h - go to closes parent node in tree view, otherwise return to the + original directory. + + gh - return to the original directory. + + Opening ".." entry also causes return to the original directory. + + History + + Custom list exists only while it's visible, once left one can't return + to it, so there is no appearances of it in any history. + + Filters + + Only local filter affects content of the view. This is intentional, + presumably if one loads list, precisely that list should be displayed + (except for inexistent paths, which are ignored). + + Search + + Although directory names are visible in listing, they are not search- + able. Only file names are taken into account (might be changed in + future, searching whole lines seems quite reasonable). + + Sorting + + Contrary to search sorting by name works on whole visible part of file + path. + + Highlight + + Whole file name is highlighted as one entity, even if there are direc- + tory elements. + + Updates + + Reloads can occur, though they are not automatic due to files being + scattered among different places. On a reload, inexistent files are + removed and meta-data of all other files is updated. + + Once custom view forgets about the file, it won't add it back even if + it's created again. So not seeing file previously affected by an oper- + ation, which was undone is normal. + + Operations + + All operations that add files are forbidden for custom views. For + example, moving/copying/putting files into a custom view doesn't work, + because it doesn't make much sense. + + On the other hand, operations that use files of a custom view as a + source (e.g. yanking, copying, moving file from custom view, deletion) + and operations that modify names are all allowed. + +Compare views + Kinds + + :compare can produce four different results depending on arguments: + - single compare view (ofone and either listall or listdups); + - single custom view (ofone and listunique); + - two compare views (ofboth and either listall or listdups); + - two custom views (ofboth and listunique). + + The first two display files of one file system tree. Here duplicates + are files that have at least one copy in the same tree. The other two + kinds of operation compare two trees, in which duplicates are files + that are found in both trees. + + Lists of unique files are presented in custom views because there is no + file grouping to preserve as all file ids are guaranteed to be dis- + tinct. + + Creation + + Arguments passed to :compare form four categories each with its own + prefix and is responsible for particular property of operation. + + Which files to compare: + - ofboth - compares files of two panes against each other; + - ofone - compares files of the same directory. + + How files are compared: + - byname - by their name only; + - bysize - only by their size; + - bycontents - by combination of size and hash of file contents. + + Which files to display: + - listall - all files; + - listunique - unique files only; + - listdups - only duplicated files. + + How results are grouped (has no effect if "ofone" specified): + - groupids - files considered identical are always adjacent in out- + put; + - grouppaths - file system ordering is preferred (this also enables + displaying identically named files as mismatches). + + Which files to omit: + - skipempty - ignore empty files. + + Each argument can appear multiple times, the rightmost one of the group + is considered. Arguments alter default behaviour instead of substitut- + ing it. + + Examples + + The defaults corresponds to probably the most common use case of com- + paring files in two trees with grouping by paths, so the following are + equivalent: + + :compare + :compare bycontents grouppaths + :compare bycontents listall ofboth grouppaths + + Another use case is to find duplicates in the current sub-tree: + + :compare listdups ofone + + The following command lists files that are unique to each pane: + + :compare listunique + + Look + + The view can't switch to ls-like view as it's unable to display diff- + like data. + + Comparison views have second column displaying id of the file, files + with same id are considered to be equal. The view columns configura- + tion is predefined. + + Behaviour + + When two views are being compared against each other the following + changes to the regular behaviour apply: + - views are scrolled synchronously (as if 'scrollbind' was set); + - views' cursors are synchronized; + - local filtering is disabled (its results wouldn't be meaningful); + - zd excludes groups of adjacent identical files, 1zd gives usual be- + haviour; + - sorting is permanently disabled (ordering is fixed); + - removed files hide their counter pairs; + - exiting one of the views terminates the other immediately; + - renaming files isn't blocked, but isn't taken into account and might + require regeneration of comparison; + - entries which indicate absence of equivalent file have empty names + and can be matched as such; + - when unique files of both views are listed custom views can be + empty, this absence of unique files is stated clearly. + + One compare view has similar properties (those that are applicable for + single pane). + + Files are gathered in this way: + - recursively starting at current location of the view; + - dot files are excluded if view hides them at the moment of compari- + son; + - directories are not taken into account; + - symbolic links to directories are ignored. + +Startup + On startup vifm determines several variables that are used during the + session. They are determined in the order they appear below. + + On *nix systems $HOME is normally present and used as is. On Windows + systems vifm tries to find correct home directory in the following + order: + - $HOME variable; + - $USERPROFILE variable (on Windows only); + - a combination of $HOMEDRIVE and $HOMEPATH variables (on Windows + only). + + vifm tries to find correct configuration directory by checking the fol- + lowing places: + - $VIFM variable; + - parent directory of the executable file (on Windows only); + - $HOME/.vifm directory; + - $APPDATA/Vifm directory (on Windows only); + - $XDG_CONFIG_HOME/vifm directory; + - $HOME/.config/vifm directory. + + vifm tries to find correct configuration file by checking the following + places: + - $MYVIFMRC variable; + - vifmrc in parent directory of the executable file (on Windows only); + - $VIFM/vifmrc file. + +Configure + See "Startup" section above for the explanations on $VIFM and $MYV- + IFMRC. + + The vifmrc file contains commands that will be executed on vifm + startup. There are two such files: global and local. Global one is at + {prefix}/etc/vifm/vifmrc, see $MYVIFMRC variable description for the + search algorithm used to find local vifmrc. Global vifmrc is loaded + before the local one, so that the later one can redefine anything con- + figured globally. + + Use vifmrc to set settings, mappings, filetypes etc. To use multi line + commands precede each next line with a slash (whitespace before slash + is ignored, but all spaces at the end of the lines are saved). For + example: + + set + \smartcase + + equals "setsmartcase". When + + set<space here> + \ smartcase + + equals "set smartcase". + + The $VIFM/vifminfo file contains session settings. You may edit it by + hand to change the settings, but it's not recommended to do that, edit + vifmrc instead. You can control what settings will be saved in + vifminfo by setting 'vifminfo' option. Vifm always writes this file on + exit unless 'vifminfo' option is empty. Marks, bookmarks, commands, + histories, filetypes, fileviewers and registers in the file are merged + with vifm configuration (which has bigger priority). + + Generally, runtime configuration has bigger priority during merging, + but there are some exceptions: + + - directory stack stored in the file is not overwritten unless some- + thing is changed in vifm session that performs merge; + + - each mark or bookmark is marked with a timestamp, so that newer + value is not overwritten by older one, thus no matter from where it + comes, the newer one wins. + + The $VIFM/scripts directory can contain shell scripts. vifm modifies + its PATH environment variable to let user run those scripts without + specifying full path. All subdirectories of the $VIFM/scripts will be + added to PATH too. Script in a subdirectory overlaps script with the + same name in all its parent directories. + + The $VIFM/colors/ and {prefix}/etc/vifm/colors/ directories contain + color schemes. Available color schemes are searched in that order, so + on name conflict the one in $VIFM/colors/ wins. + + Each color scheme should have ".vifm" extension. This wasn't the case + before and for this reason the following rules apply during lookup: + + - if there is no file with .vifm extension, all regular files are + listed; + + - otherwise only files with .vifm extension are listed (with the + extension being truncated). + +Automatic FUSE mounts + vifm has a builtin support of automated FUSE file system mounts. It is + implemented using file associations mechanism. To enable automated + mounts, one needs to use a specially formatted program line in filetype + or filextype commands. Currently two formats are supported: + + 1) FUSE_MOUNT This format should be used in case when all information + needed for mounting all files of a particular type is the same. E.g. + mounting of tar files don't require any file specific options. + + Format line: + FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%FOREGROUND] + + Example filetype command: + + :filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR + + 2) FUSE_MOUNT2 This format allows one to use specially formatted files + to perform mounting and is useful for mounting remotes, for example + remote file systems over ftp or ssh. + + Format line: + FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND] + + Example filetype command: + + :filetype FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR + + Example file content: + + root@127.0.0.1:/ + + All % macros are expanded by vifm at runtime and have the following + meaning: + - %SOURCE_FILE is replaced by full path to selected file; + - %DESTINATION_DIR is replaced by full path to mount directory, which + is created by vifm basing on the value of 'fusehome' option; + - %PARAM value is filled from the first line of file (whole line), + though in the future it can be changed to whole file content; + - %FOREGROUND means that you want to run mount command as a regular + command (required to be able to provide input for communication with + mounter in interactive way). + + %FOREGROUND is an optional macro. Other macros are not mandatory, but + mount commands likely won't work without them. + + %CLEAR is obsolete name of %FOREGROUND, which is still supported, but + might be removed in future. Its use is discouraged. + + The mounted FUSE file systems will be automatically unmounted in two + cases: + + - when vifm quits (with ZZ, :q, etc. or when killed by signal); + + - when you explicitly leave mount point going up to its parent direc- + tory (with h, Enter on "../" or ":cd ..") and other pane is not in + the same directory or its child directories. + +View look + vifm supports displaying of file list view in two different ways: + + - in a table mode, when multiple columns can be set using 'view- + columns' option (see "Column view" section below for details); + + - in a multicolumn list manner which looks almost like `ls -x` com- + mand output (see "ls-like view" section below for details). + + The look is local for each view and can be chosen by changing value of + the 'lsview' boolean option. + + Depending on view look some of keys change their meaning to allow more + natural cursor moving. This concerns mainly h, j, k, l and other simi- + lar navigation keys. + + Also some of options can be ignored if they don't affect view display- + ing in selected look. For example value of 'viewcolumns' when 'lsview' + is set. + +ls-like view + When this view look is enabled by setting 'lsview' option on, vifm will + display files in multiple columns. Number of columns depends on the + length of the longest file name present in current directory of the + view. Whole file list is automatically reflowed on directory change, + terminal or view resize. + + View looks close to output of `ls -x` command, so files are listed left + to right in rows. + + In this mode file manipulation commands (e.g. d) don't work line-wise + like they do in Vim, since such operations would be uncommon for file + manipulation tasks. Thus, for example, dd will remove only current + file. + + By default the view is filled by lines, 'lsoptions' can be used to get + filling by columns. + + Note that tree-view and compare view inhibit ls-like view. + +Column view + View columns are described by a comma-separated list of column descrip- + tions, each of which has the following format + [ '-' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type '}' '.'{0,3} + where fw stands for full width and tw stands for text width. + + So it basically consists of four parts: + 1. Optional alignment specifier + 2. Optional width specifier + 3. Mandatory column name + 4. Optional cropping specifier + + Alignment specifier + + It's an optional minus or asterisk sign as the first symbol of the + string. + + Specifies type of text alignment within a column. Three types are sup- + ported: + + - left align + + set viewcolumns=-{name} + + - right align (default) + + set viewcolumns={name} + + - dynamic align + + It's like left alignment, but when the text is bigger than the col- + umn, the alignment is made at the right (so the part of the field is + always visible). + + set viewcolumns=*{name} + + Width specifier + + It's a number followed by a percent sign, two numbers (second one + should be less than or equal to the first one) separated with a dot or + a single number. + + Specifies column width and its units. There are three size types: + + - absolute size - column width is specified in characters + + set viewcolumns=-100{name},20.15{ext} + + results in two columns with lengths of 100 and 20 and a reserved + space of five characters on the left of second column. + + - relative (percent) size - column width is specified in percents of + view width + + set viewcolumns=-80%{name},15%{ext},5%{mtime} + + results in three columns with lengths of 80/100, 15/100 and 5/100 of + view width. + + - auto size (default) - column width is automatically determined + + set viewcolumns=-{name},{ext},{mtime} + + results in three columns with length of one third of view width. + There is no size adjustment to content, since it will slow down ren- + dering. + + Columns of different sizing types can be freely mixed in one view. + Though sometimes some of columns can be seen partly or be completely + invisible if there is not enough space to display them. + + Column name + + This is just a sort key surrounded with curly braces or {root}, e.g. + + {name},{ext},{mtime} + + {name} and {iname} keys are the same and present both for consistency + with 'sort' option. + + Following keys don't have corresponding sorting keys: + + - {root} - display name without extension (as a complement for {ext}) + + Empty curly braces ({}) are replaced with the default secondary column + for primary sort key. So after the next command view will be displayed + almost as if 'viewcolumns' is empty, but adding ellipsis for long file + names: + + set viewcolumns=-{name}..,6{}. + + Cropping specifier + + It's from one to three dots after closing curly brace in column format. + + Specifies type of text truncation if it doesn't fit in the column. + Currently three types are supported: + + - truncation - text is truncated + + set viewcolumns=-{name}. + + results in truncation of names that are too long too fit in the + view. + + - adding of ellipsis - ellipsis on the left or right are added when + needed + + set viewcolumns=-{name}.. + + results in that ellipsis are added at the end of too long file + names. + + - none (default) - text can pass column boundaries + + set viewcolumns=-{name}...,{ext} + + results in that long file names can partially be written on the ext + column. + +Color schemes + The color schemes in vifm can be applied in two different ways: + + - as the primary color scheme; + + - as local to a pane color scheme. + + Both types are set using :colorscheme command, but of different forms: + + - :colorscheme color_scheme_name - for the primary color scheme; + + - :colorscheme color_scheme_name directory - for local color schemes. + + Look of different parts of the TUI (Text User Interface) is determined + in this way: + + - Border, TabLine, TabLineSel, TopLineSel, TopLine, CmdLine, + ErrorMsg, StatusLine, JobLine, SuggestBox and WildMenu are always + determined by the primary color scheme; + + - CurrLine, Selected, Directory, Link, BrokenLink, Socket, Device, + Executable, Fifo, CmpMismatch, Win and AuxWin are determined by + primary color scheme and a set of local color schemes, which can be + empty. + + There might be a set of local color schemes because they are structured + hierarchically according to file system structure. For example, having + the following piece of file system: + + ~ + `-- bin + | + `-- my + + Two color schemes: + + # ~/.vifm/colors/for_bin + highlight Win cterm=none ctermfg=white ctermbg=red + highlight CurrLine cterm=none ctermfg=red ctermbg=black + + # ~/.vifm/colors/for_bin_my + highlight CurrLine cterm=none ctermfg=green ctermbg=black + + And these three commands in the vifmrc file: + + colorscheme Default + colorscheme for_bin ~/bin + colorscheme for_bin_my ~/bin/my + + File list will look in the following way for each level: + + - ~/ - Default color scheme + black background + cursor with blue background + + - ~/bin/ - mix of Default and for_bin color schemes + red background + cursor with black background and red foreground + + - ~/bin/my/ - mix of Default, for_bin and for_bin_my color schemes + red background + cursor with black background and green foreground + +Trash directory + vifm has support of trash directory, which is used as temporary storage + for deleted files or files that were cut. Using trash is controlled by + the 'trash' option, and exact path to the trash can be set with + 'trashdir' option. Trash directory in vifm differs from the system- + wide one by default, because of possible incompatibilities of storing + deleted files among different file managers. But one can set + 'trashdir' to "~/.local/share/Trash" to use a "standard" trash direc- + tory. + + There are two scenarios of using trash in vifm: + + 1. As a place for storing files that were cut by "d" and may be + inserted to some other place in file system. + + 2. As a storage of files, that are deleted but not purged yet. + + The first scenario uses deletion ("d") operations to put files to trash + and put ("p") operations to restore files from trash directory. Note + that such operations move files to and from trash directory, which can + be long term operations in case of different partitions or remote + drives mounted locally. + + The second scenario uses deletion ("d") operations for moving files to + trash directory and :empty command-line command to purge all previously + deleted files. + + Deletion and put operations depend on registers, which can point to + files in trash directory. Normally, there are no nonexistent files in + registers, but vifm doesn't keep track of modifications under trash + directory, so one shouldn't expect value of registers to be absolutely + correct if trash directory was modified not by operation that are meant + for it. But this won't lead to any issues with operations, since they + ignore nonexistent files. + +Client-Server + vifm supports remote execution of command-line mode commands, remote + changing of directories and expression evaluation. This is possible + using --remote and --remote-expr command-line arguments. + + To execute a command remotely combine --remote argument with -c <com- + mand> or +<command>. For example: + + vifm --remote -c 'cd /' + vifm --remote '+cd /' + + To change directory not using command-line mode commands one can spec- + ify paths right after --remote argument, like this: + + vifm --remote / + vifm --remote ~ + vifm --remote /usr/bin /tmp + + Evaluating expression remotely might be useful to query information + about an instance, for example its location: + + vifm --remote-expr 'expand("%d")' + + If there are several running instances, the target can be specified + with --server-name option (otherwise, the first one lexicographically + is used): + + vifm --server-name work --remote ~/work/project + + List of names of running instances can be obtained via --server-list + option. Name of the current one is available via v:servername. + + + v:servername + server name of the running vifm instance. Empty if client- + server feature is disabled. + +Plugin + Plugin for using vifm in vim as a file selector. + + Commands: + + :EditVifm select a file or files to open in the current buffer. + :SplitVifm split buffer and select a file or files to open. + :VsplitVifm vertically split buffer and select a file or files to + open. + :DiffVifm select a file or files to compare to the current file + with + :vert diffsplit. + :TabVifm select a file or files to open in tabs. + + Each command accepts up to two arguments: left pane directory and right + pane directory. After arguments are checked, vifm process is spawned + in a special "file-picker" mode. To pick files just open them either + by pressing l, i or Enter keys, or by running :edit command. If no + files are selected, file under the cursor is opened, otherwise whole + selection is passed to the plugin and opened in vim. + + The plugin have only two settings. It's a string variable named + g:vifm_term to let user specify command to run GUI terminal. By + default it's equal to 'xterm -e'. And another string variable named + g:vifm_exec, which equals "vifm" by default and specifies path to + vifm's executable. To pass arguments to vifm use g:vifm_exec_args, + which is empty by default. + + To use the plugin copy the vifm.vim file to either the system wide + vim/plugin directory or into ~/.vim/plugin. + + If you would prefer not to use the plugin and it is in the system wide + plugin directory add + + let loaded_vifm=1 + + to your ~/.vimrc file. + +Reserved + The following command names are reserved and shouldn't be used for user + commands. + + g[lobal] + v[global] + +ENVIRONMENT + VIFM Points to main configuration directory (usually ~/.vifm/). + + MYVIFMRC + Points to main configuration file (usually ~/.vifm/vifmrc). + + These environment variables are valid inside vifm and also can be used + to configure it by setting some of them before running vifm. + + When $MYVIFMRC isn't set, it's made as $VIFM/vifmrc (exception for Win- + dows: vifmrc in the same directory as vifm.exe has higher priority than + $VIFM/vifmrc). + + See "Startup" section above for more details. + + VIFM_FUSE_FILE + On execution of external commands this variable is set to the + full path of file used to initiate FUSE mount of the closes + mount point from current pane directory up. It's not set when + outside FUSE mount point. When vifm is used inside terminal + multiplexer, it tries to set this variable as well (it doesn't + work this way on its own). + +SEE ALSO + vifm-convert-dircolors(1), vifm-pause(1) + + Website: https://vifm.info/ + Wiki: https://wiki.vifm.info/ + + Esperanto translation of the documentation by Sebastian Cyprych: + http://cyprych.neostrada.pl/tekstoj/komputiloj/vifm-help.eo.html + +AUTHOR + Vifm was written by ksteen <ksteen@users.sourceforge.net> + And currently is developed by xaizek <xaizek@posteo.net> + + + +vifm 0.10 November 11, 2018 VIFM(1) diff --git a/vifm/vifmimgpdffile b/vifm/vifmimgpdffile new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/vifm/vifmimgpdffile diff --git a/vifm/vifmimgpdfpage b/vifm/vifmimgpdfpage new file mode 100644 index 0000000..573541a --- /dev/null +++ b/vifm/vifmimgpdfpage @@ -0,0 +1 @@ +0 diff --git a/vifm/vifmrc b/vifm/vifmrc new file mode 100644 index 0000000..6be2763 --- /dev/null +++ b/vifm/vifmrc @@ -0,0 +1,454 @@ +" vim: filetype=vifm : +" Sample configuration file for vifm (last updated: 20 July, 2018) +" You can edit this file by hand. +" The " character at the beginning of a line comments out the line. +" Blank lines are ignored. +" The basic format for each item is shown with an example. + +" ------------------------------------------------------------------------------ + +" This is the actual command used to start vi. The default is vim. +" If you would like to use another vi clone such as Elvis or Vile +" you will need to change this setting. + +set vicmd=vim +" set vicmd=elvis\ -G\ termcap +" set vicmd=vile + +" This makes vifm perform file operations on its own instead of relying on +" standard utilities like `cp`. While using `cp` and alike is a more universal +" solution, it's also much slower when processing large amounts of files and +" doesn't support progress measuring. + +set syscalls + +" Trash Directory +" The default is to move files that are deleted with dd or :d to +" the trash directory. If you change this you will not be able to move +" files by deleting them and then using p to put the file in the new location. +" I recommend not changing this until you are familiar with vifm. +" This probably shouldn't be an option. + +set trash + +" This is how many directories to store in the directory history. + +set history=100 + +" Automatically resolve symbolic links on l or Enter. + +set nofollowlinks + +" With this option turned on you can run partially entered commands with +" unambiguous beginning using :! (e.g. :!Te instead of :!Terminal or :!Te<tab>). + +" set fastrun + +" Natural sort of (version) numbers within text. + +set sortnumbers + +" Maximum number of changes that can be undone. + +set undolevels=100 + +" If you installed the vim.txt help file set vimhelp. +" If would rather use a plain text help file set novimhelp. + +set novimhelp + +" If you would like to run an executable file when you +" press return on the file name set this. + +set norunexec + +" Selected color scheme + +colorscheme Default + +" Format for displaying time in file list. For example: +" TIME_STAMP_FORMAT=%m/%d-%H:%M +" See man date or man strftime for details. + +set timefmt=%m/%d\ %H:%M + +" Show list of matches on tab completion in command-line mode + +set wildmenu + +" Display completions in a form of popup with descriptions of the matches + +set wildstyle=popup + +" Display suggestions in normal, visual and view modes for keys, marks and +" registers (at most 5 files). In other view, when available. + +set suggestoptions=normal,visual,view,otherpane,keys,marks,registers + +" Ignore case in search patterns unless it contains at least one uppercase +" letter + +set ignorecase +set smartcase + +" Don't highlight search results automatically + +set nohlsearch + +" Use increment searching (search while typing) +set incsearch + +" Try to leave some space from cursor to upper/lower border in lists + +set scrolloff=4 + +" Don't do too many requests to slow file systems + +if !has('win') + set slowfs=curlftpfs +endif + +" Set custom status line look + +set statusline=" Hint: %z%= %A %10u:%-7g %15s %20d " + +" ------------------------------------------------------------------------------ + +" :mark mark /full/directory/path [filename] + +mark b ~/bin/ +mark h ~/ + +" ------------------------------------------------------------------------------ + +" :com[mand][!] command_name action +" The following macros can be used in a command +" %a is replaced with the user arguments. +" %c the current file under the cursor. +" %C the current file under the cursor in the other directory. +" %f the current selected file, or files. +" %F the current selected file, or files in the other directory. +" %b same as %f %F. +" %d the current directory name. +" %D the other window directory name. +" %m run the command in a menu window + +command! df df -h %m 2> /dev/null +command! diff vim -d %f %F +command! zip zip -r %f.zip %f +command! run !! ./%f +command! make !!make %a +command! mkcd :mkdir %a | cd %a +command! vgrep vim "+grep %a" +command! reload :write | restart + +" ------------------------------------------------------------------------------ + +" The file type is for the default programs to be used with +" a file extension. +" :filetype pattern1,pattern2 defaultprogram,program2 +" :fileviewer pattern1,pattern2 consoleviewer +" The other programs for the file type can be accessed with the :file command +" The command macros %f, %F, %d, %F may be used in the commands. +" The %a macro is ignored. To use a % you must put %%. + +" For automated FUSE mounts, you must register an extension with :file[x]type +" in one of following formats: +" +" :filetype extensions FUSE_MOUNT|some_mount_command using %SOURCE_FILE and %DESTINATION_DIR variables +" %SOURCE_FILE and %DESTINATION_DIR are filled in by vifm at runtime. +" A sample line might look like this: +" :filetype *.zip,*.jar,*.war,*.ear FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR +" +" :filetype extensions FUSE_MOUNT2|some_mount_command using %PARAM and %DESTINATION_DIR variables +" %PARAM and %DESTINATION_DIR are filled in by vifm at runtime. +" A sample line might look like this: +" :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR +" %PARAM value is filled from the first line of file (whole line). +" Example first line for SshMount filetype: root@127.0.0.1:/ +" +" You can also add %CLEAR if you want to clear screen before running FUSE +" program. + +" Pdf +filextype *.pdf zathura %c %i &, apvlv %c, xpdf %c +fileviewer *.pdf + \ vifmimg pdfpreview %px %py %pw %ph %c + \ %pc + \ vifmimg clear + " \ pdftotext -nopgbrk %c - + +" Epub +filextype *.epub zathura %c %i & +fileviewer *.pdf + +" PostScript +filextype *.ps,*.eps,*.ps.gz + \ {View in zathura} + \ zathura %f, + \ {View in gv} + \ gv %c %i &, + +" Djvu +filextype *.djvu + \ {View in zathura} + \ zathura %f &, + \ {View in apvlv} + \ apvlv %f, + +" Audio +filetype *.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus + \ {Play using MPlayer} + \ mpv %f, +fileviewer *.mp3 mp3info +fileviewer *.flac soxi + +" Video +filextype *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob, + \*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx, + \*.as[fx] + \ {View using mplayer} + \ mpv %f, +fileviewer *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob, + \*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx, + \*.as[fx] + \ vifmimg videopreview %px %py %pw %ph %c + \ %pc + \ vifmimg clear + " \ ffprobe -pretty %c 2>&1 + +" Web +filextype *.html,*.htm + \ {Open with emacs} + \ emacsclient -c %c &, + \ {Open with vim} + \ vim %c &, + \ {Open with dwb} + \ dwb %f %i &, + \ {Open with firefox} + \ firefox %f &, + \ {Open with uzbl} + \ uzbl-browser %f %i &, +filetype *.html,*.htm links, lynx + +" Object +filetype *.o nm %f | less + +" Man page +filetype *.[1-8] man ./%c +fileviewer *.[1-8] man ./%c | col -b + +" Images +filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm + \ {View in sxiv} + \ sxiv -ia %f &, + \ {View in imv} + \ imv -b 1D2330 -d %d &, + \ {View in feh} + \ feh %d &, + \ {View in cacaview} + \ cacaview %c &, +fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.xpm + \ vifmimg draw %px %py %pw %ph %c + \ %pc + \ vifmimg clear +fileviewer *.gif + \ vifmimg gifpreview %px %py %pw %ph %c + \ %pc + \ vifmimg clear + +" OpenRaster +filextype *.ora + \ {Edit in MyPaint} + \ mypaint %f, + +" Mindmap +filextype *.vym + \ {Open with VYM} + \ vym %f &, + +" MD5 +filetype *.md5 + \ {Check MD5 hash sum} + \ md5sum -c %f %S, + +" SHA1 +filetype *.sha1 + \ {Check SHA1 hash sum} + \ sha1sum -c %f %S, + +" SHA256 +filetype *.sha256 + \ {Check SHA256 hash sum} + \ sha256sum -c %f %S, + +" SHA512 +filetype *.sha512 + \ {Check SHA512 hash sum} + \ sha512sum -c %f %S, + +" GPG signature +filetype *.asc + \ {Check signature} + \ !!gpg --verify %c, + +" Torrent +filetype *.torrent ktorrent %f & +fileviewer *.torrent dumptorrent -v %c + +" FuseZipMount +filetype *.zip,*.jar,*.war,*.ear,*.oxt,*.apkg + \ {Mount with fuse-zip} + \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR, + \ {View contents} + \ zip -sf %c | less, + \ {Extract here} + \ tar -xf %c, +fileviewer *.zip,*.jar,*.war,*.ear,*.oxt zip -sf %c + +" ArchiveMount +filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz + \ {Mount with archivemount} + \ FUSE_MOUNT|archivemount %SOURCE_FILE %DESTINATION_DIR, +fileviewer *.tgz,*.tar.gz tar -tzf %c +fileviewer *.tar.bz2,*.tbz2 tar -tjf %c +fileviewer *.tar.txz,*.txz xz --list %c +fileviewer *.tar tar -tf %c + +" Rar2FsMount and rar archives +filetype *.rar + \ {Mount with rar2fs} + \ FUSE_MOUNT|rar2fs %SOURCE_FILE %DESTINATION_DIR, +fileviewer *.rar unrar v %c + +" IsoMount +filetype *.iso + \ {Mount with fuseiso} + \ FUSE_MOUNT|fuseiso %SOURCE_FILE %DESTINATION_DIR, + +" SshMount +filetype *.ssh + \ {Mount with sshfs} + \ FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR %FOREGROUND, + +" FtpMount +filetype *.ftp + \ {Mount with curlftpfs} + \ FUSE_MOUNT2|curlftpfs -o ftp_port=-,,disable_eprt %PARAM %DESTINATION_DIR %FOREGROUND, + +" Fuse7z and 7z archives +filetype *.7z + \ {Mount with fuse-7z} + \ FUSE_MOUNT|fuse-7z %SOURCE_FILE %DESTINATION_DIR, +fileviewer *.7z 7z l %c + +" Office files +filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx libreoffice %f & +fileviewer *.doc catdoc %c +fileviewer *.docx docx2txt.pl %f - + +" TuDu files +filetype *.tudu tudu -f %c + +" Qt projects +filextype *.pro qtcreator %f & + +" ------------------------------------------------------------------------------ + +" What should be saved automatically between vifm runs +" Like in previous versions of vifm +" set vifminfo=options,filetypes,commands,bookmarks,dhistory,state,cs +" Like in vi +set vifminfo=dhistory,savedirs,chistory,state,tui,shistory, + \phistory,fhistory,dirstack,registers,bookmarks,bmarks + +" ------------------------------------------------------------------------------ + +" Examples of configuring both panels + +" Customize view columns a bit (enable ellipsis for truncated file names) +" +" set viewcolumns=-{name}..,6{}. + +" Filter-out build and temporary files +" +" filter! /^.*\.(lo|o|d|class|py[co])$|.*~$/ + +" ------------------------------------------------------------------------------ + +" Sample mappings + +" Start shell in current directory +nnoremap s :shell<cr> + +" Display sorting dialog +nnoremap S :sort<cr> + +" Toggle visibility of preview window +nnoremap w :view<cr> +vnoremap w :view<cr>gv + +" Open file in existing instance of gvim +nnoremap o :!gvim --remote-tab-silent %f<cr> +" Open file in new instance of gvim +nnoremap O :!gvim %f<cr> + +" Open file in the background using its default program +nnoremap gb :file &<cr>l + +" Yank current directory path into the clipboard +nnoremap yd :!echo %d | xclip %i<cr> + +" Yank current file path into the clipboard +nnoremap yf :!echo %c:p | xclip %i<cr> + +" Mappings for faster renaming +nnoremap I cw<c-a> +nnoremap cc cw<c-u> +nnoremap A cw + +" Open console in current directory +nnoremap ,t :!xterm &<cr> + +" Open editor to edit vifmrc and apply settings after returning to vifm +nnoremap ,c :write | edit $MYVIFMRC | restart<cr> +" Open gvim to edit vifmrc +nnoremap ,C :!gvim --remote-tab-silent $MYVIFMRC &<cr> + +" Toggle wrap setting on ,w key +nnoremap ,w :set wrap!<cr> + +" Example of standard two-panel file managers mappings +nnoremap <f3> :!less %f<cr> +nnoremap <f4> :edit<cr> +nnoremap <f5> :copy<cr> +nnoremap <f6> :move<cr> +nnoremap <f7> :mkdir<space> +nnoremap <f8> :delete<cr> +map > :!vifmimg inc<CR> +map < :!vifmimg dec<CR> + +" ------------------------------------------------------------------------------ + +" Various customization examples + +" Use ag (the silver searcher) instead of grep +" +" set grepprg='ag --line-numbers %i %a %s' + +" Add additional place to look for executables +" +" let $PATH = $HOME.'/bin/fuse:'.$PATH + +" Block particular shortcut +" +" nnoremap <left> <nop> + +" Export IPC name of current instance as environment variable and use it to +" communicate with the instance later. +" +" It can be used in some shell script that gets run from inside vifm, for +" example, like this: +" vifm --server-name "$VIFM_SERVER_NAME" --remote +"cd '$PWD'" +" +" let $VIFM_SERVER_NAME = v:servername diff --git a/vim/.netrwhist b/vim/.netrwhist new file mode 100644 index 0000000..15463f6 --- /dev/null +++ b/vim/.netrwhist @@ -0,0 +1,12 @@ +let g:netrw_dirhistmax =10 +let g:netrw_dirhistcnt =3 +let g:netrw_dirhist_3='/home/train/work/st' +let g:netrw_dirhist_2='/home/trollshotlol/.config/vim/autoload' +let g:netrw_dirhist_1='/etc/urlview' +let g:netrw_dirhist_0='/home/trollshotlol/Games/HL2/config' +let g:netrw_dirhist_9='/home/trollshotlol/.config/vim/autoload' +let g:netrw_dirhist_8='/home/trollshotlol/.config/jellyfin-mpv-shim' +let g:netrw_dirhist_7='/home/trollshotlol/.local/share/qutebrowser/qutebrowser/QtWebEngine/OffTheRecord' +let g:netrw_dirhist_6='/mnt/trollshotlol@maeve/transmission' +let g:netrw_dirhist_5='/home/trollshotlol/.config' +let g:netrw_dirhist_4='/home/trollshotlol/.moonchild productions/pale moon/muhhfi3j.default' diff --git a/vim/swap/.swp b/vim/swap/.swp Binary files differnew file mode 100644 index 0000000..f52ebf6 --- /dev/null +++ b/vim/swap/.swp diff --git a/vim/viminfo b/vim/viminfo new file mode 100644 index 0000000..cb07797 --- /dev/null +++ b/vim/viminfo @@ -0,0 +1,1435 @@ +# This viminfo file was generated by Vim 8.2. +# You may edit it if you're careful! + +# Viminfo version +|1,4 + +# Value of 'encoding' when this file was written +*encoding=utf-8 + + +# hlsearch on (H) or off (h): +~h +# Last Search Pattern: +~MSle0~/\vsolari + +# Last Substitute Search Pattern: +~MSle0&SEAL\ OF + +# Last Substitute String: +$ + +# Command Line History (newest to oldest): +:wq +|2,0,1616470628,,"wq" +:source % +|2,0,1616470618,,"source %" +:w +|2,0,1616470617,,"w" +:q +|2,0,1616470603,,"q" +:PluginInstall % +|2,0,1616470597,,"PluginInstall %" +:Wq +|2,0,1602814886,,"Wq" +:q! +|2,0,1602814798,,"q!" +:'<,'>wq! +|2,0,1602814353,,"'<,'>wq!" +:wq! +|2,0,1602814279,,"wq!" +:help packages +|2,0,1602814016,,"help packages" +:L +|2,0,1602813851,,"L" +:later +|2,0,1602667092,,"later" +:LLPStartPreview +|2,0,1602666902,,"LLPStartPreview" +:let g:livepreview_use_biber = 1 +|2,0,1602666901,,"let g:livepreview_use_biber = 1" +: +|2,0,1602666700,,"" +:jjjjjjjjjk +|2,0,1602666551,,"jjjjjjjjjk" +:Q +|2,0,1602664027,,"Q" +:put =range(1,18) +|2,0,1602023667,,"put =range(1,18)" +:read !ls +|2,0,1601544003,,"read !ls" +:ls +|2,0,1601543942,,"ls" +:!ls +|2,0,1601543929,,"!ls" +:Q! +|2,0,1600915704,,"Q!" +:W +|2,0,1600758605,,"W" +:set norelativenumber +|2,0,1600718621,,"set norelativenumber" +:set nonumber +|2,0,1600718619,,"set nonumber" +:set paste +|2,0,1600668263,,"set paste" +:e ~/Work/flitter/examples/splits.scm +|2,0,1600647484,,"e ~/Work/flitter/examples/splits.scm" +:e ~/Downloads/splits.scm +|2,0,1600647403,,"e ~/Downloads/splits.scm" +:e coretop +|2,0,1600647400,,"e coretop" +:qq +|2,0,1600642631,,"qq" +:qh +|2,0,1599807029,,"qh" +:qpip +|2,0,1599786317,,"qpip" +:,,, +|2,0,1599339301,,",,," +:nnoremap <F8> :setl noai nocin nosi inde=<CR> +|2,0,1599294636,,"nnoremap <F8> :setl noai nocin nosi inde=<CR>" +:verbose set ai? cin? cink? cino? si? inde? indk? +|2,0,1599294625,,"verbose set ai? cin? cink? cino? si? inde? indk?" +::verbose set ai? cin? cink? cino? si? inde? indk? +|2,0,1599294623,,":verbose set ai? cin? cink? cino? si? inde? indk?" +:filetype indent off +|2,0,1599294610,,"filetype indent off" +:%s/172.88.52.69/172.88.59.39/g +|2,0,1599032880,,"%s/172.88.52.69/172.88.59.39/g" +:wqkkk +|2,0,1598082761,,"wqkkk" +:e user-overrides.js +|2,0,1597558719,,"e user-overrides.js" +:e backup1.txt +|2,0,1597143517,,"e backup1.txt" +:e stripe_backup_code.txt +|2,0,1597143512,,"e stripe_backup_code.txt" +:%s/.*/mv -i & \L&/g +|2,0,1597118234,,"%s/.*/mv -i & \\L&/g" +:% +|2,0,1597118230,,"%" +:e user.js +|2,0,1596529413,,"e user.js" +:%s/restart/crash/g +|2,0,1596263297,,"%s/restart/crash/g" +:%s/restarting/crashing/g +|2,0,1596263263,,"%s/restarting/crashing/g" +:e ~/Downloads/NoCheatPlus\ Config\ -\ 3.2/Auto-Ban\ Config/config.yml +|2,0,1595839685,,"e ~/Downloads/NoCheatPlus\\ Config\\ -\\ 3.2/Auto-Ban\\ Config/config.yml" +:vim +|2,0,1595839676,,"vim " +:world_nether +|2,0,1595745939,,"world_nether" +:e ~/Work/xmenu/xmenu.sh +|2,0,1595730231,,"e ~/Work/xmenu/xmenu.sh" +:e ~/Work/xmenu/xmenu.1 +|2,0,1595730211,,"e ~/Work/xmenu/xmenu.1" + +# Search String History (newest to oldest): +?/\vsolari +|2,1,1616470627,47,"\\vsolari" +?/\vbell +|2,1,1602814892,47,"\\vbell" +?/\vtty +|2,1,1602814859,47,"\\vtty" +?/\tty +|2,1,1602814857,47,"\\tty" +? @$ +|2,1,1602813958,,"@$" +?/border +|2,1,1602813717,47,"border" +?/opacity +|2,1,1602813568,47,"opacity" +?/tran +|2,1,1602813562,47,"tran" +?/enable +|2,1,1602812631,47,"enable" +?/biber +|2,1,1602666727,47,"biber" +?/biblat +|2,1,1602666714,47,"biblat" +?/appen +|2,1,1602665870,47,"appen" +?/APP +|2,1,1602665810,47,"APP" +?/app +|2,1,1602665808,47,"app" +?/profil +|2,1,1602665801,47,"profil" +?/bash +|2,1,1602665799,47,"bash" +?/PATH +|2,1,1602665677,47,"PATH" +?/B +|2,1,1602665063,47,"B" +?/input +|2,1,1602664978,47,"input" +?/biblio +|2,1,1602664822,47,"biblio" +?/startx +|2,1,1602547866,47,"startx" +?/svg.cont +|2,1,1602382874,47,"svg.cont" +?/profile +|2,1,1602381388,47,"profile" +?/p +|2,1,1602381386,47,"p" +?/pro +|2,1,1602381386,47,"pro" +?/hq +|2,1,1602381381,47,"hq" +?/2020 +|2,1,1602313544,47,"2020" +?/Archive +|2,1,1602313439,47,"Archive" +?/Arc +|2,1,1602313406,47,"Arc" +?/thunder +|2,1,1602313122,47,"thunder" +?/eth +|2,1,1602045331,47,"eth" +?/append +|2,1,1602020611,47,"append" +?/kbmou +|2,1,1601539604,47,"kbmou" +?/touchpad +|2,1,1601539289,47,"touchpad" +?/mousepad +|2,1,1601539285,47,"mousepad" +?/battery +|2,1,1600760103,47,"battery" +?/history +|2,1,1600648537,47,"history" +?/unit +|2,1,1600646689,47,"unit" +?/() +|2,1,1600646684,47,"()" +?/Taho +|2,1,1600645228,47,"Taho" +?/fnt +|2,1,1600645118,47,"fnt" +?/font +|2,1,1600644947,47,"font" +?/hunie +|2,1,1600642897,47,"hunie" +?/SPACE +|2,1,1600642465,47,"SPACE" +?/mapping +|2,1,1600642433,47,"mapping" +?/sens +|2,1,1600642026,47,"sens" +?/map +|2,1,1600642006,47,"map" +?/scroll +|2,1,1600641929,47,"scroll" +?/xset +|2,1,1600640816,47,"xset" +?/led +|2,1,1600640539,47,"led" +?/bind +|2,1,1600640491,47,"bind" + +# Expression History (newest to oldest): + +# Input Line History (newest to oldest): + +# Debug Line History (newest to oldest): + +# Registers: +"0 LINE 0 + \textbf{Grade: 1 STAR} +|3,0,0,1,1,0,1616372735," \\textbf{Grade: 1 STAR}" +""1 LINE 0 + \textbf{GRADE: 3 STAR} +|3,1,1,1,1,0,1616372740," \\textbf{GRADE: 3 STAR}" +"2 LINE 0 + \textbf{GRADE: 1 0.5STAR} +|3,0,2,1,1,0,1616372725," \\textbf{GRADE: 1 0.5STAR}" +"3 LINE 0 + \textbf{GRADE: 3 STARS} +|3,0,3,1,1,0,1616372714," \\textbf{GRADE: 3 STARS}" +"4 LINE 0 + \textbf{GRADE: 0.5 STAR} +|3,0,4,1,1,0,1616372700," \\textbf{GRADE: 0.5 STAR}" +"5 LINE 0 + \textbf{GRADE: 0.5 STAR} +|3,0,5,1,1,0,1616372680," \\textbf{GRADE: 0.5 STAR}" +"6 LINE 0 + \textbf{GRADE: 2 STARS} +|3,0,6,1,1,0,1616372650," \\textbf{GRADE: 2 STARS}" +"7 LINE 0 + \textbf{GRADE: 1 STARS} +|3,0,7,1,1,0,1616372643," \\textbf{GRADE: 1 STARS}" +"8 LINE 0 + \textbf{GRADE: 2 STARS} +|3,0,8,1,1,0,1616372636," \\textbf{GRADE: 2 STARS}" +"9 LINE 0 + \textbf{GRADE: 2 STARS} +|3,0,9,1,1,0,1616372615," \\textbf{GRADE: 2 STARS}" +"l CHAR 0 + uu +|3,0,21,0,1,0,1595665455,"uu" +"q CHAR 0 + aaaa +|3,0,26,0,1,0,1616372359,"aaaa" +"t@ CHAR 0 + nv$hhx +|3,2,29,0,1,0,1616372381,"nv$hhx" +"- CHAR 0 + S +|3,0,36,0,1,0,1616372731,"S" + +# global variables: + +# File marks: +'0 34 12 ~/.config/vim/vimrc +|4,48,34,12,1616470628,"~/.config/vim/vimrc" +'1 70 0 ~/.config/polybar/config +|4,49,70,0,1616468299,"~/.config/polybar/config" +'2 190 0 ~/.config/Xresources +|4,50,190,0,1616468287,"~/.config/Xresources" +'3 529 0 ~/docs/general/movie-list/main.tex +|4,51,529,0,1616381232,"~/docs/general/movie-list/main.tex" +'4 23 0 /etc/pacman.conf +|4,52,23,0,1616380593,"/etc/pacman.conf" +'5 23 46 ~/docs/general/movie-list/main.tex +|4,53,23,46,1616372776,"~/docs/general/movie-list/main.tex" +'6 23 46 ~/docs/general/movie-list/main.tex +|4,54,23,46,1616372776,"~/docs/general/movie-list/main.tex" +'7 100 0 ~/docs/general/movie-list/main.tex +|4,55,100,0,1616371472,"~/docs/general/movie-list/main.tex" +'8 76 0 ~/docs/general/movie-list/main.tex +|4,56,76,0,1616371472,"~/docs/general/movie-list/main.tex" +'9 100 0 ~/docs/general/movie-list/main.tex +|4,57,100,0,1616371472,"~/docs/general/movie-list/main.tex" + +# Jumplist (newest first): +-' 34 12 ~/.config/vim/vimrc +|4,39,34,12,1616470628,"~/.config/vim/vimrc" +-' 27 0 ~/.config/vim/vimrc +|4,39,27,0,1616470627,"~/.config/vim/vimrc" +-' 18 0 ~/.config/vim/vimrc +|4,39,18,0,1616470581,"~/.config/vim/vimrc" +-' 1 0 ~/.config/vim/vimrc +|4,39,1,0,1616470559,"~/.config/vim/vimrc" +-' 70 0 ~/.config/polybar/config +|4,39,70,0,1616468299,"~/.config/polybar/config" +-' 190 0 ~/.config/Xresources +|4,39,190,0,1616468287,"~/.config/Xresources" +-' 11 0 ~/.config/Xresources +|4,39,11,0,1616468269,"~/.config/Xresources" +-' 1 0 ~/.config/Xresources +|4,39,1,0,1616468267,"~/.config/Xresources" +-' 90 28 ~/.config/polybar/config +|4,39,90,28,1616468257,"~/.config/polybar/config" +-' 88 33 ~/.config/polybar/config +|4,39,88,33,1616468256,"~/.config/polybar/config" +-' 82 34 ~/.config/polybar/config +|4,39,82,34,1616468256,"~/.config/polybar/config" +-' 78 36 ~/.config/polybar/config +|4,39,78,36,1616468255,"~/.config/polybar/config" +-' 73 34 ~/.config/polybar/config +|4,39,73,34,1616468255,"~/.config/polybar/config" +-' 72 34 ~/.config/polybar/config +|4,39,72,34,1616468254,"~/.config/polybar/config" +-' 32 21 ~/.config/polybar/config +|4,39,32,21,1616468253,"~/.config/polybar/config" +-' 30 21 ~/.config/polybar/config +|4,39,30,21,1616468253,"~/.config/polybar/config" +-' 29 21 ~/.config/polybar/config +|4,39,29,21,1616468252,"~/.config/polybar/config" +-' 183 18 ~/.config/polybar/config +|4,39,183,18,1616468252,"~/.config/polybar/config" +-' 91 28 ~/.config/polybar/config +|4,39,91,28,1616468252,"~/.config/polybar/config" +-' 27 81 ~/.config/polybar/config +|4,39,27,81,1616468249,"~/.config/polybar/config" +-' 26 73 ~/.config/polybar/config +|4,39,26,73,1616468248,"~/.config/polybar/config" +-' 24 58 ~/.config/polybar/config +|4,39,24,58,1616468248,"~/.config/polybar/config" +-' 377 28 ~/.config/polybar/config +|4,39,377,28,1616468248,"~/.config/polybar/config" +-' 378 0 ~/.config/polybar/config +|4,39,378,0,1616468248,"~/.config/polybar/config" +-' 350 15 ~/.config/polybar/config +|4,39,350,15,1616468248,"~/.config/polybar/config" +-' 56 26 ~/.config/polybar/config +|4,39,56,26,1616468248,"~/.config/polybar/config" +-' 373 15 ~/.config/polybar/config +|4,39,373,15,1616468221,"~/.config/polybar/config" +-' 21 10 ~/.config/polybar/config +|4,39,21,10,1616468218,"~/.config/polybar/config" +-' 23 48 ~/.config/polybar/config +|4,39,23,48,1616468217,"~/.config/polybar/config" +-' 236 23 ~/.config/polybar/config +|4,39,236,23,1616468217,"~/.config/polybar/config" +-' 237 0 ~/.config/polybar/config +|4,39,237,0,1616468217,"~/.config/polybar/config" +-' 99 15 ~/.config/polybar/config +|4,39,99,15,1616468217,"~/.config/polybar/config" +-' 529 0 ~/docs/general/movie-list/main.tex +|4,39,529,0,1616381232,"~/docs/general/movie-list/main.tex" +-' 529 0 ~/docs/general/movie-list/main.tex +|4,39,529,0,1616381232,"~/docs/general/movie-list/main.tex" +-' 19 0 ~/docs/general/movie-list/main.tex +|4,39,19,0,1616381225,"~/docs/general/movie-list/main.tex" +-' 19 0 ~/docs/general/movie-list/main.tex +|4,39,19,0,1616381225,"~/docs/general/movie-list/main.tex" +-' 501 0 ~/docs/general/movie-list/main.tex +|4,39,501,0,1616380811,"~/docs/general/movie-list/main.tex" +-' 501 0 ~/docs/general/movie-list/main.tex +|4,39,501,0,1616380811,"~/docs/general/movie-list/main.tex" +-' 2 0 ~/docs/general/movie-list/main.tex +|4,39,2,0,1616380759,"~/docs/general/movie-list/main.tex" +-' 2 0 ~/docs/general/movie-list/main.tex +|4,39,2,0,1616380759,"~/docs/general/movie-list/main.tex" +-' 1 0 ~/docs/general/movie-list/main.tex +|4,39,1,0,1616380757,"~/docs/general/movie-list/main.tex" +-' 1 0 ~/docs/general/movie-list/main.tex +|4,39,1,0,1616380757,"~/docs/general/movie-list/main.tex" +-' 23 0 /etc/pacman.conf +|4,39,23,0,1616380593,"/etc/pacman.conf" +-' 23 0 /etc/pacman.conf +|4,39,23,0,1616380593,"/etc/pacman.conf" +-' 23 0 /etc/pacman.conf +|4,39,23,0,1616380593,"/etc/pacman.conf" +-' 23 0 /etc/pacman.conf +|4,39,23,0,1616380593,"/etc/pacman.conf" +-' 1 0 /etc/pacman.conf +|4,39,1,0,1616380590,"/etc/pacman.conf" +-' 1 0 /etc/pacman.conf +|4,39,1,0,1616380590,"/etc/pacman.conf" +-' 1 0 /etc/pacman.conf +|4,39,1,0,1616380590,"/etc/pacman.conf" +-' 1 0 /etc/pacman.conf +|4,39,1,0,1616380590,"/etc/pacman.conf" +-' 23 46 ~/docs/general/movie-list/main.tex +|4,39,23,46,1616372776,"~/docs/general/movie-list/main.tex" +-' 23 46 ~/docs/general/movie-list/main.tex +|4,39,23,46,1616372776,"~/docs/general/movie-list/main.tex" +-' 23 46 ~/docs/general/movie-list/main.tex +|4,39,23,46,1616372776,"~/docs/general/movie-list/main.tex" +-' 23 46 ~/docs/general/movie-list/main.tex +|4,39,23,46,1616372776,"~/docs/general/movie-list/main.tex" +-' 23 46 ~/docs/general/movie-list/main.tex +|4,39,23,46,1616372776,"~/docs/general/movie-list/main.tex" +-' 23 46 ~/docs/general/movie-list/main.tex +|4,39,23,46,1616372776,"~/docs/general/movie-list/main.tex" +-' 134 7 ~/docs/general/movie-list/main.tex +|4,39,134,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 130 7 ~/docs/general/movie-list/main.tex +|4,39,130,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 126 7 ~/docs/general/movie-list/main.tex +|4,39,126,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 122 7 ~/docs/general/movie-list/main.tex +|4,39,122,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 118 7 ~/docs/general/movie-list/main.tex +|4,39,118,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 114 7 ~/docs/general/movie-list/main.tex +|4,39,114,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 110 7 ~/docs/general/movie-list/main.tex +|4,39,110,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 106 7 ~/docs/general/movie-list/main.tex +|4,39,106,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 102 7 ~/docs/general/movie-list/main.tex +|4,39,102,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 98 7 ~/docs/general/movie-list/main.tex +|4,39,98,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 94 7 ~/docs/general/movie-list/main.tex +|4,39,94,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 134 7 ~/docs/general/movie-list/main.tex +|4,39,134,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 130 7 ~/docs/general/movie-list/main.tex +|4,39,130,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 126 7 ~/docs/general/movie-list/main.tex +|4,39,126,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 122 7 ~/docs/general/movie-list/main.tex +|4,39,122,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 118 7 ~/docs/general/movie-list/main.tex +|4,39,118,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 114 7 ~/docs/general/movie-list/main.tex +|4,39,114,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 110 7 ~/docs/general/movie-list/main.tex +|4,39,110,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 106 7 ~/docs/general/movie-list/main.tex +|4,39,106,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 102 7 ~/docs/general/movie-list/main.tex +|4,39,102,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 98 7 ~/docs/general/movie-list/main.tex +|4,39,98,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 94 7 ~/docs/general/movie-list/main.tex +|4,39,94,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 134 7 ~/docs/general/movie-list/main.tex +|4,39,134,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 130 7 ~/docs/general/movie-list/main.tex +|4,39,130,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 126 7 ~/docs/general/movie-list/main.tex +|4,39,126,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 122 7 ~/docs/general/movie-list/main.tex +|4,39,122,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 118 7 ~/docs/general/movie-list/main.tex +|4,39,118,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 114 7 ~/docs/general/movie-list/main.tex +|4,39,114,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 110 7 ~/docs/general/movie-list/main.tex +|4,39,110,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 106 7 ~/docs/general/movie-list/main.tex +|4,39,106,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 102 7 ~/docs/general/movie-list/main.tex +|4,39,102,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 98 7 ~/docs/general/movie-list/main.tex +|4,39,98,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 94 7 ~/docs/general/movie-list/main.tex +|4,39,94,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 134 7 ~/docs/general/movie-list/main.tex +|4,39,134,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 130 7 ~/docs/general/movie-list/main.tex +|4,39,130,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 126 7 ~/docs/general/movie-list/main.tex +|4,39,126,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 122 7 ~/docs/general/movie-list/main.tex +|4,39,122,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 118 7 ~/docs/general/movie-list/main.tex +|4,39,118,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 114 7 ~/docs/general/movie-list/main.tex +|4,39,114,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 110 7 ~/docs/general/movie-list/main.tex +|4,39,110,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 106 7 ~/docs/general/movie-list/main.tex +|4,39,106,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 102 7 ~/docs/general/movie-list/main.tex +|4,39,102,7,1616372766,"~/docs/general/movie-list/main.tex" +-' 1 0 ~/down/[Empornium]JAV - Constantly Squirting Newscasters 1080P - [SDDE-638].torrent +|4,39,1,0,1608773709,"~/down/[Empornium]JAV - Constantly Squirting Newscasters 1080P - [SDDE-638].torrent" +-' 1 0 ~/down/[Empornium]JAV - Constantly Squirting Newscasters 1080P - [SDDE-638].torrent +|4,39,1,0,1608773709,"~/down/[Empornium]JAV - Constantly Squirting Newscasters 1080P - [SDDE-638].torrent" + +# History of marks within files (newest to oldest): + +> ~/.config/vim/vimrc + * 1616470628 0 + " 34 12 + ^ 16 1 + . 17 0 + + 13 0 + + 14 0 + + 17 0 + + 18 0 + + 16 0 + + 13 0 + + 14 0 + + 16 0 + + 17 0 + +> ~/down/[Empornium]JAV - Constantly Squirting Newscasters 1080P - [SDDE-638].torrent + * 1608773708 0 + " 1 0 + +> ~/.config/vim/after/plugin/dracula.vim + * 1602814121 0 + " 1 0 + +> ~/.config/vim/plugin/NrrwRgn.vim + * 1602814098 0 + " 1 0 + +> ~/.bashrc + * 1602814089 0 + " 1 0 + ^ 28 18 + . 28 17 + + 30 11 + + 31 0 + + 25 35 + + 25 31 + + 74 0 + + 68 10 + + 26 31 + + 25 0 + + 28 17 + +> /usr/share/vim/vim82/doc/repeat.txt + * 1602814031 0 + " 565 0 + +> /tmp/vim-live-latex-preview/ftplugin/tex/live-latex-preview.vim + * 1602813827 0 + " 97 0 + +> ~/Work/st/config.h + * 1602813746 0 + " 8 49 + ^ 8 47 + . 8 49 + + 8 47 + + 111 16 + + 8 54 + + 156 34 + + 10 23 + + 8 49 + +> ~/Documents/Files/School/RLST 150/sacred site/main.tex + * 1602813348 0 + " 1 2 + . 2 0 + + 19 21 + + 14 13 + + 14 26 + + 17 0 + + 14 0 + + 13 0 + + 14 0 + + 12 0 + + 32 0 + + 2 0 + +> ~/Documents/Files/School/RLST 150/sacred site/main. + * 1602813295 0 + " 1 0 + +> ~/Work/config.h + * 1602813054 0 + " 1 0 + +> ~/Work/st/config.mk + * 1602812790 0 + " 1 0 + +> ~/Work/st/config. + * 1602812779 0 + " 1 0 + +> ~/.config/herbstluftwm/autostart + * 1602812669 0 + " 1 0 + +> /etc/inputrc + * 1602812644 0 + " 11 0 + +> /etc/profile.pacnew + * 1602665885 0 + " 1 0 + +> /etc/bash.bashrc + * 1602665870 0 + " 22 0 + +> /etc/profile + * 1602665844 0 + " 18 0 + +> ~/.config/bash/.bash_profile + * 1602665823 0 + " 1 0 + +> ~/.profile + * 1602665810 0 + " 1 0 + ^ 20 28 + . 20 27 + + 2 0 + + 3 0 + + 21 46 + + 23 0 + + 22 0 + + 23 6 + + 22 0 + + 21 0 + + 21 7 + + 21 64 + + 21 6 + + 22 0 + + 12 33 + + 1 62 + + 24 0 + + 20 27 + +> /tmp/bash-fc.D6dTSo + * 1602665804 0 + " 1 0 + ^ 1 0 + +> /etc/profile.d/perlbin.sh + * 1602665746 0 + " 1 0 + +> /etc/profile.d/perlbin. + * 1602665728 0 + " 1 0 + +> ~/Documents/Files/School/RLST 150/sacred site/main.aux + * 1602665468 0 + " 1 0 + +> ~/Documents/Files/School/bibliography.bib + * 1602664027 0 + " 1 0 + . 2 0 + + 2 0 + + 2 3 + + 2 0 + +> /etc/urlview/url_handler.sh + * 1602554682 0 + " 31 17 + . 31 17 + + 31 17 + +> /etc/urlview/system.urlview + * 1602554651 0 + " 28 0 + +> ~/.config/X11/xinitrc + * 1602395960 0 + " 47 0 + ^ 39 20 + . 39 19 + + 46 16 + + 45 0 + + 46 25 + + 45 0 + + 40 0 + + 40 9 + + 45 0 + + 44 17 + + 40 0 + + 39 19 + +> ~/.mozilla/firefox/ziqq99mu.ghacks/user.js + * 1602382907 0 + " 1804 0 + +> ~/.mozilla/firefox/ziqq99mu.ghacks/user-overrides.js + * 1602382888 0 + " 12 58 + ^ 12 60 + . 12 59 + + 12 59 + +> ~/MaterialFox/user.js + * 1602382862 0 + " 1 0 + +> ~/install.sh + * 1602382682 0 + " 47 0 + +> ~/.gtk-bookmarks + * 1602382523 0 + " 1 0 + +> ~/.config/mpv/mpv.conf + * 1602381672 0 + " 28 0 + ^ 4 1 + . 4 0 + + 28 0 + + 38 0 + + 28 0 + + 38 0 + + 28 12 + + 28 0 + + 38 0 + + 28 0 + + 28 10 + + 28 0 + + 49 0 + + 28 0 + + 28 12 + + 28 0 + + 28 12 + + 38 0 + + 28 0 + + 49 8 + + 28 0 + + 38 0 + + 28 0 + + 28 8 + + 28 0 + + 4 0 + + 49 0 + + 37 0 + + 15 0 + + 16 0 + + 19 0 + + 18 0 + + 17 0 + + 16 0 + + 22 0 + + 12 0 + + 13 0 + + 14 0 + + 11 0 + + 10 0 + + 9 0 + + 8 0 + + 7 0 + + 6 0 + + 4 0 + +> ~/.config/streamlink/config + * 1602381302 0 + " 1 9 + ^ 1 10 + . 1 0 + + 1 0 + +> ~/.config/mpv/scripts/sponsorblock.lua + * 1602380814 0 + " 1 0 + +> ~/.config/mpv/scripts/sponsorblock + * 1602380811 0 + " 1 0 + +> /tmp/neomutt-mavis-1000-60409-5502238280598507956 + * 1602362545 0 + " 1 0 + +> /tmp/crontab.ZAi83I + * 1602314710 0 + " 1 0 + +> /tmp/crontab.N9tRKP + * 1602314577 0 + " 1 0 + . 1 0 + + 1 0 + +> /tmp/crontab.7eE092 + * 1602314453 0 + " 1 0 + +> /tmp/crontab.xTT2Ef + * 1602314004 0 + " 1 0 + +> /tmp/crontab.ViHH0g + * 1602314001 0 + " 1 36 + ^ 1 37 + . 1 0 + + 1 0 + +> /etc/pacman.d/mirrorlist + * 1602313791 0 + " 1 0 + +> ~/.config/mutt/accounts/2-grandmajoe@waifu.club.muttrc + * 1602313572 0 + " 42 0 + +> ~/.config/mutt/accounts/1-trainytrain@rape.lol.muttrc + * 1602313566 0 + " 42 0 + . 28 0 + + 20 31 + + 28 46 + + 25 0 + + 28 0 + +> ~/.mbsyncrc + * 1602313415 0 + " 78 0 + +> /tmp/neomutt-mavis-1000-44888-956852009068407129 + * 1602313267 0 + " 1 0 + +> /tmp/neomutt-mavis-1000-44888-11317525952656089532 + * 1602313244 0 + " 1 0 + +> ~/.config/sxhkd/sxhkdrc + * 1602313131 0 + " 20 13 + ^ 20 14 + . 20 13 + + 14 1 + + 18 6 + + 20 13 + +> /mnt/usb/koreader/fonts/README.md + * 1602290721 0 + " 1 0 + +> /tmp/vifm.rename_15211522_00 + * 1602115194 0 + " 231 0 + . 1 3 + + 1 3 + +> ~/band.txt + * 1602106497 0 + " 4 4 + ^ 4 5 + . 4 4 + + 3 17 + + 5 10 + + 3 17 + + 1 17 + + 2 9 + + 4 0 + + 6 11 + + 4 4 + +> ~/.config/polybar/config + * 1602045339 0 + " 183 8 + ^ 228 30 + . 228 29 + + 58 42 + + 215 12 + + 235 14 + + 239 0 + + 235 0 + + 229 0 + + 228 29 + +> /tmp/vifm.rename_15251526_00 + * 1602023765 0 + " 2 0 + ^ 10 2 + . 2 0 + + 1 0 + + 2 0 + + 3 0 + + 4 0 + + 5 0 + + 6 0 + + 7 0 + + 8 0 + + 9 0 + + 10 0 + + 11 0 + + 12 0 + + 13 0 + + 14 0 + + 15 0 + + 16 0 + + 17 0 + + 18 0 + + 1 0 + + 2 0 + + 1 0 + + 2 0 + + 3 0 + + 4 0 + + 5 0 + + 6 0 + + 7 0 + + 8 0 + + 1 0 + + 2 0 + + 3 0 + + 4 0 + + 5 0 + + 6 0 + + 7 0 + + 8 0 + + 9 0 + + 10 0 + + 11 0 + + 12 0 + + 13 0 + + 14 0 + + 15 0 + + 16 0 + + 17 0 + + 18 0 + + 19 1 + + 18 1 + + 17 1 + + 16 1 + + 15 1 + + 14 1 + + 13 1 + + 12 1 + + 11 1 + + 10 1 + + 9 0 + + 8 0 + + 9 0 + + 7 0 + + 6 0 + + 5 0 + + 4 0 + + 3 0 + + 2 0 + +> /etc/hostname + * 1601876382 0 + " 1 0 + +> /etc/resolv.conf + * 1601876264 0 + " 7 0 + ^ 7 1 + . 7 0 + + 7 0 + +> ~/.config/newsboat/urls + * 1601866950 0 + " 55 231 + ^ 55 232 + . 55 231 + + 54 45 + + 55 231 + +> ~/Downloads/The Federalist papers (9140)/The Federalist papers - Alexander Hamilton.epub + * 1601865876 0 + " 1 0 + . 1 0 + + 1 0 + +> ~/Downloads/zone_cumzone_xyz.txt + * 1601619797 0 + " 23 0 + +> ~/Downloads/tor.txt + * 1601544875 0 + " 1 0 + ^ 8 83 + . 8 78 + + 1 0 + + 8 78 + +> ~/.config/ds4drv.conf + * 1601539974 0 + " 44 0 + . 174 0 + + 174 0 + + 18 0 + + 9 0 + + 39 6 + + 9 0 + + 18 0 + + 36 0 + + 45 0 + + 42 0 + + 114 22 + + 45 0 + + 42 0 + + 39 6 + + 110 0 + + 118 0 + + 119 0 + + 114 23 + + 86 16 + + 86 0 + + 86 26 + + 86 7 + + 86 8 + + 86 7 + + 86 0 + + 85 0 + + 18 0 + + 39 6 + + 45 0 + + 42 0 + + 174 0 + +> ~/notes.txt + * 1601434785 0 + " 70 0 + ^ 4 0 + . 4 0 + + 3 136 + + 3 0 + + 2 146 + + 7 123 + + 9 33 + + 10 107 + + 12 114 + + 14 282 + + 16 283 + + 14 17 + + 19 28 + + 16 284 + + 15 361 + + 2 1 + + 3 1 + + 6 1 + + 7 0 + + 10 0 + + 11 0 + + 15 0 + + 16 0 + + 17 56 + + 19 13 + + 20 195 + + 21 105 + + 22 176 + + 25 320 + + 26 140 + + 27 97 + + 28 116 + + 30 32 + + 32 101 + + 33 85 + + 35 65 + + 36 103 + + 37 51 + + 38 117 + + 39 94 + + 39 0 + + 40 57 + + 41 0 + + 42 77 + + 44 21 + + 46 70 + + 48 76 + + 50 111 + + 52 47 + + 53 99 + + 54 78 + + 56 23 + + 57 110 + + 58 218 + + 59 110 + + 60 37 + + 2 0 + + 5 0 + + 61 122 + + 62 158 + + 63 290 + + 67 24 + + 67 0 + + 65 8 + + 66 159 + + 67 297 + + 68 154 + + 67 301 + + 69 173 + + 70 87 + + 71 0 + + 2 0 + + 4 0 + +> ~/.config/mpv/scripts/webm.lua + * 1601090402 0 + " 11 0 + +> /dev/shm/pass.mls98P6eYNjnd/drdJZQ-Root-General-rape.lol-Amazon (me).txt + * 1601022296 0 + " 3 14 + . 3 14 + + 3 14 + +> /dev/shm/pass.jT3IbOy4EMbI7/66xf48-Root-General-protonmail-prof-EDD.txt + * 1600992327 0 + " 1 25 + ^ 1 26 + . 1 25 + + 4 40 + + 1 25 + +> /dev/shm/pass.EIOR5FkceiEsD/XK3PSI-Root-General-protonmail-prof-EDD.txt + * 1600991255 0 + " 1 0 + +> /dev/shm/pass.LRc2fTPpB0rfR/2g1ygh-Root-General-protonmail-prof-EDD.txt + * 1600991252 0 + " 4 52 + ^ 4 53 + . 4 0 + + 4 0 + +> /dev/shm/pass.Rh2UMqG590LqU/EGr3cJ-Root-General-protonmail-prof-EDD.txt + * 1600757683 0 + " 4 53 + ^ 4 54 + . 4 53 + + 4 53 + +> /dev/shm/pass.Wqxfl6D2Zw1cl/M3i2kX-Root-General-protonmail-prof-EDD.txt + * 1600757542 0 + " 4 55 + ^ 4 56 + . 4 55 + + 4 55 + +> /dev/shm/pass.1uYeiKXoYRMUw/lxUl2V-Root-General-protonmail-prof-EDD.txt + * 1600757347 0 + " 4 36 + ^ 4 37 + . 4 36 + + 4 36 + +> /dev/shm/pass.bhVMxG2ropPtN/STb7st-Root-General-protonmail-prof-EDD.txt + * 1600757323 0 + " 4 31 + ^ 4 32 + . 4 31 + + 4 31 + +> /dev/shm/pass.tssy0eCnDNjQx/JE1kmg-Root-General-protonmail-prof-EDD.txt + * 1600757231 0 + " 3 14 + ^ 3 15 + . 3 14 + + 3 14 + +> /dev/shm/pass.MJjHq2NWu4pVQ/zpfSwA-Root-General-protonmail-prof-EDD.txt + * 1600757206 0 + " 3 14 + ^ 3 15 + . 3 14 + + 3 14 + +> ~/Downloads/zoomers-rants.ghost.2020-09-21-06-34-44.json + * 1600670114 0 + " 1 1398902 + +> ~/Downloads/liebling/src/sass/common/_themes.scss + * 1600668267 0 + " 18 0 + ^ 18 1 + . 18 0 + + 1 0 + + 2 0 + + 18 0 + +> ~/Downloads/splits-small.scm + * 1600648560 0 + " 5 62 + ^ 5 63 + . 5 63 + + 6 0 + + 5 63 + +> ~/Work/flitter/examples/splits-small.scm + * 1600648454 0 + " 6 6 + ^ 6 7 + . 6 6 + + 3 12 + + 4 12 + + 1 20 + + 2 26 + + 12 13 + + 11 16 + + 10 16 + + 9 16 + + 8 16 + + 7 15 + + 11 39 + + 12 38 + + 1 0 + + 12 0 + + 11 11 + + 10 11 + + 9 11 + + 8 11 + + 7 17 + + 8 18 + + 9 18 + + 10 18 + + 5 50 + + 12 0 + + 11 43 + + 12 44 + + 11 41 + + 12 41 + + 17 0 + + 16 39 + + 17 0 + + 6 13 + + 9 5 + + 9 0 + + 5 59 + + 7 34 + + 9 6 + + 7 32 + + 9 4 + + 11 6 + + 13 6 + + 15 6 + + 16 32 + + 6 6 + +> ~/Downloads/splits.scm + * 1600647762 0 + " 1 0 + ^ 25 9 + . 25 8 + + 1 21 + + 2 26 + + 3 12 + + 4 12 + + 5 64 + + 13 0 + + 13 17 + + 13 0 + + 13 14 + + 13 17 + + 13 0 + + 23 0 + + 22 16 + + 21 15 + + 20 17 + + 19 14 + + 18 14 + + 17 19 + + 18 19 + + 19 19 + + 20 19 + + 17 33 + + 18 32 + + 19 32 + + 18 32 + + 19 35 + + 20 34 + + 21 35 + + 22 31 + + 13 0 + + 13 17 + + 13 19 + + 13 18 + + 13 0 + + 13 14 + + 13 15 + + 13 0 + + 13 17 + + 13 16 + + 13 0 + + 22 57 + + 6 0 + + 13 0 + + 7 13 + + 8 13 + + 9 13 + + 10 13 + + 12 0 + + 13 0 + + 14 14 + + 16 0 + + 22 54 + + 25 8 + +> ~/Work/flitter/examples/splits.scm + * 1600647566 0 + " 24 0 + +> ~/flitter/vendor/notty/lwt/notty_lwt.ml + * 1600646692 0 + " 77 14 + +> ~/.config/urn/themes/material-esque.css + * 1600645261 0 + " 111 0 + ^ 62 32 + . 2 0 + + 2 31 + + 8 31 + + 25 31 + + 57 31 + + 62 31 + + 8 49 + + 57 0 + + 2 0 + +> ~/.config/urn/splits/huniepop.json + * 1600644955 0 + " 2 0 + +> ~/Games/HuniePop/HuniePop (Windows 64bit)/HuniePop_Data/PlayerConnectionConfigFile + * 1600644118 0 + " 1 0 + +> ~/Downloads/gog_huniepop_2.0.0.3.sh + * 1600643039 0 + " 1 0 + +> ~/ds4drv.conf + * 1600642402 0 + " 1 0 + +> /etc/ds4drv.conf + * 1600488367 0 + " 119 24 + ^ 118 1 + . 119 24 + + 118 22 + + 119 24 + +> ~/.config/minidlna/minidlna.conf + * 1600420437 0 + " 19 0 + ^ 18 11 + . 18 10 + + 18 34 + + 20 0 + + 19 36 + + 18 11 + + 19 13 + + 18 10 + +> ~/.config/minidlna/minidlna. + * 1600420434 0 + " 1 0 + +> ~/among.txt + * 1600407570 0 + " 1 83 + ^ 1 84 + . 1 0 + + 1 0 + +> ~/.config/vifm/vifmrc + * 1600213554 0 + " 174 53 + ^ 174 54 + . 174 53 + + 174 53 + +> /tmp/crontab.fDdNsW + * 1600158847 0 + " 1 0 + +> ~/Downloads/pushups.txt + * 1600146115 0 + " 1 0 + . 22 0 + + 21 14 + + 1 0 + + 22 0 + +> ~/Downloads/SETTLEMENT AGREEMENT.txt + * 1600138902 0 + " 1 0 + +> ~/Downloads/words_alpha.txt + * 1600069478 0 + " 1 0 + +> /dev/shm/pass.jBAik1vjRexFH/yZN4ev-Root-General-protonmail-prof-VistaPrint.txt + * 1599976630 0 + " 3 18 + ^ 3 19 + . 3 18 + + 3 18 + +> ~/Pictures/Saved/Zoomer's Rants-logo1/info.txt + * 1599973583 0 + " 1 0 + +> ~/.config/pulse/daemon.conf + * 1599810010 0 + " 83 29 + ^ 83 30 + . 83 29 + + 82 20 + + 83 29 + +> /etc/asound.conf + * 1599809941 0 + " 1 0 + +> /tmp/vifm.rename_562222562223_00 + * 1599806963 0 + " 1 0 + . 1 0 + + 1 0 diff --git a/vim/vimrc b/vim/vimrc new file mode 100644 index 0000000..77c7975 --- /dev/null +++ b/vim/vimrc @@ -0,0 +1,83 @@ +set undodir=$HOME/.config/vim/undo +set directory=$HOME/.config/vim/swap +set backupdir=$HOME/.config/vim/backup +set viewdir=$HOME/.config/vim/view +set viminfo+='1000,n$HOME/.config/vim/viminfo +set runtimepath=$HOME/.config/vim,$VIMRUNTIME,$HOME/.config/vim/after +set rtp+=$HOME/.config/vim/bundle/Vundle.vim +set enc=utf-8 + +call vundle#begin('$HOME/.config/vim/bundle') +" Put Plugins Here +Plugin 'VundleVim/Vundle.vim' +Plugin 'scrooloose/nerdcommenter' +Plugin 'junegunn/fzf' +Plugin 'junegunn/fzf.vim' +Plugin 'tpope/vim-sensible' +Plugin 'lervag/vimtex' +Plugin 'arcticicestudio/nord-vim' + +call vundle#end() + +" Fzflib +command! FZFLib call fzf#run({'source': 'find ~/.config/ ~/.local/bin -type f', 'sink': 'edit'}) + +" Theme +"set background=dark +colorscheme nord + +" Don't try to be vi compatible +set nocompatible + +" Turn on syntax highlighting +syntax on + +" For plugins to load correctly +filetype plugin indent on + +" TODO: Pick a leader key +" let mapleader = "\" + +" Security +set modelines=0 + +" Show line numbers set number +set relativenumber +set number + +" Move up/down editor lines +"nnoremap j gj +"nnoremap k gk + +" Allow hidden buffers +set hidden + +" Last line +set showmode +set showcmd + +" Searching +nnoremap / /\v +vnoremap / /\v +set hlsearch +set incsearch +set ignorecase +set smartcase +set showmatch +map <leader><space> :let @/=''<cr> " clear search + +" Undo Persistence +set undofile + +" Spellcheck +set spell spelllang=en_us + +" Show match count +set shortmess-=S + +set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab + +" Mappings +nnoremap \f :FZFLib<CR> +let g:tex_flavor = 'latex' +let g:vimtex_view_method = 'zathura' @@ -0,0 +1,56 @@ +#!/bin/sh + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/etc/X11/xinit/.Xresources +sysmodmap=/etc/X11/xinit/.Xmodmap + +# merge in defaults and keymaps + +if [ -f $sysresources ]; then + + + + + + + + xrdb -merge $sysresources + +fi + +if [ -f $sysmodmap ]; then + xmodmap $sysmodmap +fi + +if [ -f "$userresources" ]; then + + + + + + + + xrdb -merge "$userresources" + +fi + +if [ -f "$usermodmap" ]; then + xmodmap "$usermodmap" +fi + +[ -f ~/.xprofile ] && source ~/.xprofile + +# start some nice programs + +if [ -d /etc/X11/xinit/xinitrc.d ] ; then + for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do + [ -x "$f" ] && . "$f" + done + unset f +fi + +nitrogen --restore & +picom --config ~/.config/compton.conf & +sxhkd & +exec herbstluftwm diff --git a/xprofile b/xprofile new file mode 100644 index 0000000..b00535c --- /dev/null +++ b/xprofile @@ -0,0 +1,18 @@ +#!/bin/sh + +# This file runs when a DM logs you into a graphical session. +# If you use startx/xinit like a Chad, this file will also be sourced. + +# Fix Gnome Apps Slow Start due to failing services +# Add this when you include flatpak in your system +dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY + +mpd & # music player daemon-you might prefer it as a service though +gpg-agent & +syncthing & +#remaps & # run the remaps script, switching caps/esc and more; check it for more info +#setbg & # set the background with the `setbg` script +#xrdb ${XDG_CONFIG_HOME:-$HOME/.config}/Xresources & # Uncomment to use Xresources colors/settings on startup +#xcompmgr & # xcompmgr for transparency +dunst & # dunst for notifications +xset r rate 300 50 & # Speed xrate up diff --git a/zathura/zathurarc b/zathura/zathurarc new file mode 100644 index 0000000..29be9fe --- /dev/null +++ b/zathura/zathurarc @@ -0,0 +1,48 @@ +# settings +set adjust-open "best-fit" +set window-height "980" +set window-width "900" +set selection-clipboard "clipboard" +set statusbar-basename "true" +set pages-per-row "1" +set zoom-min "50" +set vertical-center "true" +set page-padding "2" # blank space between pages +set incremental-search "true" + + +# keybindings +map <F1> set "pages-per-row 1" +map <F2> set "pages-per-row 2" +map <C--> zoom out +map <C-=> zoom in +map i recolor + + +#stop at page boundries +set scroll-page-aware "true" +set scroll-full-overlap 0.01 +set scroll-step 100 + + +# appearance +set font "JetBrains Mono 8" +set default-bg "#282A36" +set default-fg "#F8F8F2" + +set highlight-color "#5f819d" +set highlight-active-color "#555aa7" + +set statusbar-bg "#0D0C03" +set statusbar-fg "#e1c697" + +set recolor-lightcolor "#282A36" +set recolor-darkcolor "#F8F8F2" +set recolor "true" #This define if the pdf will be dark ou light + +# setting recolor-keep true will keep any color your pdf has. +# if it is false, itll just be black and white +set recolor-keephue "true" + +# vim: set ft=conf: +set sandbox none |
