First commit. Hope it'll work...
21
_config.yml
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# Welcome to Jekyll!
|
||||||
|
#
|
||||||
|
# This config file is meant for settings that affect your whole blog, values
|
||||||
|
# which you are expected to set up once and rarely need to edit after that.
|
||||||
|
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
||||||
|
# 'jekyll serve'. If you change this file, please restart the server process.
|
||||||
|
|
||||||
|
# Site settings
|
||||||
|
title: Ramblings of an archer archer
|
||||||
|
#email: maggioniclaudio1999[at]gmail.com
|
||||||
|
description: > # this means to ignore newlines until "baseurl:"
|
||||||
|
Things which an Arch Linux user that also owns an recurve bow can write.
|
||||||
|
baseurl: "" # the subpath of your site, e.g. /blog
|
||||||
|
url: "http://praticamentetilde.github.io" # the base hostname & protocol for your site
|
||||||
|
github_username: praticamentetilde
|
||||||
|
future: true
|
||||||
|
|
||||||
|
# Build settings
|
||||||
|
markdown: kramdown
|
||||||
|
collections:
|
||||||
|
- slides
|
35
_includes/footer.html
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
<footer class="site-footer">
|
||||||
|
|
||||||
|
<div class="wrapper">
|
||||||
|
|
||||||
|
<h2 class="footer-heading">{{ site.title }}</h2>
|
||||||
|
|
||||||
|
<div class="footer-col-wrapper">
|
||||||
|
<div class="footer-col footer-col-1">
|
||||||
|
<ul class="contact-list">
|
||||||
|
My <a href="http://www.burarco.it/">Archery club</a>.
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-col footer-col-2">
|
||||||
|
<ul class="social-media-list">
|
||||||
|
{% if site.github_username %}
|
||||||
|
<li>
|
||||||
|
{% include icon-github.html username=site.github_username %}
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
{% if site.linkedin_username and site.linkedin_name %}
|
||||||
|
<li>
|
||||||
|
{% include icon-linkedin.html username=site.linkedin_username name=site.linkedin_name %}
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-col footer-col-3">
|
||||||
|
<p>{{ site.description }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
33
_includes/head.html
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
<title>{% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}</title>
|
||||||
|
<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">
|
||||||
|
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
|
||||||
|
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}">
|
||||||
|
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||||
|
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
|
||||||
|
<!-- Favicon -->
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="/manifest.json">
|
||||||
|
<meta name="msapplication-TileColor" content="#ffffff">
|
||||||
|
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
</head>
|
28
_includes/header.html
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<header class="site-header">
|
||||||
|
|
||||||
|
<div class="wrapper header">
|
||||||
|
|
||||||
|
<img class="site-logo" src="{{ site.baseurl }}/android-icon-192x192.png" alt="MALUSA"/>
|
||||||
|
<a class="site-title" href="{{ site.baseurl }}/">{{ site.title }}</a>
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<a href="#" class="menu-icon">
|
||||||
|
<svg viewBox="0 0 18 15">
|
||||||
|
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
|
||||||
|
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
|
||||||
|
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="trigger">
|
||||||
|
{% for my_page in site.pages %}
|
||||||
|
{% if my_page.title %}
|
||||||
|
<a class="page-link" href="{{ my_page.url | prepend: site.baseurl }}">{{ my_page.title }}</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
1
_includes/icon-github.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<a href="https://github.com/{{ include.username }}"><span class="icon icon--github">{% include icon-github.svg %}</span><span class="username">{{ include.username }}</span></a>
|
1
_includes/icon-github.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
|
After Width: | Height: | Size: 926 B |
3
_includes/icon-linkedin.html
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<a href="https://linkedin.com/in/{{ include.username }}">
|
||||||
|
<span><i class="fa fa-linkedin"></i> {{ include.name }}</span>
|
||||||
|
</a>
|
51
_layouts/default.html
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
{% include head.html %}
|
||||||
|
<body>
|
||||||
|
{% include header.html %}
|
||||||
|
<div class="slideshowContainer">
|
||||||
|
{% for slide in site.slides %}
|
||||||
|
{{ slide }}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
var slideIndex = -1;
|
||||||
|
carousel();
|
||||||
|
function carousel() {
|
||||||
|
var i;
|
||||||
|
var fading;
|
||||||
|
var x = document.getElementsByClassName("slideshowItem");
|
||||||
|
for (i = 0; i < x.length; i++) {
|
||||||
|
if(slideIndex!=-1 && i==slideIndex){
|
||||||
|
fading=i;
|
||||||
|
x[i].className+=" fadeOut";
|
||||||
|
x[i].style.zIndex="3";
|
||||||
|
window.setTimeout(function(){
|
||||||
|
x[fading].style.zIndex="";
|
||||||
|
},1000);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
x[i].style.display = "none";
|
||||||
|
x[i].style.zIndex="";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
slideIndex++;
|
||||||
|
if (slideIndex >= x.length) {slideIndex = 0}
|
||||||
|
with(x[slideIndex]){
|
||||||
|
style.display="";
|
||||||
|
className="slideshowItem";
|
||||||
|
style.zIndex="2";
|
||||||
|
}
|
||||||
|
setTimeout(carousel, 5000);
|
||||||
|
}
|
||||||
|
var easter_egg = new Konami();
|
||||||
|
easter_egg.load("https://www.youtube.com/watch?v=yPYZpwSpKmA");
|
||||||
|
</script>
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="wrapper">
|
||||||
|
{{ content }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% include footer.html %}
|
||||||
|
</body>
|
||||||
|
</html>
|
13
_layouts/main.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
{% include head.html %}
|
||||||
|
<body>
|
||||||
|
{% include header.html %}
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="wrapper">
|
||||||
|
{{ content }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% include footer.html %}
|
||||||
|
</body>
|
||||||
|
</html>
|
14
_layouts/page.html
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
layout: main
|
||||||
|
---
|
||||||
|
<article class="post">
|
||||||
|
|
||||||
|
<header class="post-header">
|
||||||
|
<h1 class="post-title">{{ page.title }}</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="post-content">
|
||||||
|
{{ content }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</article>
|
15
_layouts/post.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
layout: main
|
||||||
|
---
|
||||||
|
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
|
||||||
|
|
||||||
|
<header class="post-header">
|
||||||
|
<h1 class="post-title" itemprop="name headline">{{ page.title }}</h1>
|
||||||
|
<p class="post-meta"><time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">{{ page.date | date: "%b %-d, %Y" }}</time>{% if page.author %} • <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">{{ page.author }}</span></span>{% endif %}</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="post-content" itemprop="articleBody">
|
||||||
|
{{ content }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</article>
|
6
_layouts/slide.html
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<div class="slideshowItem" {% if page.background %}style="background-image:url({{ page.background }})"{% endif %}>
|
||||||
|
<div class="slideshowContent">
|
||||||
|
<h2>{{ page.title }}</h2>
|
||||||
|
{{ content }}
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,51 @@
|
||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: "Get a Bluetooth keyboard work with Arch Linux"
|
||||||
|
date: 2016-07-07 14:49:18 +0200
|
||||||
|
categories: linux
|
||||||
|
---
|
||||||
|
I've recently got a Rapoo E6100. This is a minimal and space saving Bluetooth 3.0 keyboard. If you pair it with Windows 10, it will remain paired after reboot, giving the possibility to use it since the login screen. After installing the Bluetooth stack on my Arch via the `bluez` and `bluez-utils` packages I thought the pairing process would be as simple as Windows if I used the KDE GUI menus for Bluetooth management. That's not true. The keyboard, once paired, will reconnect automatically just after `plasmashell` loaded, leaving me without keyboard during the SDDM login screen and, of course, during a non-graphical session.
|
||||||
|
|
||||||
|
As usual, i've searched help in the ArchWiki, founding [this](https://wiki.archlinux.org/index.php/Bluetooth_keyboard) article. With that, i've succesfully reconnected my Bluetooth keyboard using the `bluetoothctl` utility. The next step was configuring the service for auto connection during boot. I've created the `btkbd.conf` and the `btkbd.service` files, enabling the last one with systemd. Let's give a look to the service file:
|
||||||
|
|
||||||
|
{% highlight bash linenos %}
|
||||||
|
[Unit]
|
||||||
|
Description=systemd Unit to automatically start a Bluetooth keyboard
|
||||||
|
Documentation=https://wiki.archlinux.org/index.php/Bluetooth_Keyboard
|
||||||
|
Requires=dbus-org.bluez.service
|
||||||
|
After=dbus-org.bluez.service
|
||||||
|
ConditionPathExists=/etc/btkbd.conf
|
||||||
|
ConditionPathExists=/usr/bin/hcitool
|
||||||
|
ConditionPathExists=/usr/bin/hciconfig
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
EnvironmentFile=/etc/btkbd.conf
|
||||||
|
ExecStart=/usr/bin/hciconfig ${HCIDEVICE} up
|
||||||
|
# ignore errors on connect, spurious problems with bt?
|
||||||
|
# so start next command with -
|
||||||
|
ExecStart=-/usr/bin/hcitool cc ${BTKBDMAC}
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
Line 13 enables the Bluetooth dongle, and line 16 connects it to the keyboard we gave the mac address in `/etc/btkbd.conf`. This should work flawlessly, right? Of course it doesn't. The service starts before the `dbus-org.bluez.service` is loaded and fails. However, if the service is started manually after login the Bluetooth keyboard works. After hours of trying figuring out what was wrong I've almost asked for a return on Amazon! The last attempt I made was with sddm disabled and involved built from scratch service:
|
||||||
|
|
||||||
|
{% highlight bash linenos %}
|
||||||
|
[Unit]
|
||||||
|
Description=systemd Unit to automatically start a Bluetooth keyboard
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/bin/hciconfig hci0 up
|
||||||
|
ExecStart=/bin/hcitool cc 00:11:22:33:44:55
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=bluetooth.target
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
|
This incredibly worked. I think the problem was that `multi-user.target` that needs to be reached earlier than `bluetooth.target`. I got rid of all the tidiness of the ArchWiki solution just to be sure that was not the problem, but I think you can use all of that just correcting `WantedBy=`. Currently I haven't an ArchWiki account nor a forum one, but as soon as I'll register I'll correct the article.
|
||||||
|
|
||||||
|
Let me know in the comments if this solution is well made or if it's just a bodge.
|
||||||
|
Last thing: I discovered that my Bluetooth dongle is CSR 8510 A10 based so expect some ramblings about [hid proxy](http://www.0xf8.org/2014/02/the-crux-of-finding-a-hid-proxy-capable-usb-bluetooth-adapter/).
|
281
_sass/_base.scss
Normal file
|
@ -0,0 +1,281 @@
|
||||||
|
/**
|
||||||
|
* Reset some basic elements
|
||||||
|
*/
|
||||||
|
body, h1, h2, h3, h4, h5, h6,
|
||||||
|
p, blockquote, pre, hr,
|
||||||
|
dl, dd, ol, ul, figure {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Basic styling
|
||||||
|
*/
|
||||||
|
body {
|
||||||
|
font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
|
||||||
|
color: $text-color;
|
||||||
|
background-color: $background-color;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-webkit-font-feature-settings: "kern" 1;
|
||||||
|
-moz-font-feature-settings: "kern" 1;
|
||||||
|
-o-font-feature-settings: "kern" 1;
|
||||||
|
font-feature-settings: "kern" 1;
|
||||||
|
font-kerning: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set `margin-bottom` to maintain vertical rhythm
|
||||||
|
*/
|
||||||
|
h1, h2, h3, h4, h5, h6,
|
||||||
|
p, blockquote, pre,
|
||||||
|
ul, ol, dl, figure,
|
||||||
|
%vertical-rhythm {
|
||||||
|
margin-bottom: $spacing-unit / 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Images
|
||||||
|
*/
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Figures
|
||||||
|
*/
|
||||||
|
figure > img {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
figcaption {
|
||||||
|
font-size: $small-font-size;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lists
|
||||||
|
*/
|
||||||
|
ul, ol {
|
||||||
|
margin-left: $spacing-unit;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
> ul,
|
||||||
|
> ol {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Headings
|
||||||
|
*/
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
font-weight: $base-font-weight;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Links
|
||||||
|
*/
|
||||||
|
a {
|
||||||
|
color: $brand-color;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
&:visited {
|
||||||
|
color: darken($brand-color, 15%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: $text-color;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blockquotes
|
||||||
|
*/
|
||||||
|
blockquote {
|
||||||
|
color: $grey-color;
|
||||||
|
border-left: 4px solid $grey-color-light;
|
||||||
|
padding-left: $spacing-unit / 2;
|
||||||
|
font-size: 18px;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
font-style: italic;
|
||||||
|
|
||||||
|
> :last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code formatting
|
||||||
|
*/
|
||||||
|
pre,
|
||||||
|
code {
|
||||||
|
font-size: 15px;
|
||||||
|
/*border: 1px solid $grey-color-light;*/
|
||||||
|
border-radius: 3px;
|
||||||
|
background: rgb(66,66,66);
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
padding: 1px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
padding: 8px 12px;
|
||||||
|
overflow-x: auto;
|
||||||
|
|
||||||
|
> code {
|
||||||
|
border: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper
|
||||||
|
*/
|
||||||
|
.wrapper {
|
||||||
|
max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
|
||||||
|
max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: $spacing-unit;
|
||||||
|
padding-left: $spacing-unit;
|
||||||
|
@extend %clearfix;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
|
||||||
|
max-width: calc(#{$content-width} - (#{$spacing-unit}));
|
||||||
|
padding-right: $spacing-unit / 2;
|
||||||
|
padding-left: $spacing-unit / 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.header{
|
||||||
|
background: #ffcc00;
|
||||||
|
float: left;
|
||||||
|
width: -webkit-calc(100% - #{$spacing-unit});
|
||||||
|
width: calc(100% - #{$spacing-unit});
|
||||||
|
max-width: -webkit-calc(100% - #{$spacing-unit});
|
||||||
|
max-width: calc(100% - #{$spacing-unit});
|
||||||
|
z-index: 1;
|
||||||
|
box-shadow: 0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);
|
||||||
|
margin: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
width: -webkit-calc(100% - #{$spacing-unit} / 2);
|
||||||
|
width: calc(100% - #{$spacing-unit} / 2);
|
||||||
|
max-width: -webkit-calc(100% - #{$spacing-unit} / 2);
|
||||||
|
max-width: calc(100% - #{$spacing-unit} / 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-query($on-palm) {
|
||||||
|
width: -webkit-calc(100% - 4em);
|
||||||
|
width: calc(100% - 4em);
|
||||||
|
max-width: -webkit-calc(100% - 4em);
|
||||||
|
max-width: calc(100% - 4em);
|
||||||
|
padding-right: 4em;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-logo{
|
||||||
|
width: 56px;
|
||||||
|
height: 56px;
|
||||||
|
float: left;
|
||||||
|
margin-right: $spacing-unit;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
margin-right: calc(#{$spacing-unit} / 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideshowItem{
|
||||||
|
background-position: center;
|
||||||
|
text-align: center;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: -moz-flex;
|
||||||
|
display: flex;
|
||||||
|
opacity: 1;
|
||||||
|
color: #212121;
|
||||||
|
text-shadow: 0px 0px 13px black;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
transition: opacity 1s;
|
||||||
|
/*margin-bottom: $spacing-unit;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
margin-bottom: calc(#{$spacing-unit} / 2);
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideshowContainer{
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: $slideshow-height;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideshowItem > .slideshowContent{
|
||||||
|
margin: auto;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideshowItem.fadeOut {
|
||||||
|
opacity:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clearfix
|
||||||
|
*/
|
||||||
|
%clearfix {
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
content: "";
|
||||||
|
display: table;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Icons
|
||||||
|
*/
|
||||||
|
.icon {
|
||||||
|
|
||||||
|
> svg {
|
||||||
|
display: inline-block;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
vertical-align: middle;
|
||||||
|
|
||||||
|
path {
|
||||||
|
fill: $grey-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
254
_sass/_layout.scss
Normal file
|
@ -0,0 +1,254 @@
|
||||||
|
/**
|
||||||
|
* Site header
|
||||||
|
*/
|
||||||
|
.site-header {
|
||||||
|
border-top: 5px solid $grey-color-dark;
|
||||||
|
border-bottom: 1px solid $grey-color-light;
|
||||||
|
min-height: 56px;
|
||||||
|
|
||||||
|
// Positioning context for the mobile navigation icon
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-title {
|
||||||
|
font-size: 26px;
|
||||||
|
font-weight: 300;
|
||||||
|
line-height: 56px;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
float: left;
|
||||||
|
|
||||||
|
&,
|
||||||
|
&:visited {
|
||||||
|
color: $grey-color-dark;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
line-height: 46px;
|
||||||
|
font-size: 22px;
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
@include media-query($on-palm) {
|
||||||
|
line-height: 20px;
|
||||||
|
font-size: 17px;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-nav {
|
||||||
|
float: right;
|
||||||
|
line-height: 56px;
|
||||||
|
|
||||||
|
.menu-icon {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-link {
|
||||||
|
color: $text-color;
|
||||||
|
line-height: $base-line-height;
|
||||||
|
|
||||||
|
// Gaps between nav items, but not on the last one
|
||||||
|
&:not(:last-child) {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-query($on-palm) {
|
||||||
|
position: absolute;
|
||||||
|
top: 9px;
|
||||||
|
right: $spacing-unit / 2;
|
||||||
|
background-color: $background-color;
|
||||||
|
border: 1px solid $grey-color-light;
|
||||||
|
border-radius: 5px;
|
||||||
|
text-align: right;
|
||||||
|
|
||||||
|
.menu-icon {
|
||||||
|
display: block;
|
||||||
|
float: right;
|
||||||
|
width: 36px;
|
||||||
|
height: 26px;
|
||||||
|
line-height: 0;
|
||||||
|
padding-top: 10px;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
> svg {
|
||||||
|
width: 18px;
|
||||||
|
height: 15px;
|
||||||
|
|
||||||
|
path {
|
||||||
|
fill: $grey-color-dark;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.trigger {
|
||||||
|
clear: both;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover .trigger {
|
||||||
|
display: block;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-link {
|
||||||
|
display: block;
|
||||||
|
padding: 5px 10px;
|
||||||
|
|
||||||
|
&:not(:last-child) {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Site footer
|
||||||
|
*/
|
||||||
|
.site-footer {
|
||||||
|
padding: $spacing-unit 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-heading {
|
||||||
|
font-size: 18px;
|
||||||
|
margin-bottom: $spacing-unit / 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-list,
|
||||||
|
.social-media-list {
|
||||||
|
list-style: none;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-col-wrapper {
|
||||||
|
font-size: 15px;
|
||||||
|
color: $grey-color;
|
||||||
|
margin-left: -$spacing-unit / 2;
|
||||||
|
@extend %clearfix;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-col {
|
||||||
|
float: left;
|
||||||
|
margin-bottom: $spacing-unit / 2;
|
||||||
|
padding-left: $spacing-unit / 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-col-1 {
|
||||||
|
width: -webkit-calc(35% - (#{$spacing-unit} / 2));
|
||||||
|
width: calc(35% - (#{$spacing-unit} / 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-col-2 {
|
||||||
|
width: -webkit-calc(20% - (#{$spacing-unit} / 2));
|
||||||
|
width: calc(20% - (#{$spacing-unit} / 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-col-3 {
|
||||||
|
width: -webkit-calc(45% - (#{$spacing-unit} / 2));
|
||||||
|
width: calc(45% - (#{$spacing-unit} / 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
.footer-col-1,
|
||||||
|
.footer-col-2 {
|
||||||
|
width: -webkit-calc(50% - (#{$spacing-unit} / 2));
|
||||||
|
width: calc(50% - (#{$spacing-unit} / 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-col-3 {
|
||||||
|
width: -webkit-calc(100% - (#{$spacing-unit} / 2));
|
||||||
|
width: calc(100% - (#{$spacing-unit} / 2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-query($on-palm) {
|
||||||
|
.footer-col {
|
||||||
|
float: none;
|
||||||
|
width: -webkit-calc(100% - (#{$spacing-unit} / 2));
|
||||||
|
width: calc(100% - (#{$spacing-unit} / 2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Page content
|
||||||
|
*/
|
||||||
|
.page-content {
|
||||||
|
background: RGBA(255,255,255,0.1);
|
||||||
|
padding: $spacing-unit 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-heading {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-list {
|
||||||
|
margin-left: 0;
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
|
> li {
|
||||||
|
margin-bottom: $spacing-unit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-meta {
|
||||||
|
font-size: $small-font-size;
|
||||||
|
color: $grey-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-link {
|
||||||
|
display: block;
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Posts
|
||||||
|
*/
|
||||||
|
.post-header {
|
||||||
|
margin-bottom: $spacing-unit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-title {
|
||||||
|
font-size: 42px;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
line-height: 1;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
font-size: 36px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-content {
|
||||||
|
margin-bottom: $spacing-unit;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 32px;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
font-size: 28px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 26px;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 20px;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
79
_sass/_syntax-highlighting.scss
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
/**
|
||||||
|
* Syntax highlighting styles
|
||||||
|
*/
|
||||||
|
.highlight {
|
||||||
|
background: #fff;
|
||||||
|
@extend %vertical-rhythm;
|
||||||
|
|
||||||
|
.highlighter-rouge & {
|
||||||
|
background: #eef;
|
||||||
|
}
|
||||||
|
|
||||||
|
td.code > pre{
|
||||||
|
background: #323232;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.lineno{
|
||||||
|
background: #212121;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c { color: #998; font-style: italic } // Comment
|
||||||
|
.err { color: #a61717; background-color: #e3d2d2 } // Error
|
||||||
|
.k { font-weight: bold } // Keyword
|
||||||
|
.o { font-weight: bold } // Operator
|
||||||
|
.cm { color: #998; font-style: italic } // Comment.Multiline
|
||||||
|
.cp { color: #999; font-weight: bold } // Comment.Preproc
|
||||||
|
.c1 { color: #998; font-style: italic } // Comment.Single
|
||||||
|
.cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
|
||||||
|
.gd { color: #000; background-color: #fdd } // Generic.Deleted
|
||||||
|
.gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
|
||||||
|
.ge { font-style: italic } // Generic.Emph
|
||||||
|
.gr { color: #a00 } // Generic.Error
|
||||||
|
.gh { color: #999 } // Generic.Heading
|
||||||
|
.gi { color: #000; background-color: #dfd } // Generic.Inserted
|
||||||
|
.gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
|
||||||
|
.go { color: #888 } // Generic.Output
|
||||||
|
.gp { color: #555 } // Generic.Prompt
|
||||||
|
.gs { font-weight: bold } // Generic.Strong
|
||||||
|
.gu { color: #aaa } // Generic.Subheading
|
||||||
|
.gt { color: #a00 } // Generic.Traceback
|
||||||
|
.kc { font-weight: bold } // Keyword.Constant
|
||||||
|
.kd { font-weight: bold } // Keyword.Declaration
|
||||||
|
.kp { font-weight: bold } // Keyword.Pseudo
|
||||||
|
.kr { font-weight: bold } // Keyword.Reserved
|
||||||
|
.kt { color: #458; font-weight: bold } // Keyword.Type
|
||||||
|
.m { color: #099 } // Literal.Number
|
||||||
|
.s { color: #d14 } // Literal.String
|
||||||
|
.na { color: #008080 } // Name.Attribute
|
||||||
|
.nb { color: #0086B3 } // Name.Builtin
|
||||||
|
.nc { color: #458; font-weight: bold } // Name.Class
|
||||||
|
.no { color: #008080 } // Name.Constant
|
||||||
|
.ni { color: #800080 } // Name.Entity
|
||||||
|
.ne { color: #900; font-weight: bold } // Name.Exception
|
||||||
|
.nf { color: #900; font-weight: bold } // Name.Function
|
||||||
|
.nn { color: #555 } // Name.Namespace
|
||||||
|
.nt { color: #000080 } // Name.Tag
|
||||||
|
.nv { color: #008080 } // Name.Variable
|
||||||
|
.ow { font-weight: bold } // Operator.Word
|
||||||
|
.w { color: #bbb } // Text.Whitespace
|
||||||
|
.mf { color: #099 } // Literal.Number.Float
|
||||||
|
.mh { color: #099 } // Literal.Number.Hex
|
||||||
|
.mi { color: #099 } // Literal.Number.Integer
|
||||||
|
.mo { color: #099 } // Literal.Number.Oct
|
||||||
|
.sb { color: #d14 } // Literal.String.Backtick
|
||||||
|
.sc { color: #d14 } // Literal.String.Char
|
||||||
|
.sd { color: #d14 } // Literal.String.Doc
|
||||||
|
.s2 { color: #d14 } // Literal.String.Double
|
||||||
|
.se { color: #d14 } // Literal.String.Escape
|
||||||
|
.sh { color: #d14 } // Literal.String.Heredoc
|
||||||
|
.si { color: #d14 } // Literal.String.Interpol
|
||||||
|
.sx { color: #d14 } // Literal.String.Other
|
||||||
|
.sr { color: #009926 } // Literal.String.Regex
|
||||||
|
.s1 { color: #d14 } // Literal.String.Single
|
||||||
|
.ss { color: #990073 } // Literal.String.Symbol
|
||||||
|
.bp { color: #999 } // Name.Builtin.Pseudo
|
||||||
|
.vc { color: #008080 } // Name.Variable.Class
|
||||||
|
.vg { color: #008080 } // Name.Variable.Global
|
||||||
|
.vi { color: #008080 } // Name.Variable.Instance
|
||||||
|
.il { color: #099 } // Literal.Number.Integer.Long
|
||||||
|
}
|
131
_site/about/index.html
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
<title>About</title>
|
||||||
|
<meta name="description" content="Things which an Arch Linux user that also owns an recurve bow can write.
|
||||||
|
">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
|
||||||
|
<link rel="canonical" href="http://praticamentetilde.github.io/about/">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="Ramblings of an archer archer" href="http://praticamentetilde.github.io/feed.xml">
|
||||||
|
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||||
|
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
|
||||||
|
<!-- Favicon -->
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="/manifest.json">
|
||||||
|
<meta name="msapplication-TileColor" content="#ffffff">
|
||||||
|
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<header class="site-header">
|
||||||
|
|
||||||
|
<div class="wrapper header">
|
||||||
|
|
||||||
|
<img class="site-logo" src="/android-icon-192x192.png" alt="MALUSA"/>
|
||||||
|
<a class="site-title" href="/">Ramblings of an archer archer</a>
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<a href="#" class="menu-icon">
|
||||||
|
<svg viewBox="0 0 18 15">
|
||||||
|
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
|
||||||
|
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
|
||||||
|
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="trigger">
|
||||||
|
|
||||||
|
|
||||||
|
<a class="page-link" href="/about/">About</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="wrapper">
|
||||||
|
<article class="post">
|
||||||
|
|
||||||
|
<header class="post-header">
|
||||||
|
<h1 class="post-title">About</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="post-content">
|
||||||
|
<p>My name is Claudio Maggioni and I am both an Arch Linux user and an <a href="http://www.fitarco-italia.org/arcieri/situazione.php?Codice=91647">recurve archer</a>. I define myself an “archer archer”. This site will collect my own occasional thoughts about the two worlds, hoping someone will found them useful.</p>
|
||||||
|
|
||||||
|
<p>If you are curious about the code i produce my personal Github account is <a href="https://github.com/praticamentetilde/">here</a>. This particular site is made with jekyll and hosted by Github pages, as you can see.</p>
|
||||||
|
|
||||||
|
<p>PRO tip: try performing a Konami code in the home page…</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</article>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer class="site-footer">
|
||||||
|
|
||||||
|
<div class="wrapper">
|
||||||
|
|
||||||
|
<h2 class="footer-heading">Ramblings of an archer archer</h2>
|
||||||
|
|
||||||
|
<div class="footer-col-wrapper">
|
||||||
|
<div class="footer-col footer-col-1">
|
||||||
|
<ul class="contact-list">
|
||||||
|
My <a href="http://www.burarco.it/">Archery club</a>.
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-col footer-col-2">
|
||||||
|
<ul class="social-media-list">
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/praticamentetilde"><span class="icon icon--github"><svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
|
||||||
|
</span><span class="username">praticamentetilde</span></a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-col footer-col-3">
|
||||||
|
<p>Things which an Arch Linux user that also owns an recurve bow can write.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
_site/android-icon-144x144.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
_site/android-icon-192x192.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
_site/android-icon-36x36.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
_site/android-icon-48x48.png
Normal file
After Width: | Height: | Size: 3 KiB |
BIN
_site/android-icon-72x72.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
_site/android-icon-96x96.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
_site/apple-icon-114x114.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
_site/apple-icon-120x120.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
_site/apple-icon-144x144.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
_site/apple-icon-152x152.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
_site/apple-icon-180x180.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
_site/apple-icon-57x57.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
_site/apple-icon-60x60.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
_site/apple-icon-72x72.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
_site/apple-icon-76x76.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
_site/apple-icon-precomposed.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
_site/apple-icon.png
Normal file
After Width: | Height: | Size: 45 KiB |
2
_site/browserconfig.xml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
|
540
_site/css/main.css
Normal file
|
@ -0,0 +1,540 @@
|
||||||
|
/**
|
||||||
|
* Reset some basic elements
|
||||||
|
*/
|
||||||
|
body, h1, h2, h3, h4, h5, h6,
|
||||||
|
p, blockquote, pre, hr,
|
||||||
|
dl, dd, ol, ul, figure {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Basic styling
|
||||||
|
*/
|
||||||
|
body {
|
||||||
|
font: 200 16px/1.5 "Hammersmith One", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
color: #888;
|
||||||
|
background-color: #090909;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-webkit-font-feature-settings: "kern" 1;
|
||||||
|
-moz-font-feature-settings: "kern" 1;
|
||||||
|
-o-font-feature-settings: "kern" 1;
|
||||||
|
font-feature-settings: "kern" 1;
|
||||||
|
font-kerning: normal; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set `margin-bottom` to maintain vertical rhythm
|
||||||
|
*/
|
||||||
|
h1, h2, h3, h4, h5, h6,
|
||||||
|
p, blockquote, pre,
|
||||||
|
ul, ol, dl, figure,
|
||||||
|
.highlight {
|
||||||
|
margin-bottom: 15px; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Images
|
||||||
|
*/
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
vertical-align: middle; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Figures
|
||||||
|
*/
|
||||||
|
figure > img {
|
||||||
|
display: block; }
|
||||||
|
|
||||||
|
figcaption {
|
||||||
|
font-size: 14px; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lists
|
||||||
|
*/
|
||||||
|
ul, ol {
|
||||||
|
margin-left: 30px; }
|
||||||
|
|
||||||
|
li > ul,
|
||||||
|
li > ol {
|
||||||
|
margin-bottom: 0; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Headings
|
||||||
|
*/
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
font-weight: 200; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Links
|
||||||
|
*/
|
||||||
|
a {
|
||||||
|
color: #2a7ae2;
|
||||||
|
text-decoration: none; }
|
||||||
|
a:visited {
|
||||||
|
color: #1756a9; }
|
||||||
|
a:hover {
|
||||||
|
color: #888;
|
||||||
|
text-decoration: underline; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blockquotes
|
||||||
|
*/
|
||||||
|
blockquote {
|
||||||
|
color: #828282;
|
||||||
|
border-left: 4px solid #e8e8e8;
|
||||||
|
padding-left: 15px;
|
||||||
|
font-size: 18px;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
font-style: italic; }
|
||||||
|
blockquote > :last-child {
|
||||||
|
margin-bottom: 0; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code formatting
|
||||||
|
*/
|
||||||
|
pre,
|
||||||
|
code {
|
||||||
|
font-size: 15px;
|
||||||
|
/*border: 1px solid $grey-color-light;*/
|
||||||
|
border-radius: 3px;
|
||||||
|
background: #424242; }
|
||||||
|
|
||||||
|
code {
|
||||||
|
padding: 1px 5px; }
|
||||||
|
|
||||||
|
pre {
|
||||||
|
padding: 8px 12px;
|
||||||
|
overflow-x: auto; }
|
||||||
|
pre > code {
|
||||||
|
border: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 0; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper
|
||||||
|
*/
|
||||||
|
.wrapper {
|
||||||
|
max-width: -webkit-calc(800px - (30px * 2));
|
||||||
|
max-width: calc(800px - (30px * 2));
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: 30px;
|
||||||
|
padding-left: 30px; }
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
|
.wrapper {
|
||||||
|
max-width: -webkit-calc(800px - (30px));
|
||||||
|
max-width: calc(800px - (30px));
|
||||||
|
padding-right: 15px;
|
||||||
|
padding-left: 15px; } }
|
||||||
|
|
||||||
|
.header {
|
||||||
|
background: #ffcc00;
|
||||||
|
float: left;
|
||||||
|
width: -webkit-calc(100% - 30px);
|
||||||
|
width: calc(100% - 30px);
|
||||||
|
max-width: -webkit-calc(100% - 30px);
|
||||||
|
max-width: calc(100% - 30px);
|
||||||
|
z-index: 1;
|
||||||
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
|
||||||
|
margin: 0;
|
||||||
|
padding-left: 0; }
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
|
.header {
|
||||||
|
width: -webkit-calc(100% - 30px / 2);
|
||||||
|
width: calc(100% - 30px / 2);
|
||||||
|
max-width: -webkit-calc(100% - 30px / 2);
|
||||||
|
max-width: calc(100% - 30px / 2); } }
|
||||||
|
@media screen and (max-width: 600px) {
|
||||||
|
.header {
|
||||||
|
width: -webkit-calc(100% - 4em);
|
||||||
|
width: calc(100% - 4em);
|
||||||
|
max-width: -webkit-calc(100% - 4em);
|
||||||
|
max-width: calc(100% - 4em);
|
||||||
|
padding-right: 4em;
|
||||||
|
display: flex; } }
|
||||||
|
|
||||||
|
.site-logo {
|
||||||
|
width: 56px;
|
||||||
|
height: 56px;
|
||||||
|
float: left;
|
||||||
|
margin-right: 30px; }
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
|
.site-logo {
|
||||||
|
margin-right: calc(30px / 2); } }
|
||||||
|
|
||||||
|
.slideshowItem {
|
||||||
|
background-position: center;
|
||||||
|
text-align: center;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: -moz-flex;
|
||||||
|
display: flex;
|
||||||
|
opacity: 1;
|
||||||
|
color: #212121;
|
||||||
|
text-shadow: 0px 0px 13px black;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
transition: opacity 1s;
|
||||||
|
/*margin-bottom: $spacing-unit;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
margin-bottom: calc(30px / 2);
|
||||||
|
}*/ }
|
||||||
|
|
||||||
|
.slideshowContainer {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 70vh; }
|
||||||
|
|
||||||
|
.slideshowItem > .slideshowContent {
|
||||||
|
margin: auto;
|
||||||
|
z-index: 2; }
|
||||||
|
|
||||||
|
.slideshowItem.fadeOut {
|
||||||
|
opacity: 0; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clearfix
|
||||||
|
*/
|
||||||
|
.wrapper:after, .footer-col-wrapper:after {
|
||||||
|
content: "";
|
||||||
|
display: table;
|
||||||
|
clear: both; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Icons
|
||||||
|
*/
|
||||||
|
.icon > svg {
|
||||||
|
display: inline-block;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
vertical-align: middle; }
|
||||||
|
.icon > svg path {
|
||||||
|
fill: #828282; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Site header
|
||||||
|
*/
|
||||||
|
.site-header {
|
||||||
|
border-top: 5px solid #424242;
|
||||||
|
border-bottom: 1px solid #e8e8e8;
|
||||||
|
min-height: 56px;
|
||||||
|
position: relative; }
|
||||||
|
|
||||||
|
.site-title {
|
||||||
|
font-size: 26px;
|
||||||
|
font-weight: 300;
|
||||||
|
line-height: 56px;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
float: left; }
|
||||||
|
.site-title, .site-title:visited {
|
||||||
|
color: #424242; }
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
|
.site-title {
|
||||||
|
line-height: 46px;
|
||||||
|
font-size: 22px;
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-bottom: 5px; } }
|
||||||
|
@media screen and (max-width: 600px) {
|
||||||
|
.site-title {
|
||||||
|
line-height: 20px;
|
||||||
|
font-size: 17px;
|
||||||
|
margin: auto; } }
|
||||||
|
|
||||||
|
.site-nav {
|
||||||
|
float: right;
|
||||||
|
line-height: 56px; }
|
||||||
|
.site-nav .menu-icon {
|
||||||
|
display: none; }
|
||||||
|
.site-nav .page-link {
|
||||||
|
color: #888;
|
||||||
|
line-height: 1.5; }
|
||||||
|
.site-nav .page-link:not(:last-child) {
|
||||||
|
margin-right: 20px; }
|
||||||
|
@media screen and (max-width: 600px) {
|
||||||
|
.site-nav {
|
||||||
|
position: absolute;
|
||||||
|
top: 9px;
|
||||||
|
right: 15px;
|
||||||
|
background-color: #090909;
|
||||||
|
border: 1px solid #e8e8e8;
|
||||||
|
border-radius: 5px;
|
||||||
|
text-align: right; }
|
||||||
|
.site-nav .menu-icon {
|
||||||
|
display: block;
|
||||||
|
float: right;
|
||||||
|
width: 36px;
|
||||||
|
height: 26px;
|
||||||
|
line-height: 0;
|
||||||
|
padding-top: 10px;
|
||||||
|
text-align: center; }
|
||||||
|
.site-nav .menu-icon > svg {
|
||||||
|
width: 18px;
|
||||||
|
height: 15px; }
|
||||||
|
.site-nav .menu-icon > svg path {
|
||||||
|
fill: #424242; }
|
||||||
|
.site-nav .trigger {
|
||||||
|
clear: both;
|
||||||
|
display: none; }
|
||||||
|
.site-nav:hover .trigger {
|
||||||
|
display: block;
|
||||||
|
padding-bottom: 5px; }
|
||||||
|
.site-nav .page-link {
|
||||||
|
display: block;
|
||||||
|
padding: 5px 10px;
|
||||||
|
margin-left: 20px; }
|
||||||
|
.site-nav .page-link:not(:last-child) {
|
||||||
|
margin-right: 0; } }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Site footer
|
||||||
|
*/
|
||||||
|
.site-footer {
|
||||||
|
padding: 30px 0; }
|
||||||
|
|
||||||
|
.footer-heading {
|
||||||
|
font-size: 18px;
|
||||||
|
margin-bottom: 15px; }
|
||||||
|
|
||||||
|
.contact-list,
|
||||||
|
.social-media-list {
|
||||||
|
list-style: none;
|
||||||
|
margin-left: 0; }
|
||||||
|
|
||||||
|
.footer-col-wrapper {
|
||||||
|
font-size: 15px;
|
||||||
|
color: #828282;
|
||||||
|
margin-left: -15px; }
|
||||||
|
|
||||||
|
.footer-col {
|
||||||
|
float: left;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
padding-left: 15px; }
|
||||||
|
|
||||||
|
.footer-col-1 {
|
||||||
|
width: -webkit-calc(35% - (30px / 2));
|
||||||
|
width: calc(35% - (30px / 2)); }
|
||||||
|
|
||||||
|
.footer-col-2 {
|
||||||
|
width: -webkit-calc(20% - (30px / 2));
|
||||||
|
width: calc(20% - (30px / 2)); }
|
||||||
|
|
||||||
|
.footer-col-3 {
|
||||||
|
width: -webkit-calc(45% - (30px / 2));
|
||||||
|
width: calc(45% - (30px / 2)); }
|
||||||
|
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
|
.footer-col-1,
|
||||||
|
.footer-col-2 {
|
||||||
|
width: -webkit-calc(50% - (30px / 2));
|
||||||
|
width: calc(50% - (30px / 2)); }
|
||||||
|
|
||||||
|
.footer-col-3 {
|
||||||
|
width: -webkit-calc(100% - (30px / 2));
|
||||||
|
width: calc(100% - (30px / 2)); } }
|
||||||
|
@media screen and (max-width: 600px) {
|
||||||
|
.footer-col {
|
||||||
|
float: none;
|
||||||
|
width: -webkit-calc(100% - (30px / 2));
|
||||||
|
width: calc(100% - (30px / 2)); } }
|
||||||
|
/**
|
||||||
|
* Page content
|
||||||
|
*/
|
||||||
|
.page-content {
|
||||||
|
background: RGBA(255, 255, 255, 0.1);
|
||||||
|
padding: 30px 0; }
|
||||||
|
|
||||||
|
.page-heading {
|
||||||
|
font-size: 20px; }
|
||||||
|
|
||||||
|
.post-list {
|
||||||
|
margin-left: 0;
|
||||||
|
list-style: none; }
|
||||||
|
.post-list > li {
|
||||||
|
margin-bottom: 30px; }
|
||||||
|
|
||||||
|
.post-meta {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #828282; }
|
||||||
|
|
||||||
|
.post-link {
|
||||||
|
display: block;
|
||||||
|
font-size: 24px; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Posts
|
||||||
|
*/
|
||||||
|
.post-header {
|
||||||
|
margin-bottom: 30px; }
|
||||||
|
|
||||||
|
.post-title {
|
||||||
|
font-size: 42px;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
line-height: 1; }
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
|
.post-title {
|
||||||
|
font-size: 36px; } }
|
||||||
|
|
||||||
|
.post-content {
|
||||||
|
margin-bottom: 30px; }
|
||||||
|
.post-content h2 {
|
||||||
|
font-size: 32px; }
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
|
.post-content h2 {
|
||||||
|
font-size: 28px; } }
|
||||||
|
.post-content h3 {
|
||||||
|
font-size: 26px; }
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
|
.post-content h3 {
|
||||||
|
font-size: 22px; } }
|
||||||
|
.post-content h4 {
|
||||||
|
font-size: 20px; }
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
|
.post-content h4 {
|
||||||
|
font-size: 18px; } }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Syntax highlighting styles
|
||||||
|
*/
|
||||||
|
.highlight {
|
||||||
|
background: #fff; }
|
||||||
|
.highlighter-rouge .highlight {
|
||||||
|
background: #eef; }
|
||||||
|
.highlight td.code > pre {
|
||||||
|
background: #323232; }
|
||||||
|
.highlight pre.lineno {
|
||||||
|
background: #212121; }
|
||||||
|
.highlight .c {
|
||||||
|
color: #998;
|
||||||
|
font-style: italic; }
|
||||||
|
.highlight .err {
|
||||||
|
color: #a61717;
|
||||||
|
background-color: #e3d2d2; }
|
||||||
|
.highlight .k {
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .o {
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .cm {
|
||||||
|
color: #998;
|
||||||
|
font-style: italic; }
|
||||||
|
.highlight .cp {
|
||||||
|
color: #999;
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .c1 {
|
||||||
|
color: #998;
|
||||||
|
font-style: italic; }
|
||||||
|
.highlight .cs {
|
||||||
|
color: #999;
|
||||||
|
font-weight: bold;
|
||||||
|
font-style: italic; }
|
||||||
|
.highlight .gd {
|
||||||
|
color: #000;
|
||||||
|
background-color: #fdd; }
|
||||||
|
.highlight .gd .x {
|
||||||
|
color: #000;
|
||||||
|
background-color: #faa; }
|
||||||
|
.highlight .ge {
|
||||||
|
font-style: italic; }
|
||||||
|
.highlight .gr {
|
||||||
|
color: #a00; }
|
||||||
|
.highlight .gh {
|
||||||
|
color: #999; }
|
||||||
|
.highlight .gi {
|
||||||
|
color: #000;
|
||||||
|
background-color: #dfd; }
|
||||||
|
.highlight .gi .x {
|
||||||
|
color: #000;
|
||||||
|
background-color: #afa; }
|
||||||
|
.highlight .go {
|
||||||
|
color: #888; }
|
||||||
|
.highlight .gp {
|
||||||
|
color: #555; }
|
||||||
|
.highlight .gs {
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .gu {
|
||||||
|
color: #aaa; }
|
||||||
|
.highlight .gt {
|
||||||
|
color: #a00; }
|
||||||
|
.highlight .kc {
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .kd {
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .kp {
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .kr {
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .kt {
|
||||||
|
color: #458;
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .m {
|
||||||
|
color: #099; }
|
||||||
|
.highlight .s {
|
||||||
|
color: #d14; }
|
||||||
|
.highlight .na {
|
||||||
|
color: #008080; }
|
||||||
|
.highlight .nb {
|
||||||
|
color: #0086B3; }
|
||||||
|
.highlight .nc {
|
||||||
|
color: #458;
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .no {
|
||||||
|
color: #008080; }
|
||||||
|
.highlight .ni {
|
||||||
|
color: #800080; }
|
||||||
|
.highlight .ne {
|
||||||
|
color: #900;
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .nf {
|
||||||
|
color: #900;
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .nn {
|
||||||
|
color: #555; }
|
||||||
|
.highlight .nt {
|
||||||
|
color: #000080; }
|
||||||
|
.highlight .nv {
|
||||||
|
color: #008080; }
|
||||||
|
.highlight .ow {
|
||||||
|
font-weight: bold; }
|
||||||
|
.highlight .w {
|
||||||
|
color: #bbb; }
|
||||||
|
.highlight .mf {
|
||||||
|
color: #099; }
|
||||||
|
.highlight .mh {
|
||||||
|
color: #099; }
|
||||||
|
.highlight .mi {
|
||||||
|
color: #099; }
|
||||||
|
.highlight .mo {
|
||||||
|
color: #099; }
|
||||||
|
.highlight .sb {
|
||||||
|
color: #d14; }
|
||||||
|
.highlight .sc {
|
||||||
|
color: #d14; }
|
||||||
|
.highlight .sd {
|
||||||
|
color: #d14; }
|
||||||
|
.highlight .s2 {
|
||||||
|
color: #d14; }
|
||||||
|
.highlight .se {
|
||||||
|
color: #d14; }
|
||||||
|
.highlight .sh {
|
||||||
|
color: #d14; }
|
||||||
|
.highlight .si {
|
||||||
|
color: #d14; }
|
||||||
|
.highlight .sx {
|
||||||
|
color: #d14; }
|
||||||
|
.highlight .sr {
|
||||||
|
color: #009926; }
|
||||||
|
.highlight .s1 {
|
||||||
|
color: #d14; }
|
||||||
|
.highlight .ss {
|
||||||
|
color: #990073; }
|
||||||
|
.highlight .bp {
|
||||||
|
color: #999; }
|
||||||
|
.highlight .vc {
|
||||||
|
color: #008080; }
|
||||||
|
.highlight .vg {
|
||||||
|
color: #008080; }
|
||||||
|
.highlight .vi {
|
||||||
|
color: #008080; }
|
||||||
|
.highlight .il {
|
||||||
|
color: #099; }
|
BIN
_site/favicon-16x16.png
Normal file
After Width: | Height: | Size: 967 B |
BIN
_site/favicon-32x32.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
_site/favicon-96x96.png
Normal file
After Width: | Height: | Size: 13 KiB |
96
_site/feed.xml
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Ramblings of an archer archer</title>
|
||||||
|
<description>Things which an Arch Linux user that also owns an recurve bow can write.
|
||||||
|
</description>
|
||||||
|
<link>http://praticamentetilde.github.io/</link>
|
||||||
|
<atom:link href="http://praticamentetilde.github.io/feed.xml" rel="self" type="application/rss+xml"/>
|
||||||
|
<pubDate>Thu, 07 Jul 2016 21:01:32 +0200</pubDate>
|
||||||
|
<lastBuildDate>Thu, 07 Jul 2016 21:01:32 +0200</lastBuildDate>
|
||||||
|
<generator>Jekyll v3.1.6</generator>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<title>Get a Bluetooth keyboard work with Arch Linux</title>
|
||||||
|
<description><p>I’ve recently got a Rapoo E6100. This is a minimal and space saving Bluetooth 3.0 keyboard. If you pair it with Windows 10, it will remain paired after reboot, giving the possibility to use it since the login screen. After installing the Bluetooth stack on my Arch via the <code class="highlighter-rouge">bluez</code> and <code class="highlighter-rouge">bluez-utils</code> packages I thought the pairing process would be as simple as Windows if I used the KDE GUI menus for Bluetooth management. That’s not true. The keyboard, once paired, will reconnect automatically just after <code class="highlighter-rouge">plasmashell</code> loaded, leaving me without keyboard during the SDDM login screen and, of course, during a non-graphical session.</p>
|
||||||
|
|
||||||
|
<p>As usual, i’ve searched help in the ArchWiki, founding <a href="https://wiki.archlinux.org/index.php/Bluetooth_keyboard">this</a> article. With that, i’ve succesfully reconnected my Bluetooth keyboard using the <code class="highlighter-rouge">bluetoothctl</code> utility. The next step was configuring the service for auto connection during boot. I’ve created the <code class="highlighter-rouge">btkbd.conf</code> and the <code class="highlighter-rouge">btkbd.service</code> files, enabling the last one with systemd. Let’s give a look to the service file:</p>
|
||||||
|
|
||||||
|
<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
7
|
||||||
|
8
|
||||||
|
9
|
||||||
|
10
|
||||||
|
11
|
||||||
|
12
|
||||||
|
13
|
||||||
|
14
|
||||||
|
15
|
||||||
|
16
|
||||||
|
17
|
||||||
|
18
|
||||||
|
19</pre></td><td class="code"><pre><span class="o">[</span>Unit]
|
||||||
|
<span class="nv">Description</span><span class="o">=</span>systemd Unit to automatically start a Bluetooth keyboard
|
||||||
|
<span class="nv">Documentation</span><span class="o">=</span>https://wiki.archlinux.org/index.php/Bluetooth_Keyboard
|
||||||
|
<span class="nv">Requires</span><span class="o">=</span>dbus-org.bluez.service
|
||||||
|
<span class="nv">After</span><span class="o">=</span>dbus-org.bluez.service
|
||||||
|
<span class="nv">ConditionPathExists</span><span class="o">=</span>/etc/btkbd.conf
|
||||||
|
<span class="nv">ConditionPathExists</span><span class="o">=</span>/usr/bin/hcitool
|
||||||
|
<span class="nv">ConditionPathExists</span><span class="o">=</span>/usr/bin/hciconfig
|
||||||
|
|
||||||
|
<span class="o">[</span>Service]
|
||||||
|
<span class="nv">Type</span><span class="o">=</span>oneshot
|
||||||
|
<span class="nv">EnvironmentFile</span><span class="o">=</span>/etc/btkbd.conf
|
||||||
|
<span class="nv">ExecStart</span><span class="o">=</span>/usr/bin/hciconfig <span class="k">${</span><span class="nv">HCIDEVICE</span><span class="k">}</span> up
|
||||||
|
<span class="c"># ignore errors on connect, spurious problems with bt?</span>
|
||||||
|
<span class="c"># so start next command with -</span>
|
||||||
|
<span class="nv">ExecStart</span><span class="o">=</span>-/usr/bin/hcitool cc <span class="k">${</span><span class="nv">BTKBDMAC</span><span class="k">}</span>
|
||||||
|
|
||||||
|
<span class="o">[</span>Install]
|
||||||
|
<span class="nv">WantedBy</span><span class="o">=</span>multi-user.target<span class="w">
|
||||||
|
</span></pre></td></tr></tbody></table></code></pre></figure>
|
||||||
|
|
||||||
|
<p>Line 13 enables the Bluetooth dongle, and line 16 connects it to the keyboard we gave the mac address in <code class="highlighter-rouge">/etc/btkbd.conf</code>. This should work flawlessly, right? Of course it doesn’t. The service starts before the <code class="highlighter-rouge">dbus-org.bluez.service</code> is loaded and fails. However, if the service is started manually after login the Bluetooth keyboard works. After hours of trying figuring out what was wrong I’ve almost asked for a return on Amazon! The last attempt I made was with sddm disabled and involved built from scratch service:</p>
|
||||||
|
|
||||||
|
<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
7
|
||||||
|
8
|
||||||
|
9
|
||||||
|
10</pre></td><td class="code"><pre><span class="o">[</span>Unit]
|
||||||
|
<span class="nv">Description</span><span class="o">=</span>systemd Unit to automatically start a Bluetooth keyboard
|
||||||
|
|
||||||
|
<span class="o">[</span>Service]
|
||||||
|
<span class="nv">Type</span><span class="o">=</span>oneshot
|
||||||
|
<span class="nv">ExecStart</span><span class="o">=</span>/bin/hciconfig hci0 up
|
||||||
|
<span class="nv">ExecStart</span><span class="o">=</span>/bin/hcitool cc 00:11:22:33:44:55
|
||||||
|
|
||||||
|
<span class="o">[</span>Install]
|
||||||
|
<span class="nv">WantedBy</span><span class="o">=</span>bluetooth.target<span class="w">
|
||||||
|
</span></pre></td></tr></tbody></table></code></pre></figure>
|
||||||
|
|
||||||
|
<p>This incredibly worked. I think the problem was that <code class="highlighter-rouge">multi-user.target</code> that needs to be reached earlier than <code class="highlighter-rouge">bluetooth.target</code>. I got rid of all the tidiness of the ArchWiki solution just to be sure that was not the problem, but I think you can use all of that just correcting <code class="highlighter-rouge">WantedBy=</code>. Currently I haven’t an ArchWiki account nor a forum one, but as soon as I’ll register I’ll correct the article.</p>
|
||||||
|
|
||||||
|
<p>Let me know in the comments if this solution is well made or if it’s just a bodge.
|
||||||
|
Last thing: I discovered that my Bluetooth dongle is CSR 8510 A10 based so expect some ramblings about <a href="http://www.0xf8.org/2014/02/the-crux-of-finding-a-hid-proxy-capable-usb-bluetooth-adapter/">hid proxy</a>.</p>
|
||||||
|
</description>
|
||||||
|
<pubDate>Thu, 07 Jul 2016 14:49:18 +0200</pubDate>
|
||||||
|
<link>http://praticamentetilde.github.io/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html</link>
|
||||||
|
<guid isPermaLink="true">http://praticamentetilde.github.io/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html</guid>
|
||||||
|
|
||||||
|
|
||||||
|
<category>linux</category>
|
||||||
|
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
0
_site/images/android/chiodi.png
Normal file
179
_site/index.html
Normal file
|
@ -0,0 +1,179 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
<title>Ramblings of an archer archer</title>
|
||||||
|
<meta name="description" content="Things which an Arch Linux user that also owns an recurve bow can write.
|
||||||
|
">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
|
||||||
|
<link rel="canonical" href="http://praticamentetilde.github.io/">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="Ramblings of an archer archer" href="http://praticamentetilde.github.io/feed.xml">
|
||||||
|
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||||
|
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
|
||||||
|
<!-- Favicon -->
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="/manifest.json">
|
||||||
|
<meta name="msapplication-TileColor" content="#ffffff">
|
||||||
|
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<header class="site-header">
|
||||||
|
|
||||||
|
<div class="wrapper header">
|
||||||
|
|
||||||
|
<img class="site-logo" src="/android-icon-192x192.png" alt="MALUSA"/>
|
||||||
|
<a class="site-title" href="/">Ramblings of an archer archer</a>
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<a href="#" class="menu-icon">
|
||||||
|
<svg viewBox="0 0 18 15">
|
||||||
|
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
|
||||||
|
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
|
||||||
|
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="trigger">
|
||||||
|
|
||||||
|
|
||||||
|
<a class="page-link" href="/about/">About</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="slideshowContainer">
|
||||||
|
|
||||||
|
<div class="slideshowItem" style="background-image:url(/slides/arch.png)">
|
||||||
|
<div class="slideshowContent">
|
||||||
|
<h2>My Arch Linux setup</h2>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
var slideIndex = -1;
|
||||||
|
carousel();
|
||||||
|
function carousel() {
|
||||||
|
var i;
|
||||||
|
var fading;
|
||||||
|
var x = document.getElementsByClassName("slideshowItem");
|
||||||
|
for (i = 0; i < x.length; i++) {
|
||||||
|
if(slideIndex!=-1 && i==slideIndex){
|
||||||
|
fading=i;
|
||||||
|
x[i].className+=" fadeOut";
|
||||||
|
x[i].style.zIndex="3";
|
||||||
|
window.setTimeout(function(){
|
||||||
|
x[fading].style.zIndex="";
|
||||||
|
},1000);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
x[i].style.display = "none";
|
||||||
|
x[i].style.zIndex="";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
slideIndex++;
|
||||||
|
if (slideIndex >= x.length) {slideIndex = 0}
|
||||||
|
with(x[slideIndex]){
|
||||||
|
style.display="";
|
||||||
|
className="slideshowItem";
|
||||||
|
style.zIndex="2";
|
||||||
|
}
|
||||||
|
setTimeout(carousel, 5000);
|
||||||
|
}
|
||||||
|
var easter_egg = new Konami();
|
||||||
|
easter_egg.load("https://www.youtube.com/watch?v=yPYZpwSpKmA");
|
||||||
|
</script>
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="wrapper">
|
||||||
|
<div class="home">
|
||||||
|
|
||||||
|
<h1 class="page-heading">Posts</h1>
|
||||||
|
|
||||||
|
<ul class="post-list">
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<span class="post-meta">Jul 7, 2016</span>
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
<a class="post-link" href="/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html">Get a Bluetooth keyboard work with Arch Linux</a>
|
||||||
|
</h2>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p class="rss-subscribe">subscribe <a href="/feed.xml">via RSS</a></p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer class="site-footer">
|
||||||
|
|
||||||
|
<div class="wrapper">
|
||||||
|
|
||||||
|
<h2 class="footer-heading">Ramblings of an archer archer</h2>
|
||||||
|
|
||||||
|
<div class="footer-col-wrapper">
|
||||||
|
<div class="footer-col footer-col-1">
|
||||||
|
<ul class="contact-list">
|
||||||
|
My <a href="http://www.burarco.it/">Archery club</a>.
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-col footer-col-2">
|
||||||
|
<ul class="social-media-list">
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/praticamentetilde"><span class="icon icon--github"><svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
|
||||||
|
</span><span class="username">praticamentetilde</span></a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-col footer-col-3">
|
||||||
|
<p>Things which an Arch Linux user that also owns an recurve bow can write.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,196 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
<title>Get a Bluetooth keyboard work with Arch Linux</title>
|
||||||
|
<meta name="description" content="I’ve recently got a Rapoo E6100. This is a minimal and space saving Bluetooth 3.0 keyboard. If you pair it with Windows 10, it will remain paired after reboo...">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
|
||||||
|
<link rel="canonical" href="http://praticamentetilde.github.io/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="Ramblings of an archer archer" href="http://praticamentetilde.github.io/feed.xml">
|
||||||
|
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
||||||
|
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
|
||||||
|
<!-- Favicon -->
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="/manifest.json">
|
||||||
|
<meta name="msapplication-TileColor" content="#ffffff">
|
||||||
|
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<header class="site-header">
|
||||||
|
|
||||||
|
<div class="wrapper header">
|
||||||
|
|
||||||
|
<img class="site-logo" src="/android-icon-192x192.png" alt="MALUSA"/>
|
||||||
|
<a class="site-title" href="/">Ramblings of an archer archer</a>
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<a href="#" class="menu-icon">
|
||||||
|
<svg viewBox="0 0 18 15">
|
||||||
|
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
|
||||||
|
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
|
||||||
|
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="trigger">
|
||||||
|
|
||||||
|
|
||||||
|
<a class="page-link" href="/about/">About</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="wrapper">
|
||||||
|
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
|
||||||
|
|
||||||
|
<header class="post-header">
|
||||||
|
<h1 class="post-title" itemprop="name headline">Get a Bluetooth keyboard work with Arch Linux</h1>
|
||||||
|
<p class="post-meta"><time datetime="2016-07-07T14:49:18+02:00" itemprop="datePublished">Jul 7, 2016</time></p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="post-content" itemprop="articleBody">
|
||||||
|
<p>I’ve recently got a Rapoo E6100. This is a minimal and space saving Bluetooth 3.0 keyboard. If you pair it with Windows 10, it will remain paired after reboot, giving the possibility to use it since the login screen. After installing the Bluetooth stack on my Arch via the <code class="highlighter-rouge">bluez</code> and <code class="highlighter-rouge">bluez-utils</code> packages I thought the pairing process would be as simple as Windows if I used the KDE GUI menus for Bluetooth management. That’s not true. The keyboard, once paired, will reconnect automatically just after <code class="highlighter-rouge">plasmashell</code> loaded, leaving me without keyboard during the SDDM login screen and, of course, during a non-graphical session.</p>
|
||||||
|
|
||||||
|
<p>As usual, i’ve searched help in the ArchWiki, founding <a href="https://wiki.archlinux.org/index.php/Bluetooth_keyboard">this</a> article. With that, i’ve succesfully reconnected my Bluetooth keyboard using the <code class="highlighter-rouge">bluetoothctl</code> utility. The next step was configuring the service for auto connection during boot. I’ve created the <code class="highlighter-rouge">btkbd.conf</code> and the <code class="highlighter-rouge">btkbd.service</code> files, enabling the last one with systemd. Let’s give a look to the service file:</p>
|
||||||
|
|
||||||
|
<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
7
|
||||||
|
8
|
||||||
|
9
|
||||||
|
10
|
||||||
|
11
|
||||||
|
12
|
||||||
|
13
|
||||||
|
14
|
||||||
|
15
|
||||||
|
16
|
||||||
|
17
|
||||||
|
18
|
||||||
|
19</pre></td><td class="code"><pre><span class="o">[</span>Unit]
|
||||||
|
<span class="nv">Description</span><span class="o">=</span>systemd Unit to automatically start a Bluetooth keyboard
|
||||||
|
<span class="nv">Documentation</span><span class="o">=</span>https://wiki.archlinux.org/index.php/Bluetooth_Keyboard
|
||||||
|
<span class="nv">Requires</span><span class="o">=</span>dbus-org.bluez.service
|
||||||
|
<span class="nv">After</span><span class="o">=</span>dbus-org.bluez.service
|
||||||
|
<span class="nv">ConditionPathExists</span><span class="o">=</span>/etc/btkbd.conf
|
||||||
|
<span class="nv">ConditionPathExists</span><span class="o">=</span>/usr/bin/hcitool
|
||||||
|
<span class="nv">ConditionPathExists</span><span class="o">=</span>/usr/bin/hciconfig
|
||||||
|
|
||||||
|
<span class="o">[</span>Service]
|
||||||
|
<span class="nv">Type</span><span class="o">=</span>oneshot
|
||||||
|
<span class="nv">EnvironmentFile</span><span class="o">=</span>/etc/btkbd.conf
|
||||||
|
<span class="nv">ExecStart</span><span class="o">=</span>/usr/bin/hciconfig <span class="k">${</span><span class="nv">HCIDEVICE</span><span class="k">}</span> up
|
||||||
|
<span class="c"># ignore errors on connect, spurious problems with bt?</span>
|
||||||
|
<span class="c"># so start next command with -</span>
|
||||||
|
<span class="nv">ExecStart</span><span class="o">=</span>-/usr/bin/hcitool cc <span class="k">${</span><span class="nv">BTKBDMAC</span><span class="k">}</span>
|
||||||
|
|
||||||
|
<span class="o">[</span>Install]
|
||||||
|
<span class="nv">WantedBy</span><span class="o">=</span>multi-user.target<span class="w">
|
||||||
|
</span></pre></td></tr></tbody></table></code></pre></figure>
|
||||||
|
|
||||||
|
<p>Line 13 enables the Bluetooth dongle, and line 16 connects it to the keyboard we gave the mac address in <code class="highlighter-rouge">/etc/btkbd.conf</code>. This should work flawlessly, right? Of course it doesn’t. The service starts before the <code class="highlighter-rouge">dbus-org.bluez.service</code> is loaded and fails. However, if the service is started manually after login the Bluetooth keyboard works. After hours of trying figuring out what was wrong I’ve almost asked for a return on Amazon! The last attempt I made was with sddm disabled and involved built from scratch service:</p>
|
||||||
|
|
||||||
|
<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
5
|
||||||
|
6
|
||||||
|
7
|
||||||
|
8
|
||||||
|
9
|
||||||
|
10</pre></td><td class="code"><pre><span class="o">[</span>Unit]
|
||||||
|
<span class="nv">Description</span><span class="o">=</span>systemd Unit to automatically start a Bluetooth keyboard
|
||||||
|
|
||||||
|
<span class="o">[</span>Service]
|
||||||
|
<span class="nv">Type</span><span class="o">=</span>oneshot
|
||||||
|
<span class="nv">ExecStart</span><span class="o">=</span>/bin/hciconfig hci0 up
|
||||||
|
<span class="nv">ExecStart</span><span class="o">=</span>/bin/hcitool cc 00:11:22:33:44:55
|
||||||
|
|
||||||
|
<span class="o">[</span>Install]
|
||||||
|
<span class="nv">WantedBy</span><span class="o">=</span>bluetooth.target<span class="w">
|
||||||
|
</span></pre></td></tr></tbody></table></code></pre></figure>
|
||||||
|
|
||||||
|
<p>This incredibly worked. I think the problem was that <code class="highlighter-rouge">multi-user.target</code> that needs to be reached earlier than <code class="highlighter-rouge">bluetooth.target</code>. I got rid of all the tidiness of the ArchWiki solution just to be sure that was not the problem, but I think you can use all of that just correcting <code class="highlighter-rouge">WantedBy=</code>. Currently I haven’t an ArchWiki account nor a forum one, but as soon as I’ll register I’ll correct the article.</p>
|
||||||
|
|
||||||
|
<p>Let me know in the comments if this solution is well made or if it’s just a bodge.
|
||||||
|
Last thing: I discovered that my Bluetooth dongle is CSR 8510 A10 based so expect some ramblings about <a href="http://www.0xf8.org/2014/02/the-crux-of-finding-a-hid-proxy-capable-usb-bluetooth-adapter/">hid proxy</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</article>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer class="site-footer">
|
||||||
|
|
||||||
|
<div class="wrapper">
|
||||||
|
|
||||||
|
<h2 class="footer-heading">Ramblings of an archer archer</h2>
|
||||||
|
|
||||||
|
<div class="footer-col-wrapper">
|
||||||
|
<div class="footer-col footer-col-1">
|
||||||
|
<ul class="contact-list">
|
||||||
|
My <a href="http://www.burarco.it/">Archery club</a>.
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-col footer-col-2">
|
||||||
|
<ul class="social-media-list">
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/praticamentetilde"><span class="icon icon--github"><svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
|
||||||
|
</span><span class="username">praticamentetilde</span></a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-col footer-col-3">
|
||||||
|
<p>Things which an Arch Linux user that also owns an recurve bow can write.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
41
_site/manifest.json
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
"name": "App",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-36x36.png",
|
||||||
|
"sizes": "36x36",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "0.75"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-48x48.png",
|
||||||
|
"sizes": "48x48",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-72x72.png",
|
||||||
|
"sizes": "72x72",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "1.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-96x96.png",
|
||||||
|
"sizes": "96x96",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "2.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-144x144.png",
|
||||||
|
"sizes": "144x144",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "4.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
_site/ms-icon-144x144.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
_site/ms-icon-150x150.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
_site/ms-icon-310x310.png
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
_site/ms-icon-70x70.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
_site/slides/arch.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
_slides/arch.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
5
_slides/system.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
layout: slide
|
||||||
|
title: My Arch Linux setup
|
||||||
|
background: /slides/arch.png
|
||||||
|
---
|
BIN
android-icon-144x144.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
android-icon-192x192.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
android-icon-36x36.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
android-icon-48x48.png
Normal file
After Width: | Height: | Size: 3 KiB |
BIN
android-icon-72x72.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
android-icon-96x96.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
apple-icon-114x114.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
apple-icon-120x120.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
apple-icon-144x144.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
apple-icon-152x152.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
apple-icon-180x180.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
apple-icon-57x57.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
apple-icon-60x60.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
apple-icon-72x72.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
apple-icon-76x76.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
apple-icon-precomposed.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
apple-icon.png
Normal file
After Width: | Height: | Size: 45 KiB |
2
browserconfig.xml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
|
11
contact.md
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: About
|
||||||
|
permalink: /about/
|
||||||
|
---
|
||||||
|
|
||||||
|
My name is Claudio Maggioni and I am both an Arch Linux user and an [recurve archer](http://www.fitarco-italia.org/arcieri/situazione.php?Codice=91647). I define myself an "archer archer". This site will collect my own occasional thoughts about the two worlds, hoping someone will found them useful.
|
||||||
|
|
||||||
|
If you are curious about the code i produce my personal Github account is [here](https://github.com/praticamentetilde/). This particular site is made with jekyll and hosted by Github pages, as you can see.
|
||||||
|
|
||||||
|
PRO tip: try performing a Konami code in the home page...
|
53
css/main.scss
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
---
|
||||||
|
# Only the main Sass file needs front matter (the dashes are enough)
|
||||||
|
---
|
||||||
|
@charset "utf-8";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Our variables
|
||||||
|
$base-font-family: "Hammersmith One","Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
$base-font-size: 16px;
|
||||||
|
$base-font-weight: 200;
|
||||||
|
$small-font-size: $base-font-size * 0.875;
|
||||||
|
$base-line-height: 1.5;
|
||||||
|
|
||||||
|
$spacing-unit: 30px;
|
||||||
|
|
||||||
|
$text-color: #888;
|
||||||
|
$background-color: #090909;
|
||||||
|
$brand-color: #2a7ae2;
|
||||||
|
|
||||||
|
$grey-color: #828282;
|
||||||
|
$grey-color-light: lighten($grey-color, 40%);
|
||||||
|
$grey-color-dark: darken($grey-color, 25%);
|
||||||
|
|
||||||
|
// Width of the content area
|
||||||
|
$content-width: 800px;
|
||||||
|
|
||||||
|
$on-palm: 600px;
|
||||||
|
$on-laptop: 800px;
|
||||||
|
|
||||||
|
$slideshow-height: 70vh;
|
||||||
|
|
||||||
|
// Use media queries like this:
|
||||||
|
// @include media-query($on-palm) {
|
||||||
|
// .wrapper {
|
||||||
|
// padding-right: $spacing-unit / 2;
|
||||||
|
// padding-left: $spacing-unit / 2;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
@mixin media-query($device) {
|
||||||
|
@media screen and (max-width: $device) {
|
||||||
|
@content;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Import partials from `sass_dir` (defaults to `_sass`)
|
||||||
|
@import
|
||||||
|
"base",
|
||||||
|
"layout",
|
||||||
|
"syntax-highlighting"
|
||||||
|
;
|
BIN
favicon-16x16.png
Normal file
After Width: | Height: | Size: 967 B |
BIN
favicon-32x32.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
favicon-96x96.png
Normal file
After Width: | Height: | Size: 13 KiB |
30
feed.xml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
layout: null
|
||||||
|
---
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>{{ site.title | xml_escape }}</title>
|
||||||
|
<description>{{ site.description | xml_escape }}</description>
|
||||||
|
<link>{{ site.url }}{{ site.baseurl }}/</link>
|
||||||
|
<atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml"/>
|
||||||
|
<pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
|
||||||
|
<lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
|
||||||
|
<generator>Jekyll v{{ jekyll.version }}</generator>
|
||||||
|
{% for post in site.posts limit:10 %}
|
||||||
|
<item>
|
||||||
|
<title>{{ post.title | xml_escape }}</title>
|
||||||
|
<description>{{ post.content | xml_escape }}</description>
|
||||||
|
<pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
|
||||||
|
<link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
|
||||||
|
<guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
|
||||||
|
{% for tag in post.tags %}
|
||||||
|
<category>{{ tag | xml_escape }}</category>
|
||||||
|
{% endfor %}
|
||||||
|
{% for cat in post.categories %}
|
||||||
|
<category>{{ cat | xml_escape }}</category>
|
||||||
|
{% endfor %}
|
||||||
|
</item>
|
||||||
|
{% endfor %}
|
||||||
|
</channel>
|
||||||
|
</rss>
|
0
images/android/chiodi.png
Normal file
23
index.html
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
|
||||||
|
<div class="home">
|
||||||
|
|
||||||
|
<h1 class="page-heading">Posts</h1>
|
||||||
|
|
||||||
|
<ul class="post-list">
|
||||||
|
{% for post in site.posts %}
|
||||||
|
<li>
|
||||||
|
<span class="post-meta">{{ post.date | date: "%b %-d, %Y" }}</span>
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
|
||||||
|
</h2>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></p>
|
||||||
|
|
||||||
|
</div>
|
41
manifest.json
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
"name": "App",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-36x36.png",
|
||||||
|
"sizes": "36x36",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "0.75"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-48x48.png",
|
||||||
|
"sizes": "48x48",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-72x72.png",
|
||||||
|
"sizes": "72x72",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "1.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-96x96.png",
|
||||||
|
"sizes": "96x96",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "2.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-144x144.png",
|
||||||
|
"sizes": "144x144",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "4.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
ms-icon-144x144.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
ms-icon-150x150.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
ms-icon-310x310.png
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
ms-icon-70x70.png
Normal file
After Width: | Height: | Size: 7.1 KiB |