2024-08-27 00:57:20 +01:00
<!DOCTYPE html>
< html lang = "en" dir = "auto" >
< head > < meta charset = "utf-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< meta name = "viewport" content = "width=device-width, initial-scale=1, shrink-to-fit=no" >
< meta name = "robots" content = "index, follow" >
< title > Introducing Hibbian Linux | < / title >
< meta name = "keywords" content = "" >
< meta name = "description" content = "Introduction Finally , I & rsquo ; ve managed to pull together enough disparate components for the project to come together !
Please welcome:
Hibbian Linux, a distribution aimed at ham radio operators.
Another one? I know - there’ s plenty of options for radio operators to choose from. What makes this one different?
Strong Foundations & Long Term Support The system is built from the ground up on Debian Linux’ s Stable release. This provides a strong foundation backed with years of security and support.">
< meta name = "author" content = "Hibby" >
2024-08-27 01:00:56 +01:00
< link rel = "canonical" href = "https://www.hibbian.org/posts/hibbian-announce/" >
2024-08-27 00:57:20 +01:00
< link crossorigin = "anonymous" href = "/assets/css/stylesheet.min.7da7716a1f2d0725f74c6ae7f8d6adafc43aabe2b366b65bfbf433448e2a2001.css" integrity = "sha256-fadxah8tByX3TGrn+Natr8Q6q+KzZrZb+/QzRI4qIAE=" rel = "preload stylesheet" as = "style" >
2024-08-27 01:00:56 +01:00
< link rel = "icon" href = "https://www.hibbian.org/favicon.ico" >
< link rel = "apple-touch-icon" href = "https://www.hibbian.org/apple-touch-icon.png" >
< link rel = "alternate" hreflang = "en" href = "https://www.hibbian.org/posts/hibbian-announce/" >
2024-08-27 00:57:20 +01:00
< meta name = "twitter:title" content = "Introducing Hibbian Linux | " / >
< meta name = "twitter:description" content = "Introduction Finally , I & rsquo ; ve managed to pull together enough disparate components for the project to come together !
Please welcome:
Hibbian Linux, a distribution aimed at ham radio operators.
Another one? I know - there’ s plenty of options for radio operators to choose from. What makes this one different?
Strong Foundations & Long Term Support The system is built from the ground up on Debian Linux’ s Stable release. This provides a strong foundation backed with years of security and support." />
< meta property = "og:title" content = "Introducing Hibbian Linux | " / >
< meta property = "og:description" content = "Introduction Finally , I & rsquo ; ve managed to pull together enough disparate components for the project to come together !
Please welcome:
Hibbian Linux, a distribution aimed at ham radio operators.
Another one? I know - there’ s plenty of options for radio operators to choose from. What makes this one different?
Strong Foundations & Long Term Support The system is built from the ground up on Debian Linux’ s Stable release. This provides a strong foundation backed with years of security and support." />
< meta property = "og:type" content = "article" / >
2024-08-27 01:00:56 +01:00
< meta property = "og:url" content = "https://www.hibbian.org/posts/hibbian-announce/" / >
2024-08-27 00:57:20 +01:00
< meta property = "article:section" content = "posts" / >
< meta property = "article:published_time" content = "2024-08-26T23:34:26+01:00" / >
< meta property = "article:modified_time" content = "2024-08-26T23:34:26+01:00" / > < meta property = "og:site_name" content = "Hibbian Linux" / >
< script type = "application/ld+json" >
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1 ,
"name": "Posts",
2024-08-27 01:00:56 +01:00
"item": "https://www.hibbian.org/posts/"
2024-08-27 00:57:20 +01:00
},
{
"@type": "ListItem",
"position": 2 ,
"name": "Introducing Hibbian Linux",
2024-08-27 01:00:56 +01:00
"item": "https://www.hibbian.org/posts/hibbian-announce/"
2024-08-27 00:57:20 +01:00
}
]
}
< / script >
< script type = "application/ld+json" >
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Introducing Hibbian Linux | ",
"name": "Introducing Hibbian Linux",
"description": "Introduction Finally, I\u0026rsquo;ve managed to pull together enough disparate components for the project to come together!\nPlease welcome:\nHibbian Linux, a distribution aimed at ham radio operators.\nAnother one? I know - there\u0026rsquo;s plenty of options for radio operators to choose from. What makes this one different?\nStrong Foundations \u0026amp; Long Term Support The system is built from the ground up on Debian Linux\u0026rsquo;s Stable release. This provides a strong foundation backed with years of security and support.",
"keywords": [
],
"wordCount" : "464",
"inLanguage": "en",
"datePublished": "2024-08-26T23:34:26+01:00",
"dateModified": "2024-08-26T23:34:26+01:00",
"author":{
"@type": "Person",
"name": "Hibby"
},
"mainEntityOfPage": {
"@type": "WebPage",
2024-08-27 01:00:56 +01:00
"@id": "https://www.hibbian.org/posts/hibbian-announce/"
2024-08-27 00:57:20 +01:00
},
"publisher": {
"@type": "Organization",
"name": "",
"logo": {
"@type": "ImageObject",
2024-08-27 01:00:56 +01:00
"url": "https://www.hibbian.org/favicon.ico"
2024-08-27 00:57:20 +01:00
}
}
}
< / script >
< noscript >
< style >
#theme-toggle,
.top-link {
display: none;
}
< / style >
< style >
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary-bg: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list-page {
background: var(--theme);
}
.list-page:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list-page:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
< / style >
< / noscript >
< / head >
< body class = " type-posts kind-page layout-" id = "top" > < script data-no-instant >
function switchTheme(theme) {
switch (theme) {
case 'light':
document.body.classList.remove('dark');
break;
case 'dark':
document.body.classList.add('dark');
break;
default:
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
}
}
function isDarkTheme() {
return document.body.className.includes("dark");
}
function getPrefTheme() {
return localStorage.getItem("pref-theme");
}
function setPrefTheme(theme) {
switchTheme(theme)
localStorage.setItem("pref-theme", theme);
}
const toggleThemeCallbacks = {}
toggleThemeCallbacks['main'] = (isDark) => {
if (isDark) {
setPrefTheme('light');
} else {
setPrefTheme('dark');
}
}
window.addEventListener('toggle-theme', function() {
const isDark = isDarkTheme()
for (const key in toggleThemeCallbacks) {
toggleThemeCallbacks[key](isDark)
}
});
function toggleThemeListener() {
window.dispatchEvent(new CustomEvent('toggle-theme'));
}
< / script >
< script >
(function() {
const defaultTheme = 'auto';
const prefTheme = getPrefTheme();
const theme = prefTheme ? prefTheme : defaultTheme;
switchTheme(theme);
})();
< / script >
< header class = "header" >
< nav class = "nav" >
< div class = "logo" >
< span class = "logo-switches" >
< button id = "theme-toggle" accesskey = "t" title = "(Alt + T)" >
< svg id = "moon" xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
< path d = "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" > < / path >
< / svg >
< svg id = "sun" xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
< circle cx = "12" cy = "12" r = "5" > < / circle >
< line x1 = "12" y1 = "1" x2 = "12" y2 = "3" > < / line >
< line x1 = "12" y1 = "21" x2 = "12" y2 = "23" > < / line >
< line x1 = "4.22" y1 = "4.22" x2 = "5.64" y2 = "5.64" > < / line >
< line x1 = "18.36" y1 = "18.36" x2 = "19.78" y2 = "19.78" > < / line >
< line x1 = "1" y1 = "12" x2 = "3" y2 = "12" > < / line >
< line x1 = "21" y1 = "12" x2 = "23" y2 = "12" > < / line >
< line x1 = "4.22" y1 = "19.78" x2 = "5.64" y2 = "18.36" > < / line >
< line x1 = "18.36" y1 = "5.64" x2 = "19.78" y2 = "4.22" > < / line >
< / svg >
< / button >
< / span >
< / div >
< ul id = "menu" >
< li >
2024-08-27 01:00:56 +01:00
< a href = "https://www.hibbian.org/" title = "Home" class = "active"
2024-08-27 00:57:20 +01:00
>Home
< / a >
< / li >
< li >
< a href = "https://guide.hibbian.org/" title = "Guide"
>Guide
< / a >
< / li >
< li >
< a href = "https://git.hibbian.org/" title = "Git"
>Git
< / a >
< / li >
< li >
2024-08-27 01:00:56 +01:00
< a href = "https://www.hibbian.org/posts/" title = "Posts" class = "active"
2024-08-27 00:57:20 +01:00
>Posts
< / a >
< / li >
< / ul >
< / nav >
< / header >
< main class = "main post" >
< article class = "post-single" >
< header class = "post-header" >
< h1 class = "post-title" > Introducing Hibbian Linux< / h1 >
< div class = "post-meta" > < span class = "meta-item" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-calendar" style = "user-select: text;" > < rect x = "3" y = "4" width = "18" height = "18" rx = "2" ry = "2" style = "user-select: text;" > < / rect > < line x1 = "16" y1 = "2" x2 = "16" y2 = "6" style = "user-select: text;" > < / line > < line x1 = "8" y1 = "2" x2 = "8" y2 = "6" style = "user-select: text;" > < / line > < line x1 = "3" y1 = "10" x2 = "21" y2 = "10" style = "user-select: text;" > < / line > < / svg >
< span > August 26, 2024< / span > < / span >
< / div >
< / header >
< div class = "post-content" > < h1 id = "introduction" > Introduction< a hidden class = "anchor" aria-hidden = "true" href = "#introduction" > ¶< / a > < / h1 >
< p > Finally, I’ ve managed to pull together enough disparate components for the
project to come together!< / p >
< p > Please welcome:< / p >
< p > < strong > Hibbian Linux< / strong > , a distribution aimed at ham radio operators.< / p >
< h1 id = "another-one" > Another one?< a hidden class = "anchor" aria-hidden = "true" href = "#another-one" > ¶< / a > < / h1 >
< p > I know - there’ s plenty of options for radio operators to choose from.
What makes this one different?< / p >
< h2 id = "strong-foundations--long-term-support" > Strong Foundations & Long Term Support< a hidden class = "anchor" aria-hidden = "true" href = "#strong-foundations--long-term-support" > ¶< / a > < / h2 >
< p > The system is built from the ground up on Debian Linux’ s Stable release. This
provides a strong foundation backed with years of security and support.< / p >
< h2 id = "modern-software--fast-updates" > Modern Software & Fast Updates< a hidden class = "anchor" aria-hidden = "true" href = "#modern-software--fast-updates" > ¶< / a > < / h2 >
< p > Debian’ s strength is in its stability, but for some of the software we want to
use, being up to date is more important. wjstx moves quickly, bpq moves quickly.
Hibbian offers the latest packages from our community to keep on top of shifting
standards and best practises.< / p >
< p > Some packages I maintain aren’ t in Debian, but still deserve to be distributed
easily to users. You’ ll find them here!< / p >
< h2 id = "deep-experience--active-operation" > Deep Experience & Active Operation< a hidden class = "anchor" aria-hidden = "true" href = "#deep-experience--active-operation" > ¶< / a > < / h2 >
< p > Hibbian is the work of me - < a href = "https://foxk.it" > hibby< / a > . I’ m a core member of the
< a href = "https://debian.org" > Debian Hamradio< / a > team, maintaining software to be
distributed to Debian, Ubuntu, Raspberry Pi, Mint and more for a decade. I’ ve
been running a repository of software for the < a href = "https://ukpacketradio.network/" > UK packet radio
network< / a > , and the lessons, sore points and work
from this has naturally expanded into Hibbian.< / p >
< p > I run the software I maintain, I run software maintained by others and I try to
make computers do interesting things over radio. In other words, I eat my own
dog food.< / p >
< p > Where possible, contributions and modifications will go back to Debian and
software authors.< / p >
< h2 id = "stand-alone-principles" > Stand-Alone Principles< a hidden class = "anchor" aria-hidden = "true" href = "#stand-alone-principles" > ¶< / a > < / h2 >
< p > I don’ t believe in trusting other companies to host the code, data or the packages on
my behalf - everything is owned and run as ‘ Hibbian’ .< / p >
< ul >
< li > You will find the code on our own < a href = "https://git.hibbian.org/Hibbian/" > git
forge< / a > , where bug reports and issues are
welcomed.< / li >
< li > You’ ll find email communication hosted on Hibbian infrastructure< / li >
< li > You won’ t find Hibbian on Discord - try JS8 or Packet.< / li >
< / ul >
< p > When all else fails, somehow I’ ll still be able to continue and communicate.< / p >
< h1 id = "two-ways-to-install" > Two Ways to Install< a hidden class = "anchor" aria-hidden = "true" href = "#two-ways-to-install" > ¶< / a > < / h1 >
< p > There are two ways to run the Hibbian collection of software - as a repository
for your existing OS, or as a complete OS itself.< / p >
< h2 id = "repo" > Repo< a hidden class = "anchor" aria-hidden = "true" href = "#repo" > ¶< / a > < / h2 >
< p > Can’ t run the whole thing or don’ t want to commit? Don’ t worry - I ship software
in the ‘ repo’ for Debian & Raspberry Pi. You can pick and choose the latest
packages to be delivered straight to your computer and not have to reinstall
anything.< / p >
< ul >
< li > Bullseye - 11 - Oldstable< / li >
< li > Bookworm - 12 - Stable< / li >
< li > Trixie - 13 Testing< / li >
< / ul >
< p > To learn more, see the installation pages on the
< a href = "https://guide.hibbian.org/repo/" > guide< / a > .< / p >
< h2 id = "full-distro" > Full Distro< a hidden class = "anchor" aria-hidden = "true" href = "#full-distro" > ¶< / a > < / h2 >
< p > For those who want a more convenient option, the full Hibbian distribution based
on Debian Bookworm for x86_64 and Raspberry Pi will arrive later this year.< / p >
< / div >
< footer class = "post-footer" >
< / footer >
< div class = "comments-separator" > < / div >
< / article >
< / main >
< footer class = "footer" >
2024-08-27 01:00:56 +01:00
< span > © 2024 < a href = "https://www.hibbian.org/" > < / a > < / span > < span style = "display: inline-block; margin-left: 1em;" >
2024-08-27 00:57:20 +01:00
< a href = "https://creativecommons.org/licenses/by-sa/4.0/" > CC BY-SA< / a >
< / span >
< span style = "display: inline-block; margin-left: 1em;" >
Powered by
< a href = "https://gohugo.io/" rel = "noopener noreferrer" target = "_blank" > Hugo< / a > &
< a href = "https://github.com/reorx/hugo-PaperModX/" rel = "noopener" target = "_blank" > PaperModX< / a >
< / span >
< / footer >
< a href = "#top" aria-label = "go to top" title = "Go to Top (Alt + G)" class = "top-link" id = "top-link" accesskey = "g" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 12 6" fill = "currentColor" >
< path d = "M12 6H0l6-6z" / >
< / svg >
< / a >
< script >
(function() {
const disableThemeToggle = '' == '1';
if (disableThemeToggle) {
return;
}
let button = document.getElementById("theme-toggle")
button.removeEventListener('click', toggleThemeListener)
button.addEventListener('click', toggleThemeListener)
})();
< / script >
< script >
(function () {
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
const disableSmoothScroll = '' == '1';
const enableInstantClick = '' == '1';
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || disableSmoothScroll || enableInstantClick) {
return;
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
})();
< / script >
< script >
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
< / script >
< script >
if (window.scrollListeners) {
for (const listener of scrollListeners) {
window.removeEventListener('scroll', listener)
}
}
window.scrollListeners = []
< / script >
< script src = "/js/medium-zoom.min.js" data-no-instant
>< / script >
< script >
(function() {
const enableTocScroll = '' == '1'
if (!enableTocScroll) {
return
}
if (!document.querySelector('.toc')) {
console.log('no toc found, ignore toc scroll')
return
}
const scrollListeners = window.scrollListeners
const headings = document.querySelectorAll('h1[id],h2[id],h3[id],h4[id],h5[id]');
const activeClass = 'active';
let activeHeading = headings[0];
getLinkByHeading(activeHeading).classList.add(activeClass);
const onScroll = () => {
const passedHeadings = [];
for (const h of headings) {
if (getOffsetTop(h) < 5 ) {
passedHeadings.push(h)
} else {
break;
}
}
if (passedHeadings.length > 0) {
newActiveHeading = passedHeadings[passedHeadings.length - 1];
} else {
newActiveHeading = headings[0];
}
if (activeHeading != newActiveHeading) {
getLinkByHeading(activeHeading).classList.remove(activeClass);
activeHeading = newActiveHeading;
getLinkByHeading(activeHeading).classList.add(activeClass);
}
}
let timer = null;
const scrollListener = () => {
if (timer !== null) {
clearTimeout(timer)
}
timer = setTimeout(onScroll, 50)
}
window.addEventListener('scroll', scrollListener, false);
scrollListeners.push(scrollListener)
function getLinkByHeading(heading) {
const id = encodeURI(heading.getAttribute('id')).toLowerCase();
return document.querySelector(`.toc ul li a[href="#${id}"]`);
}
function getOffsetTop(heading) {
if (!heading.getClientRects().length) {
return 0;
}
let rect = heading.getBoundingClientRect();
return rect.top
}
})();
< / script >
< / body >
< / html >