Start X11 and web frontends for xC
For this, we needed a wire protocol. After surveying available options, it was decided to implement an XDR-like protocol code generator in portable AWK. It now has two backends, per each of: - xF, the X11 frontend, is in C, and is meant to be the primary user interface in the future. - xP, the web frontend, relies on a protocol proxy written in Go, and is meant for use on-the-go (no pun intended). They are very much work-in-progress proofs of concept right now, and the relay protocol is certain to change.
This commit is contained in:
109
xP/public/xP.css
Normal file
109
xP/public/xP.css
Normal file
@@ -0,0 +1,109 @@
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
.xP {
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.title, .status {
|
||||
background: #f8f8f8;
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding: .05rem .3rem;
|
||||
}
|
||||
|
||||
.middle {
|
||||
flex: auto;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.list {
|
||||
overflow-y: auto;
|
||||
border-right: 1px solid #ccc;
|
||||
min-width: 10rem;
|
||||
}
|
||||
.item {
|
||||
padding: .05rem .3rem;
|
||||
cursor: default;
|
||||
}
|
||||
.item.active {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Only Firefox currently supports align-content: safe end, thus this. */
|
||||
.buffer-container {
|
||||
flex: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
.filler {
|
||||
flex: auto;
|
||||
}
|
||||
.buffer {
|
||||
display: grid;
|
||||
grid-template-columns: max-content auto;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.date {
|
||||
padding: .3rem;
|
||||
grid-column: span 2;
|
||||
font-weight: bold;
|
||||
}
|
||||
.time {
|
||||
padding: .1rem .3rem;
|
||||
background: #f8f8f8;
|
||||
color: #bbb;
|
||||
border-right: 1px solid #ccc;
|
||||
}
|
||||
.mark {
|
||||
padding-right: .3rem;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
min-width: 2rem;
|
||||
}
|
||||
.mark.error {
|
||||
color: red;
|
||||
}
|
||||
.mark.join {
|
||||
color: green;
|
||||
}
|
||||
.mark.part {
|
||||
color: red;
|
||||
}
|
||||
.content {
|
||||
padding: .1rem .3rem;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
.content span.b {
|
||||
font-weight: bold;
|
||||
}
|
||||
.content span.i {
|
||||
font-style: italic;
|
||||
}
|
||||
.content span.u {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.content span.s {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
.content span.m {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.status {
|
||||
border-top: 2px solid #fff;
|
||||
}
|
||||
|
||||
textarea {
|
||||
padding: .05rem .3rem;
|
||||
font-family: inherit;
|
||||
}
|
||||
Reference in New Issue
Block a user