2026-06-15 17:42:11 +00:00
<!DOCTYPE html>
< html lang = "en" >
< head >
2026-06-28 16:28:45 +00:00
< meta charset = "UTF-8" />
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" />
< title > ⟁ antergos-pkgs</ title >
< script src = "https://cdn.tailwindcss.com" ></ script >
< script >
tailwind . config = {
theme : {
extend : {
colors : {
abyss : '#06060f' ,
surface : '#0b0b1a' ,
card : '#0f0f24' ,
border : '#1a1a35' ,
muted : '#3a3a5a' ,
dim : '#5a5a7a' ,
base : '#c0c0d0' ,
bright : '#e0e0f0' ,
accent : '#4A9EFF' ,
'accent-glow' : '#6aBEFF' ,
}
}
}
}
</ script >
2026-06-15 17:42:11 +00:00
< style >
2026-06-28 16:28:45 +00:00
@ import url ( 'https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap' ) ;
2026-06-23 09:56:30 +00:00
* { margin : 0 ; padding : 0 ; box-sizing : border-box ; }
body {
2026-06-28 16:28:45 +00:00
font-family : 'Inter' , - apple-system , BlinkMacSystemFont , sans-serif ;
background : #06060f ; color : #c0c0d0 ; min-height : 100 vh ;
2026-06-23 09:56:30 +00:00
}
2026-06-28 16:28:45 +00:00
. glow { box-shadow : 0 0 40 px -12 px rgba ( 74 , 158 , 255 , 0.15 ); }
. glow : hover { box-shadow : 0 0 60 px -8 px rgba ( 74 , 158 , 255 , 0.25 ); }
th { cursor : pointer ; user-select : none ; position : sticky ; top : 0 ; z-index : 10 ; }
th : hover { color : #4A9EFF !important ; }
th . arrow { opacity : 0 ; display : inline-block ; transition : all 0.2 s ; }
th : hover . arrow , th . asc . arrow , th . desc . arrow { opacity : 1 ; }
th . asc . arrow { transform : rotate ( 0 deg ); }
th . desc . arrow { transform : rotate ( 180 deg ); }
tr . row { transition : background 0.15 s , transform 0.15 s ; }
tr . row : hover { background : rgba ( 74 , 158 , 255 , 0.04 ); }
tr . row td : first-child { border-radius : 8 px 0 0 8 px ; }
tr . row td : last-child { border-radius : 0 8 px 8 px 0 ; }
. badge { transition : all 0.2 s ; }
. badge : hover { filter : brightness ( 1.2 ); transform : translateY ( -1 px ); }
. fade-in { animation : fadeIn 0.5 s ease-out both ; }
@ keyframes fadeIn { from { opacity : 0 ; transform : translateY ( 12 px ); } to { opacity : 1 ; transform : translateY ( 0 ); } }
. pulse-dot {
display : inline-block ; width : 8 px ; height : 8 px ; border-radius : 50 % ;
background : #2ECC71 ; margin-right : 6 px ;
animation : pulse 2 s ease-in-out infinite ;
2026-06-23 09:56:30 +00:00
}
2026-06-28 16:28:45 +00:00
@ keyframes pulse { 0 %, 100 % { opacity : 1 ; } 50 % { opacity : 0.3 ; } }
input [ type = "text" ] : focus { outline : none ; border-color : #4A9EFF !important ; box-shadow : 0 0 0 3 px rgba ( 74 , 158 , 255 , 0.1 ); }
:: -webkit-scrollbar { width : 6 px ; height : 6 px ; }
:: -webkit-scrollbar-track { background : #0b0b1a ; }
:: -webkit-scrollbar-thumb { background : #1a1a35 ; border-radius : 3 px ; }
:: -webkit-scrollbar-thumb : hover { background : #3a3a5a ; }
@ media ( max-width : 640px ) { . hide-mobile { display : none ; } }
2026-06-15 17:42:11 +00:00
</ style >
</ head >
< body >
2026-06-28 16:28:45 +00:00
< div class = "max-w-6xl mx-auto px-4 sm:px-6 py-8" >
<!-- Header -->
< div class = "text-center mb-10 fade-in" >
< h1 class = "text-5xl sm:text-6xl font-light tracking-tight text-bright" >
⟁ < span class = "font-normal text-accent" > antergos</ span >< span class = "text-dim font-light" > -pkgs</ span >
</ h1 >
< p class = "text-dim text-sm mt-3 max-w-xl mx-auto leading-relaxed" >
Custom package repository for Antergos NeXT ISO builds.
< br class = "sm:hidden" > Packages are built automatically via CI.
</ p >
2026-06-23 09:56:30 +00:00
</ div >
2026-06-15 17:42:11 +00:00
2026-06-28 16:28:45 +00:00
<!-- Stats bar -->
< div class = "flex flex-wrap gap-4 justify-center mb-8 text-xs text-dim" >
< span class = "bg-surface border border-border rounded-full px-4 py-2 flex items-center gap-2" >
2026-07-17 22:24:37 +00:00
< span class = "pulse-dot" ></ span > 39 packages
2026-06-28 16:28:45 +00:00
</ span >
2026-07-17 22:24:37 +00:00
< span class = "bg-surface border border-border rounded-full px-4 py-2" > 46 MB total</ span >
< span class = "bg-surface border border-border rounded-full px-4 py-2" > updated 2026-07-18 00:24 CET/CEST</ span >
2026-06-28 16:28:45 +00:00
</ div >
<!-- Setup collapsible -->
< details class = "bg-card border border-border rounded-xl mb-6 glow transition-all duration-300 group" >
< summary class = "px-5 py-4 text-accent cursor-pointer text-sm font-medium select-none
list-none flex items-center gap-2 hover:text-accent-glow transition-colors" >
< svg class = "w-4 h-4 transition-transform duration-200 group-open:rotate-90" fill = "none" stroke = "currentColor" viewBox = "0 0 24 24" >
< path stroke-linecap = "round" stroke-linejoin = "round" stroke-width = "2" d = "M9 5l7 7-7 7" />
</ svg >
Setup — add this repository to your < code class = "text-bright bg-abyss px-1.5 py-0.5 rounded text-xs" > pacman.conf</ code >
</ summary >
< div class = "px-5 pb-5" >
< pre class = "bg-abyss border border-border rounded-lg p-4 text-sm overflow-x-auto font-['JetBrains_Mono'] text-dim leading-relaxed" >
< span class = "text-muted" > # /etc/pacman.conf</ span >
< span class = "text-accent" > [antergos-pkgs]</ span >
SigLevel = < span class = "text-[#6aaf6a]" > Optional TrustAll</ span >
Server = < span class = "text-[#6aaf6a]" > https://antergos-next.github.io/antergos-packages/</ span >< span class = "text-[#e0e0f0]" > $repo</ span > /os/< span class = "text-[#e0e0f0]" > $arch</ span ></ pre >
</ div >
</ details >
<!-- Controls -->
< div class = "flex flex-wrap gap-3 items-center mb-5" >
< div class = "relative flex-1 min-w-[200px]" >
< svg class = "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted" fill = "none" stroke = "currentColor" viewBox = "0 0 24 24" >
< path stroke-linecap = "round" stroke-linejoin = "round" stroke-width = "2" d = "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
</ svg >
< input type = "text" id = "q" placeholder = "Search packages..." autofocus
class = "w-full bg-card border border-border rounded-lg pl-10 pr-4 py-2.5 text-sm text-base placeholder:text-muted transition-all" />
</ div >
< select id = "catFilter"
class = "bg-card border border-border rounded-lg px-3 py-2.5 text-sm text-dim cursor-pointer hover:text-base transition-colors" >
< option value = "all" > All categories</ option >
< option value = "installer" > Installer</ option >
< option value = "branding" > Branding</ option >
< option value = "core" > Core</ option >
< option value = "desktop" > Desktop</ option >
< option value = "tool" > Tool</ option >
< option value = "other" > Other</ option >
</ select >
2026-07-17 22:24:37 +00:00
< span class = "text-xs text-dim" id = "count" > 39 packages</ span >
2026-06-28 16:28:45 +00:00
</ div >
<!-- Table -->
< div class = "bg-card border border-border rounded-xl overflow-hidden glow" >
< div class = "overflow-x-auto" >
< table class = "w-full text-sm" >
< thead >
< tr class = "bg-abyss/50 text-muted text-xs uppercase tracking-wider" >
< th class = "px-4 py-3.5 text-left font-semibold" data-col = "name" onclick = "sort('name')" >
Package < span class = "arrow" > ▼</ span >
</ th >
< th class = "px-4 py-3.5 text-left font-semibold hide-mobile" data-col = "version" onclick = "sort('version')" >
Version < span class = "arrow" > ▼</ span >
</ th >
< th class = "px-4 py-3.5 text-left font-semibold hide-mobile" data-col = "arch" onclick = "sort('arch')" >
Arch < span class = "arrow" > ▼</ span >
</ th >
< th class = "px-4 py-3.5 text-left font-semibold" data-col = "category" onclick = "sort('category')" >
Category < span class = "arrow" > ▼</ span >
</ th >
< th class = "px-4 py-3.5 text-right font-semibold hide-mobile" data-col = "size" onclick = "sort('size')" >
Size < span class = "arrow" > ▼</ span >
</ th >
< th class = "px-4 py-3.5 text-right font-semibold hide-mobile" data-col = "mtime" onclick = "sort('mtime')" >
Updated < span class = "arrow" > ▼</ span >
</ th >
</ tr >
</ thead >
< tbody id = "list" ></ tbody >
</ table >
</ div >
</ div >
<!-- Footer -->
< div class = "text-center mt-10 text-xs text-muted" >
< a href = "https://github.com/Antergos-NeXT/antergos-packages" class = "hover:text-accent transition-colors" > GitHub</ a >
< span class = "mx-2" > ·</ span >
< a href = "https://antergos-next.github.io/antergos-packages/" class = "hover:text-accent transition-colors" > antergos-next.github.io</ a >
< span class = "mx-2" > ·</ span >
< a href = "https://github.com/Antergos-NeXT/antergos-iso" class = "hover:text-accent transition-colors" > ISO repo</ a >
2026-06-23 09:56:30 +00:00
</ div >
</ div >
< script >
2026-07-17 22:24:37 +00:00
const pkgs = [{ "file" : "alsa-card-profiles-1:1.6.7-1-x86_64.pkg.tar.zst" , "name" : "alsa-card-profiles-1:1.6.7" , "version" : "?-?" , "arch" : "?" , "size" : 37543 , "mtime" : "2026-07-18T00:24:34.471342+02:00" , "mtime_display" : "2026-07-18 00:24 CET/CEST" , "category" : "other" , "cat_color" : "#7F8C8D" , "description" : "" , "url" : "" , "license" : "" , "depends" : []}, { "file" : "antergos-grub-live-2026.07-1-any.pkg.tar.zst" , "name" : "antergos-grub-live" , "version" : "2026.07-1" , "arch" : "any" , "size" : 21479 , "mtime" : "2026-07-18T00:24:34.471411+02:00" , "mtime_display" : "2026-07-18 00:24 CET/CEST" , "category" : "other" , "cat_color" : "#7F8C8D" , "description" : "" , "url" : "" , "license" : "" , "depends" : []}, { "file" : "antergos-grub-theme-2026.07-1-any.pkg.tar.zst" , "name" : "antergos-grub-theme" , "version" : "2026.07-1" , "arch" : "any" , "size" : 407818 , "mtime" : "2026-07-18T00:24:34.471468+02:00" , "mtime_display" : "2026-07-18 00:24 CET/CEST" , "category" : "desktop" , "cat_color" : "#F39C12" , "description" : "Antergos GRUB theme (Layan)" , "url" : "https://github.com/Antergos-NeXT/antergos-packages" , "license" : "('GPL')" , "depends" : [ "grub" ]}, { "file" : "antergos-layan-theme-1.0-1-any.pkg.tar.zst" , "name" : "antergos-layan-theme" , "version" : "1.0-1" , "arch" : "any" , "size" : 18120320 , "mtime" : "2026-07-18T00:24:34.475695+02:00" , "mtime_display" : "2026-07-18 00:24 CET/CEST" , "category" : "other" , "cat_color" : "#7F8C8D" , "description" : "Antergos NeXT Layan theme suite \u2014 KDE configs, Kvantum, SDDM theme, and plasmoids" , "url" : "https://github.com/Antergos-NeXT/antergos-packages" , "license" : "('GPL')" , "depends" : [ "plasma-meta' 'sddm' 'kvantum' 'yakuake' 'antergos-wallpapers" ]}, { "file" : "antergos-live-base-2026.07-1-any.pkg.tar.zst" , "name" : "antergos-live-base" , "version" : "2026.07-1" , "arch" : "any" , "size" : 11789 , "mtime" : "2026-07-18T00:24:34.477044+02:00" , "mtime_display" : "2026-07-18 00:24 CET/CEST" , "category" : "other" , "cat_color" : "#7F8C8D" , "description" : "" , "url" : "" , "license" : "" , "depends" : []}, { "file" : "antergos-live-dinit-2026.07-1-any.pkg.tar.zst" , "name" : "antergos-live-dinit" , "version" : "2026.07-1" , "arch" : "any" , "size" : 7389 , "mtime" : "2026-07-18T00:24:34.477124+02:00" , "mtime_display" : "2026-07-18 00:24 CET/CEST" , "category" : "other" , "cat_color" : "#7F8C8D" , "description" : "" , "url" : "" , "license" : "" , "depends" : []}, { "file" : "antergos-live-openrc-2026.07-1-any.pkg.tar.zst" , "name" : "antergos-live-openrc" , "version" : "2026.07-1" , "arch" : "any" , "size" : 7695 , "mtime" : "2026-07-18T00:24:34.477180+02:00" , "mtime_display" : "2026-07-18 00:24 CET/CEST" , "category" : "other" , "cat_color" : "#7F8C8D" , "description" : "" , "url" : "" , "license" : "" , "depends" : []}, { "file" : "antergos-lsb-release-2.0-1-any.pkg.tar.zst" , "name" : "antergos-lsb-release" , "version" : "2.0-1" , "arch" : "any" , "size" : 2895 , "mtime" : "2026-07-18T00:24:34.477232+02:00" , "mtime_display" : "2026-07-18 00:24 CET/CEST" , "category" : "other" , "cat_color" : "#7F8C8D" , "description" : "Antergos NeXT LSB release file" , "url" : "https://github.com/Antergos-NeXT" , "license" : "('GPL2')" , "depends" : []}, { "file" : "antergos-next-desktop-settings-1-2-any.pkg.tar.zst" , "name" : "antergos-next-desktop-settings" , "version" : "1-2" , "arch" : "any" , "size" : 9028 , "mtime" : "2026-07-18T00:24:34.477278+02:00" , "mtime_display" : "2026-07-18 00:24 CET/CEST" , "category" : "branding" , "cat_color" : "#9B59B6" , "description" : "Antergos NeXT desktop settings, theme, and color scheme" , "url" : "https://github.com/Antergos-NeXT/antergos-pkgs" , "license" : "('GPL3')" , "depends" : [ "breeze-icons" , "breeze-gtk" , "ttf-opensans" , "noto-fonts" , "ttf-roboto" ]}, { "file" : "antergos-next-keyring-1-2-any.pkg.tar.zst" , "name" : "antergos-next-keyring" , "version" : "1-2" , "arch" : "any" , "size" : 6372 , "mtime" : "2026-07-18T00:24:34.477330+02:00" , "mtime_display" : "2026-07-18 00:24 CET/CEST" , "category" : "core" , "cat_color" : "#2ECC71" , "description" : "Antergos NeXT GPG keyring" , "url" : "https://github.com/Antergos-NeXT/antergos-packages" , "license" : "('GPL3')" , "depends" : []}, { "file" : "antergos-next-mirrorlist-1-1-any.pkg.tar.zst" ,
2026-06-28 16:28:45 +00:00
let sortCol = 'name' ;
let sortDir = 1 ;
let filtered = pkgs ;
function formatSize ( bytes ) {
const mb = bytes / 1024 / 1024 ;
return mb >= 1 ? mb . toFixed ( 1 ) + ' MB' : ( bytes / 1024 ). toFixed ( 0 ) + ' KB' ;
2026-06-23 09:56:30 +00:00
}
2026-06-28 16:28:45 +00:00
function escapeHtml ( s ) {
const d = document . createElement ( 'div' );
d . textContent = s ;
return d . innerHTML ;
}
function render () {
const q = document . getElementById ( 'q' ). value . toLowerCase ();
const cat = document . getElementById ( 'catFilter' ). value ;
filtered = pkgs . filter ( p => {
const matchSearch = p . name . toLowerCase (). includes ( q ) || p . description . toLowerCase (). includes ( q );
const matchCat = cat === 'all' || p . category === cat ;
return matchSearch && matchCat ;
});
// sort
filtered . sort (( a , b ) => {
let va = a [ sortCol ], vb = b [ sortCol ];
if ( sortCol === 'size' || sortCol === 'mtime' ) { va = a [ sortCol ]; vb = b [ sortCol ]; return ( va - vb ) * sortDir ; }
if ( typeof va === 'string' ) va = va . toLowerCase ();
if ( typeof vb === 'string' ) vb = vb . toLowerCase ();
if ( va < vb ) return - 1 * sortDir ;
if ( va > vb ) return 1 * sortDir ;
return 0 ;
});
const tbody = document . getElementById ( 'list' );
tbody . innerHTML = filtered . map (( p , i ) => {
const catLabel = p . category . charAt ( 0 ). toUpperCase () + p . category . slice ( 1 );
return `<tr class="row" style="animation-delay: ${ i * 30 } ms">
<td class="px-4 py-3">
<div class="flex items-center gap-2.5">
<a href=" ${ escapeHtml ( p . file ) } " class="text-accent hover:text-accent-glow font-medium transition-colors truncate max-w-[200px] sm:max-w-none block"> ${ escapeHtml ( p . name ) } </a>
</div>
<div class="text-dim text-xs mt-0.5 truncate max-w-[280px] sm:max-w-none"> ${ escapeHtml ( p . description ) } </div>
</td>
<td class="px-4 py-3 text-dim hide-mobile font-mono text-xs"> ${ escapeHtml ( p . version ) } </td>
<td class="px-4 py-3 hide-mobile"><span class="text-xs bg-abyss border border-border rounded px-1.5 py-0.5 text-dim"> ${ escapeHtml ( p . arch ) } </span></td>
<td class="px-4 py-3">
<span class="badge inline-block text-xs font-medium rounded-full px-2.5 py-0.5" style="background: ${ p . cat_color } 18; color: ${ p . cat_color } ; border: 1px solid ${ p . cat_color } 33"> ${ catLabel } </span>
</td>
<td class="px-4 py-3 text-dim text-right hide-mobile font-mono text-xs"> ${ formatSize ( p . size ) } </td>
<td class="px-4 py-3 text-dim text-right hide-mobile text-xs"> ${ p . mtime_display } </td>
</tr>` ;
}). join ( '' );
document . getElementById ( 'count' ). textContent = filtered . length + ' / ' + pkgs . length + ' packages' ;
}
function sort ( col ) {
if ( sortCol === col ) { sortDir *= - 1 ; } else { sortCol = col ; sortDir = 1 ; }
document . querySelectorAll ( 'th' ). forEach ( th => th . classList . remove ( 'asc' , 'desc' ));
const el = document . querySelector ( `th[data-col=" ${ col } "]` );
if ( el ) el . classList . add ( sortDir === 1 ? 'asc' : 'desc' );
render ();
}
document . getElementById ( 'q' ). addEventListener ( 'input' , render );
document . getElementById ( 'catFilter' ). addEventListener ( 'change' , render );
// init: sort by name asc
document . querySelector ( 'th[data-col="name"]' ). classList . add ( 'asc' );
render ();
2026-06-23 09:56:30 +00:00
</ script >
2026-06-15 17:42:11 +00:00
</ body >
</ html >