sudo vim /usr/share/X11/xorg.conf.d/40-libinput.conf
Add Option "ButtonMapping" "1 1 3 4 5" under
| #! /bin/bash | |
| function processSprite { | |
| file=$1 | |
| echo "Creating sprite sheet for $file..." | |
| filename=$(basename $file .aseprite) | |
| aseprite -b "$file" --sheet "assets/$filename-Sheet.png" > /dev/null | |
| } | |
| function processTilemap { |
| #! /bin/bash | |
| # This runs a new Docker container, mounts the current directory (Drupal root), | |
| # and runs an arbitrary drush command, in case you don't want to run it in dsession. | |
| sudo docker run --rm -it --init -v "$(pwd)":/var/www/tome mortenson/tome drush "$@" |
| <!-- | |
| This is a complex but realistic example of how you might use frameworks like | |
| Alpine.js and dom-diffing libraries like morphdom to create components that | |
| are re-rendered server-side. This example is heavily influenced by Livewire. | |
| In production, it might make more sense for just the dynamic part of the | |
| component to be AJAX-ified, in this case that would probably mean making the | |
| autocomplete results their own component. There are lots of ways to do this! | |
| --> |
| #!/bin/bash | |
| # This directory should persist between builds. | |
| CACHE_DIR=/tmp/tome_static | |
| set -e | |
| composer install | |
| mkdir -p "$CACHE_DIR" |
| #!/usr/bin/env node | |
| // This is a quick CSS audit script I wrote for finding overly long/specific selectors in CSS files. | |
| // Usage: Download this file, then run: | |
| // $ npx https://gist.github.com/mortenson/628fd527a25efe4fd1a4940e14c31066 <space separated list of CSS files to audit> | |
| const listSelectors = require('list-selectors'); | |
| const { calculate, compare } = require('specificity'); | |
| // This is useful if you want to anonymize the results to avoid blaming. |
| <?php | |
| namespace Drupal\sfc_example\Plugin\SingleFileComponent; | |
| use Drupal\Core\Form\FormStateInterface; | |
| use Drupal\sfc\ComponentBase; | |
| /** | |
| * Contains an example component that provides a block. | |
| * |
| <?php | |
| class SayHello implements ComponentInterface { | |
| const name = 'sayhello'; | |
| const template = <<<TWIG | |
| {% embed "@components/bigtext" %} | |
| {% block content Hello {{ name }}! %} | |
| {% endembed %} |
| <?php | |
| namespace Drupal\ppdx_editor\Plugin\Filter; | |
| use Drupal\Component\Utility\Html; | |
| use Drupal\Core\Entity\EntityRepositoryInterface; | |
| use Drupal\Core\Image\ImageFactory; | |
| use Drupal\Core\Plugin\ContainerFactoryPluginInterface; | |
| use Drupal\file\FileInterface; | |
| use Drupal\filter\FilterProcessResult; |
| FROM php:7.2-apache | |
| RUN apt-get update && \ | |
| apt-get install -y --no-install-recommends git zip openssh-client sqlite3 libsqlite3-dev | |
| # This is copied from the official Docker "drupal" image's Dockerfile. | |
| # install the PHP extensions we need | |
| RUN set -ex; \ | |
| \ | |
| if command -v a2enmod; then \ |