mirror of
https://github.com/balkian/balkian.github.com.git
synced 2024-12-27 02:38:13 +00:00
add surface go
This commit is contained in:
parent
5b93f7d576
commit
ffb175c22e
@ -154,3 +154,11 @@ copyright = "This work is licensed under a Creative Commons Attribution-ShareAli
|
|||||||
twitter_domain = ""
|
twitter_domain = ""
|
||||||
twitter = "balkian"
|
twitter = "balkian"
|
||||||
email = ""
|
email = ""
|
||||||
|
|
||||||
|
[markup]
|
||||||
|
[markup.tableOfContents]
|
||||||
|
endLevel = 3
|
||||||
|
startLevel = 1
|
||||||
|
|
||||||
|
[markup.goldmark.renderer]
|
||||||
|
unsafe= true
|
@ -12,7 +12,7 @@ tags:
|
|||||||
|
|
||||||
Add this to your /etc/lightdm/lightdm.conf file:
|
Add this to your /etc/lightdm/lightdm.conf file:
|
||||||
|
|
||||||
```
|
```cfg
|
||||||
[LightDM]
|
[LightDM]
|
||||||
logind-check-graphical=true
|
logind-check-graphical=true
|
||||||
```
|
```
|
||||||
@ -25,7 +25,8 @@ In addition to editing a single line (which you can also do with `C-x C-e`), it
|
|||||||
You use it like this:
|
You use it like this:
|
||||||
|
|
||||||
List previous commands
|
List previous commands
|
||||||
```
|
|
||||||
|
```shell
|
||||||
$ fc -l
|
$ fc -l
|
||||||
10259 nvim deploy.sh
|
10259 nvim deploy.sh
|
||||||
10260* cd ..
|
10260* cd ..
|
||||||
@ -35,7 +36,7 @@ $ fc -l
|
|||||||
|
|
||||||
List commands with date (in zsh)
|
List commands with date (in zsh)
|
||||||
|
|
||||||
```
|
```shell
|
||||||
$ fc -ld
|
$ fc -ld
|
||||||
10260* 19:38 cd ..
|
10260* 19:38 cd ..
|
||||||
10261* 19:38 nvim content/cheatsheet/linux.md
|
10261* 19:38 nvim content/cheatsheet/linux.md
|
||||||
@ -45,7 +46,7 @@ $ fc -ld
|
|||||||
|
|
||||||
You can add the date too:
|
You can add the date too:
|
||||||
|
|
||||||
```
|
```shell
|
||||||
$ fc -fld
|
$ fc -fld
|
||||||
10262 1/10/2019 19:40 cd
|
10262 1/10/2019 19:40 cd
|
||||||
10263 1/10/2019 19:40 fc -l
|
10263 1/10/2019 19:40 fc -l
|
||||||
@ -54,17 +55,37 @@ $ fc -fld
|
|||||||
|
|
||||||
You can edit a range of commands
|
You can edit a range of commands
|
||||||
|
|
||||||
```
|
```shell
|
||||||
$ fc 10262 10264
|
$ fc 10262 10264
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
The range can be relative to the current position, so the previous command is equivalent to:
|
The range can be relative to the current position, so the previous command is equivalent to:
|
||||||
|
|
||||||
```
|
```shell
|
||||||
$ fc -3 -1
|
$ fc -3 -1
|
||||||
```
|
```
|
||||||
|
|
||||||
If you save and exit, all commands are executed as a script, and it will be added to your history.
|
If you save and exit, all commands are executed as a script, and it will be added to your history.
|
||||||
|
|
||||||
Source: https://shapeshed.com/unix-fc/
|
Source: https://shapeshed.com/unix-fc/
|
||||||
|
|
||||||
|
# Prevent logoff from killing tmux sessions
|
||||||
|
|
||||||
|
Lately I've noticed that logging out of i3, intentionally or when i3 fails, would also kill any tmux or emacs sessions.
|
||||||
|
This is extremely annoying.
|
||||||
|
|
||||||
|
This is caused by a new default in logind (systemd's login) to kill user process on logoff.
|
||||||
|
You can revert this setting in your logind.conf (`/etc/systemd/logind.conf`):
|
||||||
|
|
||||||
|
```cfg
|
||||||
|
KillUserProcesses=no
|
||||||
|
```
|
||||||
|
|
||||||
|
Or only for a specific process (e.g., tmux):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
systemd-run --scope --user tmux
|
||||||
|
```
|
||||||
|
|
||||||
|
Source: https://unix.stackexchange.com/questions/490267/prevent-logoff-from-killing-tmux-session
|
||||||
|
@ -17,5 +17,3 @@ From tqdm's github repository:
|
|||||||
|
|
||||||
|
|
||||||
![TQDM in action](https://raw.githubusercontent.com/tqdm/tqdm/master/images/tqdm.gif)
|
![TQDM in action](https://raw.githubusercontent.com/tqdm/tqdm/master/images/tqdm.gif)
|
||||||
|
|
||||||
#
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
j@panther.18281:1546943267
|
|
@ -9,7 +9,7 @@ menu: main
|
|||||||
- [x] Write my first journal paper
|
- [x] Write my first journal paper
|
||||||
- [x] Write my first book chapter
|
- [x] Write my first book chapter
|
||||||
- [x] Chair a W3C Community Group
|
- [x] Chair a W3C Community Group
|
||||||
- [ ] Collaborate in a W3C recommendation
|
- [x] Collaborate on a W3C recommendation
|
||||||
- [ ] Become a doctor!
|
- [ ] Become a doctor!
|
||||||
|
|
||||||
### Technical
|
### Technical
|
||||||
@ -17,6 +17,7 @@ menu: main
|
|||||||
- [x] Write my first Django Application
|
- [x] Write my first Django Application
|
||||||
- [ ] Develop a distributed LibP2P golang application
|
- [ ] Develop a distributed LibP2P golang application
|
||||||
- [ ] Github repo with +100 stars
|
- [ ] Github repo with +100 stars
|
||||||
|
- [ ] Build a custom LineageOS image
|
||||||
|
|
||||||
### Languages
|
### Languages
|
||||||
- [x] English
|
- [x] English
|
||||||
|
79
content/post/2019-05-01-surface-go.md
Normal file
79
content/post/2019-05-01-surface-go.md
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
---
|
||||||
|
title: Linux on the Microsoft Surface Go
|
||||||
|
date: 2019-06-01 00:00:01
|
||||||
|
tags:
|
||||||
|
- linux
|
||||||
|
- surface go
|
||||||
|
- config
|
||||||
|
---
|
||||||
|
|
||||||
|
Believe it or not, Surface tablets have pretty good linux support, except for the webcams in newer models.
|
||||||
|
These are some useful notes to get Ubuntu installed in your surface go, as of Summer 2019.
|
||||||
|
|
||||||
|
|
||||||
|
<!--more-->
|
||||||
|
|
||||||
|
## Installing the kernel
|
||||||
|
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone --depth 1 https://github.com/jakeday/linux-surface.git ~/linux-surface
|
||||||
|
cp -a ~/linux-surface /media/<your usb>
|
||||||
|
```
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cp -a /media/<your usb>/linux-surface ~/
|
||||||
|
cd ~/linux-surface/
|
||||||
|
sudo sh setup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Booting ubuntu first
|
||||||
|
|
||||||
|
Switch out of Windows S mode.
|
||||||
|
|
||||||
|
|
||||||
|
Boot into the "Command Prompt".
|
||||||
|
|
||||||
|
From Windows go to "change advanced startup options" and select "restart now".
|
||||||
|
|
||||||
|
When it reboots, choose the "Troubleshoot" option, then choose the "Advanced options" option, and finally choose the "Command Prompt" option.
|
||||||
|
|
||||||
|
After the device reboots, login to the command prompt and then you should see a terminal with X:\windows\system32>
|
||||||
|
|
||||||
|
At the prompt, check your UEFI entries:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
bcdedit /enum firmware
|
||||||
|
```
|
||||||
|
|
||||||
|
Copy UEFI entry of "Windows Boot Manager" to create a new entry for Ubuntu: bcdedit /copy {bootmgr} /d "Ubuntu"
|
||||||
|
|
||||||
|
Copy the printed GUID number including the braces {} using Ctrl+C
|
||||||
|
|
||||||
|
Set file path for the new Ubuntu entry. Replace {guid} with the returned GUID of the previous command (Ctrl+V). bcdedit /set {guid} path \EFI\ubuntu\grubx64.efi
|
||||||
|
|
||||||
|
Set Ubuntu as the first/ entry in the boot sequence. Again replace {guid} with the returned GUID of the copy command.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
bcdedit /set {fwbootmgr} displayorder {guid} /addfirst
|
||||||
|
```
|
||||||
|
|
||||||
|
Check your UEFI entries again: bcdedit /enum firmware You should see something like this:
|
||||||
|
|
||||||
|
|
||||||
|
```shell
|
||||||
|
|
||||||
|
Firmware Boot Manager
|
||||||
|
---------------------
|
||||||
|
identifier {fwbootmgr}
|
||||||
|
displayorder {3510232e-f8eb-e811-95ce-9ecab3f9d1c4}
|
||||||
|
{bootmgr}
|
||||||
|
{2148799b-f8eb-e811-95ce-9ecab3f9d1c4}
|
||||||
|
{312e8a67-c2f6-e811-95ce-3c1ab3f9d1de}
|
||||||
|
{312e8a68-c2f6-e811-95ce-3c1ab3f9d1de}
|
||||||
|
timeout 0
|
||||||
|
```
|
||||||
|
|
||||||
|
Make sure the GUID you copied is the first one listed in displayorder. Then type exit, turn off the PC and turn it back on. After this my surface go is automatically booting to the grub bootloader which lets me choose between Windows and Ubuntu but defaults to Ubuntu after ten seconds.
|
||||||
|
|
@ -24,7 +24,7 @@
|
|||||||
<header id="header">
|
<header id="header">
|
||||||
<ul class="navbar" id="navbar">
|
<ul class="navbar" id="navbar">
|
||||||
<a href="/">
|
<a href="/">
|
||||||
<li {{ if ( eq .URL "/" ) }}
|
<li {{ if ( eq .Params.url "/" ) }}
|
||||||
class="active"
|
class="active"
|
||||||
{{ end }} >
|
{{ end }} >
|
||||||
<i class="fa fa-home fa-large"></i>
|
<i class="fa fa-home fa-large"></i>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{{ define "site_title" }}{{ .Title }}{{ end }}
|
{{ define "site_title" }}{{ .Title }}{{ end }}
|
||||||
|
|
||||||
{{ define "content" }}
|
{{ define "content" }}
|
||||||
{{ range (.Paginate (where .Data.Pages "Type" "post")).Pages }}
|
{{ range (.Paginate (where .Site.RegularPages "Type" "post")).Pages }}
|
||||||
{{ .Render "content-list" }}
|
{{ .Render "content-list" }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<!-- Pagination -->
|
<!-- Pagination -->
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{{ if .Site.Params.orderByPublishDate }}
|
{{ if .Site.Params.orderByPublishDate }}
|
||||||
{{ $.Scratch.Set "recentPosts" .Site.Pages.ByPublishDate.Reverse }}
|
{{ $.Scratch.Set "recentPosts" .Site.RegularPages.ByPublishDate.Reverse }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ $.Scratch.Set "recentPosts" .Site.Pages }}
|
{{ $.Scratch.Set "recentPosts" .Site.RegularPages }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ with .Site.Params.postAmount.sidebar }}
|
{{ with .Site.Params.postAmount.sidebar }}
|
||||||
|
@ -1,20 +1,16 @@
|
|||||||
<div id="sidebar" class="fixed">
|
<div id="sidebar" class="fixed">
|
||||||
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
<div id="badge" class="flip-container" ontouchstart="this.classList.toggle('hover');">
|
||||||
<div class="flipper sticky">
|
<div class="flipper sticky expand">
|
||||||
<div class="front">
|
<div class="front">
|
||||||
<!-- front content -->
|
<!-- front content -->
|
||||||
<img id="avatar" src="{{ "/img/me.png" | relURL }}">
|
<img id="avatar" class="expandx" src="{{ "/img/me.png" | relURL }}">
|
||||||
</div>
|
</div>
|
||||||
<div class="back">
|
<div class="back">
|
||||||
<!-- back content -->
|
<!-- back content -->
|
||||||
<img id="picture" src="{{ "/img/me-bat.png" | relURL }}">
|
<!-- <img id="picture" src="{{ "/img/me-bat.png" | relURL }}"> -->
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="about">
|
<div id="about">
|
||||||
<!-- <h1 class="title">Interests</h1> -->
|
<!-- <h1 class="title">Interests</h1> -->
|
||||||
<div class="icons">
|
<div class="icons vertical-center">
|
||||||
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-linux"></i></span><span class="explanation">Linux user</span></span>
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-linux"></i></span><span class="explanation">Linux user</span></span>
|
||||||
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-android"></i></span><span class="explanation">Android dev and user</span></span>
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-android"></i></span><span class="explanation">Android dev and user</span></span>
|
||||||
<a href="http://github.com/balkian" target="_blank"><span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-github"></i> </span><span class="explanation">Github user</span></span></a>
|
<a href="http://github.com/balkian" target="_blank"><span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fab fa-inverse fa-stack-1x fa-github"></i> </span><span class="explanation">Github user</span></span></a>
|
||||||
@ -29,6 +25,10 @@
|
|||||||
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-code"></i> </span> <span class="explanation">I love programming</span></span>
|
<span class="coolicon"><span class="fa-stack"> <i class="fas fa-square fa-stack-2x" ></i><i class="fas fa-inverse fa-stack-1x fa-code"></i> </span> <span class="explanation">I love programming</span></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="entries">
|
<div class="entries">
|
||||||
<h2 class="title">Latest entries</h2>
|
<h2 class="title">Latest entries</h2>
|
||||||
|
@ -58,6 +58,7 @@ body {
|
|||||||
|
|
||||||
.toc ul {
|
.toc ul {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
|
text-align: left;
|
||||||
}
|
}
|
||||||
.toc li:before {
|
.toc li:before {
|
||||||
content: "";
|
content: "";
|
||||||
@ -102,18 +103,53 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#sidebar {
|
#sidebar {
|
||||||
width: 28%;
|
width: 25%;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
padding-left: 50px;
|
padding-left: 2%;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#badge {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
#contentwrapper {
|
||||||
|
width: 1200px;
|
||||||
|
position:relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
width: 1200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
#badge{
|
#badge{
|
||||||
|
height: 270px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
width: 850px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar {
|
||||||
|
width: 290px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.front, .back {
|
||||||
|
height: 250px;
|
||||||
|
width: 230px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#badge{
|
||||||
|
display: block;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 0px auto 10px;
|
margin: 0px auto 10px;
|
||||||
width: 80%;
|
width: 250px;
|
||||||
height: 180px;
|
height: 300px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
/* margin-top: -2em; */
|
/* margin-top: -2em; */
|
||||||
-webkit-transform: rotate(-4deg);
|
-webkit-transform: rotate(-4deg);
|
||||||
@ -124,10 +160,17 @@ body {
|
|||||||
z-index: 1000;
|
z-index: 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#badge * {
|
.expandx {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
.expandy {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.expand {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
/* entire container, keeps perspective */
|
/* entire container, keeps perspective */
|
||||||
|
|
||||||
.flip-container {
|
.flip-container {
|
||||||
@ -159,14 +202,15 @@ body {
|
|||||||
transform-style: preserve-3d;
|
transform-style: preserve-3d;
|
||||||
-webkit-transform-style: preserve-3d;
|
-webkit-transform-style: preserve-3d;
|
||||||
-moz-transform-style: preserve-3d;
|
-moz-transform-style: preserve-3d;
|
||||||
|
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* hide back of pane during swap */
|
/* hide back of pane during swap */
|
||||||
.front, .back {
|
.front, .back {
|
||||||
backface-visibility: hidden;
|
|
||||||
-webkit-backface-visibility: hidden;
|
/* backface-visibility: hidden; */
|
||||||
|
/* -webkit-backface-visibility: hidden; */
|
||||||
|
/* transform: rotateX(0deg); */
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
@ -178,6 +222,11 @@ body {
|
|||||||
-moz-box-shadow: -5px 5px 15px #555;
|
-moz-box-shadow: -5px 5px 15px #555;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.back {
|
||||||
|
backface-visibility: hidden;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/* front pane, placed above back */
|
/* front pane, placed above back */
|
||||||
.front {
|
.front {
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
@ -188,6 +237,8 @@ body {
|
|||||||
transform: rotateY(180deg);
|
transform: rotateY(180deg);
|
||||||
-webkit-transform: rotateY(180deg);
|
-webkit-transform: rotateY(180deg);
|
||||||
z-index: 4;
|
z-index: 4;
|
||||||
|
/* height: 100%; */
|
||||||
|
background-color: #ffd700bb;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sticky:after {
|
.sticky:after {
|
||||||
@ -245,28 +296,12 @@ body {
|
|||||||
.toc {
|
.toc {
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
border-color: black;
|
border: 1px solid lightgray;
|
||||||
border: 1px solid;
|
|
||||||
background-color: white;
|
background-color: white;
|
||||||
height: max-content;
|
height: max-content;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
#contentwrapper {
|
|
||||||
width: 1200px;
|
|
||||||
position:relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
#container {
|
|
||||||
width: 1200px;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
#badge{
|
|
||||||
height: 270px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -818,3 +853,11 @@ pre {
|
|||||||
margin:0;
|
margin:0;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.vertical-center {
|
||||||
|
margin: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
-ms-transform: translateY(-50%);
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
@ -13,3 +13,8 @@ min_version = 0.18
|
|||||||
[author]
|
[author]
|
||||||
name = "J. Fernando Sánchez"
|
name = "J. Fernando Sánchez"
|
||||||
homepage = "http://balkian.com"
|
homepage = "http://balkian.com"
|
||||||
|
|
||||||
|
[markup]
|
||||||
|
[markup.tableOfContents]
|
||||||
|
endLevel = 3
|
||||||
|
startLevel = 1
|
Loading…
Reference in New Issue
Block a user