diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000..aa7547e1 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1 @@ +FROM docker.io/library/ruby:3.0.4 \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..28de3d8b --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,24 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: +// https://github.com/microsoft/vscode-dev-containers/tree/v0.205.2/containers/ruby +{ + "name": "Ruby", + "build": { + "dockerfile": "Dockerfile", + }, + // Set *default* container specific settings.json values on container create. + "settings": {}, + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "rebornix.Ruby" + ], + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + // Use 'postCreateCommand' to run commands after the container is created. + "postCreateCommand": "gem install bundler:2.3.5 && bundle install", + // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. + // "remoteUser": "vscode" + "workspaceMount": "", + "runArgs": [ + "--volume=${localWorkspaceFolder}:/workspaces/${localWorkspaceFolderBasename}:Z" + ] +} \ No newline at end of file diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..3f35c72c --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,48 @@ +name: "Build and deploy" + +on: + push: + branches: + - source + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + - run: bundle install + - run: bundle exec middleman build + + - id: variables + run: | + [[ ! -f .ruby-version ]] && exit 1 + RUBY_VERSION="$(< .ruby-version)" + echo "::set-output name=RUBY_VERSION::${RUBY_VERSION}" + + - uses: docker/setup-buildx-action@v2 + - uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - uses: docker/build-push-action@v4 + with: + file: Dockerfile + push: ${{ github.event_name != 'pull_request' }} + platforms: linux/amd64,linux/arm64 + tags: | + ghcr.io/flatpak/flatpak.github.io:${{ github.sha }} + ghcr.io/flatpak/flatpak.github.io:latest + build-args: | + RUBY_VERSION=${{ steps.variables.outputs.RUBY_VERSION }} + labels: | + org.opencontainers.image.revision=${{ github.sha }} + org.opencontainers.image.source=ssh://git@github.com:${{ github.repository }}.git + org.opencontainers.image.url=https://github.com/${{ github.repository }} + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..31cc1e06 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,19 @@ +name: "Test build" + +on: + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Setup ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + - name: Install ruby dependencies + run: bundle install + - name: Bulid with middleman + run: bundle exec middleman build diff --git a/.gitignore b/.gitignore index a320f7b6..7a6470ff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1,8 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. -# -# If you find yourself ignoring temporary files generated by your text editor -# or operating system, you probably want to add a global ignore instead: -# git config --global core.excludesfile ~/.gitignore_global - -# Ignore bundler config /.bundle - -# Ignore the build directory /build - -# Ignore cache /.sass-cache /.cache - -# Ignore .DS_store file .DS_Store +.jekyll-cache +.gem +_site diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 00000000..b0f2dcb3 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.0.4 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..d2f10734 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +ARG RUBY_VERSION +FROM docker.io/library/ruby:$RUBY_VERSION AS build + +WORKDIR /builddir +COPY . . +RUN bundle install --deployment +RUN bundle exec middleman build + +FROM docker.io/nginxinc/nginx-unprivileged:stable +COPY --from=build /builddir/build /srv/http/ +ADD nginx.conf /etc/nginx/conf.d/default.conf diff --git a/Gemfile b/Gemfile index 8eb9266d..bdb419b3 100644 --- a/Gemfile +++ b/Gemfile @@ -1,9 +1,7 @@ -# If you have OpenSSL installed, we recommend updating -# the following line to use "https" -source 'http://rubygems.org' +source 'https://rubygems.org' -gem "middleman", "~> 3"#, github: "middleman/middleman", branch: "v3-stable" -gem "middleman-google-analytics", '~> 2.1' +gem "middleman", "~> 4"#, github: "middleman/middleman", branch: "v3-stable" +gem "matomo-middleman", git: "https://github.com/flatpak/middleman-matomo" #gem "middleman-blog" gem "middleman-livereload" #3.1.0 gem "nokogiri" #1.6.0 (xml html smarts) @@ -18,14 +16,14 @@ gem "sass" #3.2.12 # gem "middleman-syntax" #deployment -gem "middleman-deploy" #, "~> 2.0.0.pre.alpha" +gem "middleman-deploy", "~> 2.0.0.pre.alpha" #gem "middleman-gh-pages" #bootstrap gem "bootstrap-sass" # "3.0.0" #bug in sprockets 3.1.2 -gem "middleman-sprockets", "~> 3.1.2" +gem "middleman-sprockets", "~> 4.1.1" #Ubuntu specific gems gem "rb-inotify" -gem "therubyracer" +gem "mini_racer", "~> 0.6.2" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 00000000..2f92c3b4 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,172 @@ +GIT + remote: https://github.com/flatpak/middleman-matomo + revision: b375ede03252aa84f396ae06bda5017778e54fdd + specs: + matomo-middleman (0.0.3) + middleman-core (>= 4.2) + +GEM + remote: https://rubygems.org/ + specs: + activesupport (6.1.7.6) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + autoprefixer-rails (10.4.7.0) + execjs (~> 2) + backports (3.23.0) + bootstrap-sass (3.4.1) + autoprefixer-rails (>= 5.2.1) + sassc (>= 2.0.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.12.2) + concurrent-ruby (1.2.2) + contracts (0.13.0) + dotenv (2.7.6) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + erubis (2.7.0) + eventmachine (1.2.7) + execjs (2.8.1) + fast_blank (1.0.1) + fastimage (2.2.6) + ffi (1.15.5) + haml (5.2.2) + temple (>= 0.8.0) + tilt + hamster (3.0.0) + concurrent-ruby (~> 1.0) + hashie (3.6.0) + http_parser.rb (0.8.0) + i18n (1.6.0) + concurrent-ruby (~> 1.0) + kramdown (2.4.0) + rexml + libv8-node (16.10.0.0-aarch64-linux) + libv8-node (16.10.0.0-x86_64-linux) + listen (3.0.8) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + memoist (0.16.2) + middleman (4.4.2) + coffee-script (~> 2.2) + haml (>= 4.0.5) + kramdown (>= 2.3.0) + middleman-cli (= 4.4.2) + middleman-core (= 4.4.2) + middleman-cli (4.4.2) + thor (>= 0.17.0, < 2.0) + middleman-core (4.4.2) + activesupport (>= 6.1, < 7.0) + addressable (~> 2.4) + backports (~> 3.6) + bundler (~> 2.0) + contracts (~> 0.13.0) + dotenv + erubis + execjs (~> 2.0) + fast_blank + fastimage (~> 2.0) + hamster (~> 3.0) + hashie (~> 3.4) + i18n (~> 1.6.0) + listen (~> 3.0.0) + memoist (~> 0.14) + padrino-helpers (~> 0.15.0) + parallel + rack (>= 1.4.5, < 3) + sassc (~> 2.0) + servolux + tilt (~> 2.0.9) + toml + uglifier (~> 3.0) + webrick + middleman-deploy (2.0.0.pre.alpha) + middleman-core (>= 3.2) + net-sftp + ptools + middleman-livereload (3.4.7) + em-websocket (~> 0.5.1) + middleman-core (>= 3.3) + rack-livereload (~> 0.3.15) + middleman-sprockets (4.1.1) + middleman-core (~> 4.0) + sprockets (>= 3.0) + mini_racer (0.6.2) + libv8-node (~> 16.10.0.0) + minitest (5.19.0) + net-sftp (3.0.0) + net-ssh (>= 5.0.0, < 7.0.0) + net-ssh (6.1.0) + nokogiri (1.16.5-aarch64-linux) + racc (~> 1.4) + nokogiri (1.16.5-x86_64-linux) + racc (~> 1.4) + padrino-helpers (0.15.1) + i18n (>= 0.6.7, < 2) + padrino-support (= 0.15.1) + tilt (>= 1.4.1, < 3) + padrino-support (0.15.1) + parallel (1.22.1) + parslet (2.0.0) + ptools (1.4.2) + public_suffix (4.0.7) + racc (1.7.3) + rack (2.2.8.1) + rack-livereload (0.3.17) + rack + rb-fsevent (0.11.1) + rb-inotify (0.10.1) + ffi (~> 1.0) + redcarpet (3.5.1) + rexml (3.3.9) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sassc (2.4.0) + ffi (~> 1.9) + servolux (0.13.0) + sprockets (4.0.3) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + temple (0.8.2) + thor (1.2.1) + tilt (2.0.10) + toml (0.3.0) + parslet (>= 1.8.0, < 3.0.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + uglifier (3.2.0) + execjs (>= 0.3.0, < 3) + webrick (1.8.2) + zeitwerk (2.6.11) + +PLATFORMS + aarch64-linux + x86_64-linux + +DEPENDENCIES + bootstrap-sass + haml + matomo-middleman! + middleman (~> 4) + middleman-deploy (~> 2.0.0.pre.alpha) + middleman-livereload + middleman-sprockets (~> 4.1.1) + mini_racer (~> 0.6.2) + nokogiri + rb-inotify + redcarpet + sass + +BUNDLED WITH + 2.3.5 diff --git a/README.md b/README.md index af917cef..50c2ae35 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,36 @@ -Flatpak.org website -=================== +# Flatpak.org website + +## Installation and setup To set up middleman locally on Fedora: - dnf install ruby rubygems rubygem-bundler rubygem-json +```shell +dnf install ruby rubygems rubygem-bundler rubygem-json +``` -In the git checkout, do a `bundle install`. This installs all -the needed modules in their appropriate vesions. +In the git checkout, do a `bundle install`. This installs all +the needed modules in their appropriate versions. Add the middleman binary location (probably ~/bin) to $PATH. +## Testing + To run a local web server to test the site: - bundle exec middleman server +```shell +bundle exec middleman server +``` -Edit the haml/scss files and commit your changes, pushing to +Edit the haml/scss files and commit your changes, pushing to origin/source. -to deploy your changes: +## Devcontainer + +You can also use the devcontainer, for e.g. with VSCode. It should setup automatically and just expects you to run the testing command from above or command you would like to run. - bundle exec middleman build - bundle exec middleman deploy +## Deployment -This will push the site from ./build into origin/master branch. -The flatpak sysadmins then have to update the live site. +Pushing new commits automatically causes to trigger new build +and deployment on OpenShift. It usually takes few minutes for +changes to become visible. Files used for build can be found +in `oscp` directory. diff --git a/config.rb b/config.rb index 7c15ba43..6aa651ee 100644 --- a/config.rb +++ b/config.rb @@ -16,6 +16,10 @@ # proxy "/this-page-has-no-template.html", "/template-file.html", locals: { # which_fake_page: "Rendering a fake page with a local variable" } +data.distro.each do |i| + proxy "/setup/#{i.slug ? i.slug : i.name}.html", "/distro-template.html", :locals => { :name => i.name, :logo => i.logo, :introduction => i.introduction, :steps => i.steps, :slug => i.slug }, :ignore => true +end + # General configuration # Reload the browser automatically whenever files change @@ -41,11 +45,11 @@ # activate :minify_javascript end -activate :relative_assets -set :relative_links, true +#activate :relative_assets +#set :relative_links, true activate :deploy do |deploy| - deploy.method = :git + deploy.deploy_method = :git deploy.branch = 'master' # default: gh-pages end @@ -53,12 +57,15 @@ set :markdown_engine, :redcarpet set :markdown, :tables => true #, :autolink => true, :gh_blockcode => true, :fenced_code_blocks => true -activate :google_analytics do |ga| - ga.tracking_id = 'UA-77917849-1' # Replace with your property ID. +activate :matomomiddleman do |p| + p.domain = 'webstats.gnome.org' + p.id = 13 end -#activate :asset_hash -#activate :directory_indexes -redirect "press/index.html", to: "press/2016-06-21-flatpak-released.html" -redirect "developer.html", to: "http://docs.flatpak.org" +activate :asset_hash +activate :directory_indexes +# we have reditects on nginx side #redirect "/hello-world.html", to: "/hello-world/" +# +#redirects happening in nginx +#https://github.com/flatpak/flatpak.github.io/issues/241 diff --git a/data/apps.yml b/data/apps.yml index 519da680..edb9eab5 100644 --- a/data/apps.yml +++ b/data/apps.yml @@ -4,116 +4,118 @@ summary: "Desktop messenger" color: "#6DA9D6" featured: "yes" - "flatpakref": "https://flathub.org/repo/appstream/org.telegram.desktop.flatpakref" + "flatpakref": "https://dl.flathub.org/repo/appstream/org.telegram.desktop.flatpakref" icons: - "128": "https://flathub.org/repo/appstream/x86_64/icons/128x128/org.telegram.desktop.png" - "64": "https://flathub.org/repo/appstream/x86_64/icons/64x64/org.telegram.desktop.png" + "128": "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/org.telegram.desktop.png" + "64": "https://dl.flathub.org/repo/appstream/x86_64/icons/64x64/org.telegram.desktop.png" - name: "Slack" id: "com.slack.Slack" ref: "app/com.slack.Slack/x86_64/stable" summary: "Chat with your team" color: "#C5BFB5" - "flatpakref": "https://flathub.org/repo/appstream/com.slack.Slack.flatpakref" + "flatpakref": "https://dl.flathub.org/repo/appstream/com.slack.Slack.flatpakref" icons: - "64": "https://lh3.googleusercontent.com/Dq-mZ5mmdE6aFPeD61DNlVTwYSI75UwHBYDq_BxBZOMSzCBnQ5OCC4-LjfP42tDlyw=w64" - + "128": "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/com.slack.Slack.png" + "64": "https://dl.flathub.org/repo/appstream/x86_64/icons/64x64/com.slack.Slack.png" + - name: "Inkscape" id: "org.inkscape.Inkscape" ref: "app/org.inkscape.Inkscape/x86_64/stable" summary: "Vector graphics editor" color: "#C5BFB5" - "flatpakref": "https://flathub.org/repo/appstream/org.inkscape.Inkscape.flatpakref" + "flatpakref": "https://dl.flathub.org/repo/appstream/org.inkscape.Inkscape.flatpakref" icons: - "128": "https://flathub.org/repo/appstream/x86_64/icons/128x128/org.inkscape.Inkscape.png" - "64": "https://flathub.org/repo/appstream/x86_64/icons/64x64/org.inkscape.Inkscape.png" + "128": "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/org.inkscape.Inkscape.png" + "64": "https://dl.flathub.org/repo/appstream/x86_64/icons/64x64/org.inkscape.Inkscape.png" - name: "Spotify" id: "com.spotify.Client" ref: "app/com.spotify.Client/x86_64/stable" summary: "Online music streaming service" color: "#1DC558" - "flatpakref": "https://flathub.org/repo/appstream/com.spotify.Client.flatpakref" + "flatpakref": "https://dl.flathub.org/repo/appstream/com.spotify.Client.flatpakref" icons: - "64": "https://lh3.googleusercontent.com/UrY7BAZ-XfXGpfkeWg0zCCeo-7ras4DCoRalC_WXXWTK9q5b0Iw7B0YQMsVxZaNB7DM=w64" - + "128": "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/com.spotify.Client.png" + "64": "https://dl.flathub.org/repo/appstream/x86_64/icons/64x64/com.spotify.Client.png" + - name: "Steam" id: "com.valvesoftware.Steam" ref: "app/com.valvesoftware.Steam/x86_64/stable" summary: "Manage and play games distributed by Steam" featured: "yes" color: "#7C8699" - "flatpakref": "https://flathub.org/repo/appstream/com.valvesoftware.Steam.flatpakref" + "flatpakref": "https://dl.flathub.org/repo/appstream/com.valvesoftware.Steam.flatpakref" icons: - "128": "https://flathub.org/repo/appstream/x86_64/icons/128x128/com.valvesoftware.Steam.png" - "64": "https://flathub.org/repo/appstream/x86_64/icons/64x64/com.valvesoftware.Steam.png" + "128": "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/com.valvesoftware.Steam.png" + "64": "https://dl.flathub.org/repo/appstream/x86_64/icons/64x64/com.valvesoftware.Steam.png" - name: "GIMP" id: "org.gimp.GIMP" ref: "app/org.gimp.GIMP/x86_64/stable" summary: "Create images and edit photographs" color: "#837E77" - "flatpakref": "https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref" + "flatpakref": "https://dl.flathub.org/repo/appstream/org.gimp.GIMP.flatpakref" icons: - "128": "https://flathub.org/repo/appstream/x86_64/icons/128x128/org.gimp.GIMP.png" - "64": "https://flathub.org/repo/appstream/x86_64/icons/64x64/org.gimp.GIMP.png" - -- name: "Atom" - id: "io.atom.Atom" - ref: "app/io.atom.Atom/x86_64/stable" - summary: "A hackable text editor for the 21st Century" - color: "#96CBA5" - "flatpakref": "https://flathub.org/repo/appstream/io.atom.Atom.flatpakref" + "128": "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/org.gimp.GIMP.png" + "64": "https://dl.flathub.org/repo/appstream/x86_64/icons/64x64/org.gimp.GIMP.png" + +- name: "Firefox" + id: "org.mozilla.firefox" + ref: "app/org.mozilla.firefox/x86_64/stable" + summary: "Fast, Private & Safe Web Browser" + color: "#FFEF42" + "flatpakref": "https://dl.flathub.org/repo/appstream/org.mozilla.firefox.flatpakref" icons: - "128": "https://flathub.org/repo/appstream/x86_64/icons/128x128/io.atom.Atom.png" - "64": "https://flathub.org/repo/appstream/x86_64/icons/64x64/io.atom.Atom.png" + "128": "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/org.mozilla.firefox.png" + "64": "https://dl.flathub.org/repo/appstream/x86_64/icons/64x64/org.mozilla.firefox.png" - name: "Kdenlive" id: "org.kde.kdenlive" ref: "app/org.kde.kdenlive/x86_64/stable" summary: "Video editor" color: "#8596C6" - "flatpakref": "https://flathub.org/repo/appstream/org.kde.kdenlive.flatpakref" + "flatpakref": "https://dl.flathub.org/repo/appstream/org.kde.kdenlive.flatpakref" icons: - "128": "https://flathub.org/repo/appstream/x86_64/icons/128x128/org.kde.kdenlive.png" - "64": "https://flathub.org/repo/appstream/x86_64/icons/64x64/org.kde.kdenlive.png" - + "128": "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/org.kde.kdenlive.png" + "64": "https://dl.flathub.org/repo/appstream/x86_64/icons/64x64/org.kde.kdenlive.png" + - name: "Skype" id: "com.skype.Client" ref: "app/com.skype.Client/x86_64/stable" summary: "Call and message Skype users" color: "#C5BFB5" - "flatpakref": "https://flathub.org/repo/appstream/com.skype.Client.flatpakref" + "flatpakref": "https://dl.flathub.org/repo/appstream/com.skype.Client.flatpakref" icons: - "64": "https://lh3.googleusercontent.com/QfAEt_ya6-n8w_TD9-PsghFC2DMSO7fLGNZB4cQ3RtbBbHFkXJE_gxOc3l32-j6LXg=w64" + "128": "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/com.skype.Client.png" + "64": "https://dl.flathub.org/repo/appstream/x86_64/icons/64x64/com.skype.Client.png" -- name: "Google Play Music" - id: "com.googleplaymusicdesktopplayer.GPMDP" - ref: "app/com.googleplaymusicdesktopplayer.GPMDP/x86_64/stable" - summary: "Google Play Music desktop app" - color: "#FAA22B" - featured: "yes" - "flatpakref": "https://flathub.org/repo/appstream/com.googleplaymusicdesktopplayer.GPMDP.flatpakref" - icons: - "128": "https://flathub.org/repo/appstream/x86_64/icons/128x128/com.googleplaymusicdesktopplayer.GPMDP.png" - "64": "https://flathub.org/repo/appstream/x86_64/icons/64x64/com.googleplaymusicdesktopplayer.GPMDP.png" - - name: "VLC" id: "org.videolan.VLC" ref: "app/org.videolan.VLC/x86_64/stable" summary: "Open-source multimedia player" color: "#DB946C" - "flatpakref": "https://flathub.org/repo/appstream/org.videolan.VLC.flatpakref" + "flatpakref": "https://dl.flathub.org/repo/appstream/org.videolan.VLC.flatpakref" icons: - "128": "https://flathub.org/repo/appstream/x86_64/icons/128x128/org.videolan.VLC.png" - "64": "https://flathub.org/repo/appstream/x86_64/icons/64x64/org.videolan.VLC.png" + "128": "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/org.videolan.VLC.png" + "64": "https://dl.flathub.org/repo/appstream/x86_64/icons/64x64/org.videolan.VLC.png" - name: "Blender" id: "org.blender.Blender" ref: "app/org.blender.Blender/x86_64/stable" summary: "3D modelling and animation" color: "#D89C7F" - "flatpakref": "https://flathub.org/repo/appstream/com.slack.Slack.flatpakref" + "flatpakref": "https://dl.flathub.org/repo/appstream/com.slack.Slack.flatpakref" + icons: + "128": "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/org.blender.Blender.png" + "64": "https://dl.flathub.org/repo/appstream/x86_64/icons/64x64/org.blender.Blender.png" + +- name: "Podman Desktop" + id: "io.podman_desktop.PodmanDesktop" + ref: "app/io.podman_desktop.PodmanDesktop/x86_64/stable" + summary: "Manage Podman and other container engines from a single UI and tray" + color: "#A337D4" + "flatpakref": "https://dl.flathub.org/repo/appstream/io.podman_desktop.PodmanDesktop.flatpakref" icons: - "128": "https://flathub.org/repo/appstream/x86_64/icons/128x128/org.blender.Blender.png" - "64": "https://flathub.org/repo/appstream/x86_64/icons/64x64/org.blender.Blender.png" + "128": "https://dl.flathub.org/repo/appstream/x86_64/icons/128x128/io.podman_desktop.PodmanDesktop.png" + "64": "https://dl.flathub.org/repo/appstream/x86_64/icons/64x64/io.podman_desktop.PodmanDesktop.png" diff --git a/data/distro.yml b/data/distro.yml new file mode 100644 index 00000000..4ad209e1 --- /dev/null +++ b/data/distro.yml @@ -0,0 +1,521 @@ +- name: Ubuntu + logo: "ubuntu.svg" + steps: + - name: Install Flatpak + text: " +

To install Flatpak on Ubuntu 18.10 (Cosmic Cuttlefish) or later, open the Terminal app and run:

+ sudo apt install flatpak" + - name: Install GNOME Software Flatpak plugin + text: ' +

The GNOME Software plugin makes it possible to install apps without needing the command line. To install, run:

+ sudo apt install gnome-software-plugin-flatpak +

Note: Ubuntu distributes GNOME Software as a Snap in versions 20.04 to 23.04, and replaced it with App Center in 23.10 and newer—neither of which support installing Flatpak apps. Installing the Flatpak plugin will also install a deb version of GNOME Software, resulting in two "Software" apps being installed at the same time on Ubuntu 20.04 to 23.04, and a single new "Software" app on Ubuntu 23.10 and newer.

' + - name: Add the Flathub repository + text: ' +

Flathub is the best place to get Flatpak apps. To enable it, download and install the Flathub repository file or run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo' + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: Fedora + logo: "fedora.svg" + introduction: > +

Flatpak is installed by default on Fedora Workstation, Fedora Silverblue, and Fedora Kinoite. To get started, all you need to do is enable Flathub, which is the best way to get Flatpak apps. Flathub is pre-configured as a part of the Third-Party Repositories. Alternatively, you can download and install the Flathub repository file.

+

Now all you have to do is install apps!

+

The above links should work on the default GNOME and KDE Fedora installations, but if they fail for some reason you can manually add the Flathub remote by running:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo + +- name: Manjaro + logo: "manjaro.svg" + steps: + - name: Enable Flatpak through the Software Manager + text: ' +

Flatpak is installed by default on Manjaro 20 or higher.

+

To enable its support, navigate to the Software Manager (Add/Remove Programs)

+

Click on the triple line menu [or dots depending on the Desktop Environment] on the right, in the drop down menu select "Preferences"

+

Navigate to the "Flatpak" tab and slide the toggle to Enable Flatpak support (it is also possible to enable checking for updates, which is recommended).

' + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: Endless OS + logo: "endless.svg" + introduction: > +

Flatpak support is built into Endless OS 3.0.0 and newer—no setup required!

+ +- name: ALT Linux + logo: "altlinux.svg" + logo_dark: "altlinux-dark.svg" + steps: + - name: Install Flatpak + text: " +

To install Flatpak on operating systems of the Alt family, open the Terminal app and run:

+ + su -\n + apt-get update\n + apt-get install flatpak\n + " + - name: Add the Flathub repository + text: " +

Flathub is the best place to get Flatpak apps. To enable it on your Alt system, run:

+ + su -\n + apt-get update\n + apt-get install flatpak-repo-flathub\n + " + - name: Restart + text: ' +

Restart your device to complete the Flatpak installation. Now you can install apps!

' + +- name: Chrome OS + logo: "chrome-os.svg" + introduction: > +

Flatpak applications can be installed on ChromeOS with the Crostini Linux compatibility layer. This is not available for all ChromeOS devices, so you should ensure your device is compatible before proceeding. A list of compatible devices is maintained here.

+ steps: + - name: Enable Linux support + text: ' +

Navigate to chrome://os-settings, and scroll down to Developers and turn on Linux development environment. ChromeOS will take some time downloading and installing Linux.

' + - name: Start a Linux terminal + text: ' +

Press the Search/Launcher key, type "Terminal", and launch the Terminal app.

' + - name: Install Flatpak + text: ' +

To install Flatpak, run the following in the terminal:

+ sudo apt install flatpak' + - name: Add the Flathub repository + text: " +

Flathub is the best place to get Flatpak apps. To enable it, run:

+ flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo" + - name: Restart + text: ' +

To complete setup, restart Linux. You can do this by right-clicking terminal, and then clicking "Shut down Linux". Now all you have to do is install apps!

' + +- name: Red Hat Enterprise Linux + logo: "redhat.svg" + introduction: > +

Flatpak is installed by default on Red Hat Enterprise Linux Workstation 9 and newer. To get started, all you need to do is enable Flathub, which is the best way to get Flatpak apps. Just download and install the Flathub repository file.

+

To install Flatpak on Red Hat Enterprise Linux Workstation 8 or older, run the following in a terminal:

+ + sudo yum install flatpak +

Now all you have to do is install apps!

+

The above links should work on the default Red Hat Enterprise Linux Workstation 9 installation, but if they fail for some reason you can manually add the Flathub remote by running:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo + +- name: Linux Mint + logo: "mint.svg" + introduction: > +

Flatpak support is built into Linux Mint 18.3 and newer—no setup required!

+ +- name: openSUSE + logo: "opensuse.svg" + steps: + - name: Install Flatpak + text: ' +

Flatpak is available in the default repositories of all currently maintained openSUSE Leap and openSUSE Tumbleweed versions.

+

If you prefer a graphical installation, you can install Flatpak using a "1-click installer" from software.opensuse.org. If your distribution version is not shown by default, click Show under Unsupported distributions category and then select from the list.

+

Alternatively, install Flatpak from the command line using Zypper:

+ sudo zypper install flatpak' + - name: Add the Flathub repository + text: ' +

Flathub is the best place to get Flatpak apps. To enable it, download and install the Flathub repository file or run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo' + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: Arch + logo: "arch.svg" + steps: + - name: Install Flatpak + text: " +

To install Flatpak on Arch, open the Terminal app and run:

+ sudo pacman -S flatpak" + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: Debian + logo: "debian.svg" + steps: + - name: Install Flatpak + text: " +

A flatpak package is available in Debian 10 (Buster) and newer. To install it, run the following as root:

+ sudo apt install flatpak" + - name: Install the Software Flatpak plugin + text: " +

If you are running GNOME, it is also a good idea to install the Flatpak plugin for GNOME Software. To do this, run:

+ sudo apt install gnome-software-plugin-flatpak +

If you are running KDE, you should instead install the Plasma Discover Flatpak backend:

+ sudo apt install plasma-discover-backend-flatpak" + - name: Add the Flathub repository + text: ' +

Flathub is the best place to get Flatpak apps. To enable it, download and install the Flathub repository file or run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo' + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: Rocky Linux + logo: "rockylinux.svg" + steps: + - name: Install Flatpak + text: " +

Flatpak is installed by default on Rocky Linux 8 and newer, when installed with a software selection that includes GNOME (Server with GUI, Workstation). If you are using such a system, you may skip this step. To install Flatpak on Rocky Linux, run the following in a terminal:

+ sudo dnf install flatpak" + - name: Add the Flathub repository + text: ' +

Flathub is the best place to get Flatpak apps. To enable it, download and install the Flathub repository file or run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo' + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: CentOS Stream + logo: "centos.svg" + introduction: > +

Flatpak is installed by default on CentOS Stream 8 and newer, when using GNOME. To get started, all you need to do is enable Flathub, which is the best way to get Flatpak apps. Just download and install the Flathub repository file.

+

Now all you have to do is install apps!

+ +- name: AlmaLinux + logo: "almalinux.svg" + introduction: > +

Flatpak is installed by default on AlmaLinux 8 and newer, when using GNOME. To get started, all you need to do is enable Flathub, which is the best way to get Flatpak apps. Just download and install the Flathub repository file.

+

Now all you have to do is install apps!

+ +- name: Gentoo + logo: "gentoo.svg" + steps: + - name: Install Flatpak + text: " +

To install Flatpak on Gentoo, open the Terminal app and run:

+ emerge --ask --verbose sys-apps/flatpak" + - name: Add the Flathub repository + text: " +

Flathub is the best place to get Flatpak apps. To enable it, run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo" + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

+

Note: graphical installation of Flatpak apps may not be possible with Gentoo.

' + +- name: Kubuntu + logo: "kubuntu.svg" + steps: + - name: Install Flatpak + text: " +

To install Flatpak on Kubuntu, open Discover, go to Settings, install the Flatpak backend and restart Discover.

" + - name: Install the Flatpak system settings add-on + text: " +

To integrate Flatpak support into the Plasma System Settings, open the Terminal app and run:

+ sudo apt install kde-config-flatpak" + - name: Add the Flathub repository + text: " +

Flathub is the best place to get Flatpak apps. To enable it, open Discover, go to Settings and add the Flathub repository.

" + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: Solus + logo: "solus.svg" + steps: + - name: Install Flatpak + text: " +

To install Flatpak on Solus, open the Terminal app and run:

+ sudo eopkg install flatpak" + - name: Add the Flathub repository + text: ' +

Flathub is the best place to get Flatpak apps. To enable it, download and install the Flathub repository file or run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo' + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

+

Note: graphical installation of Flatpak apps is not yet possible with Solus, but will be available in the near future.

' + +- name: Alpine + logo: "alpine.svg" + steps: + - name: Install Flatpak + text: " +

Flatpak can be installed from the community repository. Run the following in a terminal:

+ doas apk add flatpak" + - name: Install the Software Flatpak plugin + text: " +

You can install the Flatpak plugin for either the GNOME Software (since v3.13) or KDE Discover (since v3.11), making it possible to install apps without needing the command line. To install, for GNOME Software run:

+ doas apk add gnome-software-plugin-flatpak +

For KDE Discover run:

+ doas apk add discover-backend-flatpak" + - name: Add the Flathub repository + text: ' +

Flathub is the best place to get Flatpak apps. To enable it, download and install the Flathub repository file or run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo' + - name: Restart + text: ' +

To complete the setup, restart your system. Now all you have to do is install apps!

' + +- name: Mageia + logo: "mageia.svg" + steps: + - name: Install Flatpak + text: " +

A flatpak package is available for Mageia 6 and newer. To install with DNF, run the following as root:

+ dnf install flatpak +

Or, to install with urpmi, run:

+ urpmi flatpak" + - name: Add the Flathub repository + text: ' +

Flathub is the best place to get Flatpak apps. To enable it, download and install the Flathub repository file or run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo' + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: OpenMandriva Lx + logo: "openmandriva.svg" + introduction: > +

Flatpak support is built into OpenMandriva for all actively supported versions, starting from the stable/fixed release 'Rock 5.0', through the development release 'Cooker', and ending with the rolling release 'ROME'.

+

Flatpak comes with the pre-configured Flathub repository.

+ +- name: "Pop!_OS" + logo: "pop-os.svg" + introduction: > +

Flatpak support is built into Pop!_OS 20.04 and newer—no setup required!

+ +- name: elementary OS + logo: "elementary-os.svg" + logo_dark: "elementary-os-dark.svg" + steps: + - name: Install Apps + text: + '

elementary OS 5.1 and newer comes with Flatpak support out of the box. For non-curated apps, head to Flathub to install any app using the big "Install" button, and open the downloaded `.flatpakref` file with Sideload.

+

Note: After installing one app from a remote like Flathub, all other apps from that remote will also automatically show up in AppCenter.

' + +- name: Raspberry Pi OS + logo: "raspberry-pi-os.svg" + steps: + - name: Install Flatpak + text: " +

A flatpak package is available in Raspberry Pi OS (previously called Raspbian) Stretch and newer. To install it, run the following as root:

+ sudo apt install flatpak" + - name: Add the Flathub repository + text: " +

Flathub is the best place to get Flatpak apps. To enable it, run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo +

Important note: It is recommended to use Raspberry Pi OS 64-bit as newer applications are more likely to be available for that platform only.

" + - name: Restart + text: + '

To complete setup, restart your system. Now all you have to do is install apps!

+

Note: graphical installation of Flatpak apps may not be possible with Raspberry Pi OS.

' + +- name: Void Linux + logo: "void.svg" + logo_dark: "void-dark.svg" + steps: + - name: Install Flatpak + text: " +

To install Flatpak on Void Linux, run the following in a terminal:

+ sudo xbps-install -S flatpak" + - name: Add the Flathub repository + text: " +

Flathub is the best place to get Flatpak apps. To enable it, run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo" + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: NixOS + logo: "nixos.svg" + steps: + - name: Install Flatpak + text: " +

To install Flatpak, set NixOS option services.flatpak.enable to true by putting the following into your /etc/nixos/configuration.nix:

+ services.flatpak.enable = true; +

Then, rebuild and switch to the new configuration with:

+ sudo nixos-rebuild switch +

For more details see the NixOS documentation.

" + - name: Add the Flathub repository + text: " +

Flathub is the best place to get Flatpak apps. To enable it, run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo" + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: PureOS + logo: "pureos.svg" + logo_dark: "pureos-dark.svg" + introduction: > +

Flatpak is installed by default on PureOS. To get started, all you need to do is enable Flathub, which is the best way to get Flatpak apps. Just download and install the Flathub repository file.

+

Now all you have to do is install apps!

+ +- name: Zorin OS + logo: "zorin-os.svg" + introduction: > +

Flatpak support is built into Zorin OS

+

You can use the Software Store app to download Flatpak apps.

+ +- name: Deepin + logo: "deepin.svg" + steps: + - name: Install Flatpak + text: " +

To install Flatpak on Deepin, run the following in a terminal:

+ sudo apt install flatpak" + - name: Add the Flathub repository + text: " +

Flathub is the best place to get Flatpak apps. To enable it, run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo" + - name: Install the Deepin themes + text: ' +

To install light and dark themes, run:

+ + flatpak install flathub org.gtk.Gtk3theme.deepin\n + flatpak install flathub org.gtk.Gtk3theme.deepin-dark\n + ' + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: Pardus + logo: "pardus.svg" + steps: + - name: Install Flatpak + text: ' +

A flatpak package is available in Pardus 2019 and newer. To install it, run the following as root:

+ sudo apt install flatpak' + - name: Install the Software Flatpak plugin + text: " +

If you are running GNOME, it is also a good idea to install the Flatpak plugin for GNOME Software. To do this, run:

+ sudo apt install gnome-software-plugin-flatpak" + - name: Add the Flathub repository + text: ' +

Flathub is the best place to get Flatpak apps. To enable it, download and install the Flathub repository file or run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo' + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: MX Linux + logo: "mxlinux.svg" + steps: + - name: Enable Flatpak through the Software Manager + text: ' +

Flatpak support is built in from MX 18 and later. It is only required to activate the Flathub repository following these instructions:

+

Open MX Package Installer (open the menu and look in MX Tools), select the "Flatpaks" tab, to activate the repository you will need to enter the root password.

' + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: "Pisi GNU/Linux" + slug: "Pisi GNU Linux" + logo: "pisi.svg" + logo_dark: "pisi-dark.svg" + steps: + - name: Install Flatpak + text: " +

A flatpak package is available in Pisi 2.1 and newer. To install it, run the following as root:

+ sudo pisi it flatpak" + - name: Add the Flathub repository + text: " +

Flathub is the best place to get Flatpak apps. To enable it, run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo" + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

+

Note: graphical installation of Flatpak apps may not be possible with Pisi GNU/Linux.

' + +- name: EndeavourOS + logo: "endeavouros.svg" + logo_dark: "endeavouros-dark.svg" + steps: + - name: Install Flatpak + text: " +

To install Flatpak on EndeavorOS, you must first make sure your installation is up to date, run the following in a terminal:

+ sudo pacman -Syu +

Then install Flatpak:

+ sudo pacman -S flatpak" + - name: Add the Flathub repository + text: + "

Flathub is the best place to get Flatpak apps. To enable it, run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo" + - name: Restart + text: + '

To complete setup, restart your system. Now all you have to do is install apps!

+

Note: graphical installation of Flatpak apps may not be possible with EndeavourOS.

' + +- name: KDE neon + logo: "kdeneon.svg" + introduction: > +

Flatpak support is built into KDE neon 19 and newer—no setup required!

+ +- name: GNU Guix + logo: "guix.svg" + logo_dark: "guix-dark.svg" + steps: + - name: Install Flatpak + text: " +

To install Flatpak on GNU Guix, run the following in a terminal:

+ guix install flatpak" + - name: Add the Flathub repository + text: " +

Flathub is the best place to get Flatpak apps. To enable it, run:

+ flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo" + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

+

Note: graphical installation of Flatpak apps may not be possible with GNU Guix.

' + +- name: Crystal Linux + logo: "crystallinux.svg" + introduction: > +

Flatpak is installed by default on Crystal Linux.

+

If you didn't use jade_gui to install crystal or selected not to install it, you can set Flatpak up by using the following steps.

+ steps: + - name: Install Flatpak + text: " +

To install Flatpak in Crystal Linux, you must first make sure your packages are up to date. Run the following in a terminal:

+ ame upg +

Then install Flatpak:

+ ame ins flatpak" + - name: Add the Flathub repository + text: " +

Flathub is the best place to get Flatpak apps. To enable it, run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo" + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

' + +- name: Vanilla OS + logo: "vanillaos.svg" + introduction: > +

Flatpak is installed by default on Vanilla OS.

+

You can use the Software app or browse Flathub to install apps.

+

If for some reason Flathub is not available, you can configure it manually using the following command:

+ host-shell flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo + +- name: Salix + logo: "salix.svg" + introduction: > +

Flatpak is installed by default on Salix since version 15.0—no setup required!

+

Flatpak comes preconfigured with the Flathub repository and desktop integration tools are included to allow 1-click install from Flathub.

+

All you have to do is install apps!

+ +- name: Slackware + logo: "slackware.svg" + steps: + - name: Install Flatpak + text: " +

A Flatpak package is available on SlackBuilds. To install it (assuming you use Sbopkg/sqg), first create the queuefile and run the following as root:

+ sqg -p flatpak +

Then compile it. Load the queuefile, press 'Q', and wait:

+ sbopkg -i flatpak" + + - name: Add the Flathub repository + text: " +

Flathub is the best place to get Flatpak apps. To enable it, run:

+ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo" + + - name: Restart + text: ' +

To complete setup, restart your system. Now all you have to do is install apps!

+

Note: graphical installation of Flatpak apps may not be possible with Slackware.

' diff --git a/data/menu.yml b/data/menu.yml index b17b6a25..ab0958b3 100644 --- a/data/menu.yml +++ b/data/menu.yml @@ -1,15 +1,23 @@ -- title: Install Applications - link: "https://flathub.org/" +- title: Get Setup + link: "/setup/" onlyfooter: true -- title: Developer guide - link: "http://docs.flatpak.org/" +- title: Browse Apps ↗ + link: "https://flathub.org/" onlyfooter: true -- title: Press - link: "/press" +- title: Developer guide ↗ + link: "https://docs.flatpak.org/" onlyfooter: true - title: FAQ link: "/faq.html" onlyfooter: true -- title: About & Contact +- title: Presentations & Articles + link: "/presentations.html" + onlyfooter: true +- title: Blog Posts + link: "/blog-posts.html" + onlyfooter: true +- title: About Us & Contact link: "/about.html" - +- title: Press + link: "/press.html" + onlyfooter: true diff --git a/data/site.yml b/data/site.yml index ae4b6b9d..1812dc01 100644 --- a/data/site.yml +++ b/data/site.yml @@ -1,5 +1,5 @@ name: Flatpak -domain: http://flatpak.org +domain: https://flatpak.org punchline: The Future of Application Distribution ## If unspecified, timezone defaults to UTC diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 00000000..5234d22d --- /dev/null +++ b/nginx.conf @@ -0,0 +1,80 @@ +charset_types + text/css + text/plain + text/vnd.wap.wml + application/javascript + application/json + application/rss+xml + application/xml; + +tcp_nopush on; +gzip on; +gzip_comp_level 5; +gzip_proxied any; +gzip_vary on; + +gzip_types + application/atom+xml + application/javascript + application/json + application/ld+json + application/manifest+json + application/rss+xml + application/vnd.geo+json + application/vnd.ms-fontobject + application/x-font-ttf + application/x-web-app-manifest+json + application/xhtml+xml + application/xml + font/opentype + image/bmp + image/svg+xml + image/x-icon + text/cache-manifest + text/css + text/plain + text/vcard + text/vnd.rim.location.xloc + text/vtt + text/x-component + text/x-cross-domain-policy; + +server { + listen 8080 default_server; + server_name _; + + root /srv/http/; + try_files $uri $uri/ $uri.html =404; + error_page 404 /404.html; + absolute_redirect off; + + rewrite ^/setup/(.*)/ https://flatpak.org/setup/$1; + + location /apps.html { + return 301 https://flathub.org/; + } + + location /developer.html { + return 301 http://docs.flatpak.org/en/latest/; + } + + location /getting.html { + return 301 /setup/; + } + + location /hello-world.html { + return 301 http://docs.flatpak.org/en/latest/getting-started.html; + } + + location /runtimes.html { + return 301 http://docs.flatpak.org/en/latest/available-runtimes.html; + } + + # Some flatpak images are compressed SVG files. Skip compressing + # them again but tell clients that they're already compressed since + # many browsers don't know that svgz is compressed. + location ~* \.svgz$ { + gzip off; + add_header Content-Encoding "gzip"; + } +} diff --git a/source/2016-06-21-flatpak-released.html.haml.markdown b/source/2016-06-21-flatpak-released.html.haml.markdown deleted file mode 100644 index d5581f42..00000000 --- a/source/2016-06-21-flatpak-released.html.haml.markdown +++ /dev/null @@ -1,58 +0,0 @@ -
-:markdown - # Announcing Flatpak – Next Generation Linux Applications - - Stockholm, Sweden – 20th June 2016 – The development team behind Flatpak is excited to announce the general availablity of their new framework for desktop applications on Linux. Previously named xdg-app, [Flatpak is available on a range of major Linux distributions](http://flatpak.org/getting.html). - - ## Build once, run anywhere - - - - The Linux desktop has long been held back by platform fragmentation. This has been a burden on developers, and creates a high barrier to entry for third party application developers. Flatpak aims to change all that. From the very start its primary goal has been to allow the same application to run across a myriad of Linux distributions and operating systems. In doing so, it greatly increases the number of users that application developers can easily reach. - - Speaking about the goals behind Flatpak, Alexander Larsson, its lead developer, said: “Application developers on Linux have always been prevented from having a direct relationship with their users. With Flatpak we're aiming to change that, so developers know exactly what their users are getting. With this launch we are making that goal a reality.” - - Flatpak has been available for a range of Linux distributions for several weeks. It allows application developers to build against a series of stable platforms (known as runtimes), as well as to bundle libraries directly within their applications. Flatpak is also standards compliant, offering support for the [Open Container Initiative](https://www.opencontainers.org/) specification. - - A growing range of applications are already available as Flatpaks, including Firefox, LibreOffice, the GIMP, InkScape, MyPaint, Darktable, and a large number of stock GNOME applications. [flatpak.org provides instructions on how to easily try these yourself](/apps.html). Linux desktops are also adopting Flatpak. A fully functional GNOME runtime has been available since March: this allows application developers to build and distribute Flatpaks using the GNOME development stack. Work on a similar runtime for KDE is proceeding. - - Not only does Flatpak provide cross-distribution installation, but it also allows forward compatibility. Michael Meeks, Director of [The Document Foundation](https://www.documentfoundation.org/), said: “Until now, building a LibreOffice that works for every Linux user has involved some horrible compromises caused by the need to build our binaries on an ancient Linux version to get good forward compatibility. Flatpak will enable us (as a Linux ISV) to distribute a better LibreOffice, with up-to-date dependencies and a platform that can run on many systems. I'm excited to see that happen.” - - ## Security first - - Another area where the Linux desktop has been weak is security: it has never had a viable model for isolating applications, or for gatekeeping access to user data. This is another area where Flatpak aims to upset the status quo. To this end, it has been built from the ground up with security in mind. - - Flatpak apps are sandboxed. From within the sandbox, the only things the app can “see” are itself and a limited set of libraries and operating system interfaces. This effectively isolates apps from each other as well as from the host system and makes it much harder for applications to steal user data or exploit one another. - - Initial Flatpak releases have concentrated on application building, distribution and installation, and while the foundations of sandboxing are in place, there are still missing pieces. “The next major Flatpak release will be all about sandboxing”, says Larsson. “Application authors will see a much more complete set of interfaces for interacting with the operating system from within a sandbox.” - - Another major part of this work is the widescale move towards the Wayland display server on Linux. X11 is inherently insecure, which makes it impossible to sandbox applications that are using it. In that sense, the growing maturity of Wayland complements Flatpak's emergence, and paves the way for much more complete security model for Linux distributions. - - ## Background to Flatpak - - [![Alexander Larsson. Photo by Garrett LeSage](/img/CC-BY-SA-4.0-Garrett-LeSage-sm.jpg "Alexander Larsson. Photo by Garrett LeSage")](/img/CC-BY-SA-4.0-Garrett-LeSage.jpg) - - Flatpak is the brainchild of Alexander Larsoon, Principal Software Engineer at Red Hat. Larson has been working in the Linux desktop space for 18 years. He was the principal author of GVfs (GNOME's Virtual Filesystem) and has done critical work on Docker, the SPICE protocol, the Gecko rendering engine, GLib and GTK+. He has considerable experience in the area of application bundling. - - Flatpak builds on several cutting edge technologies. Under the hood, it makes significant use of [OSTree](https://ostree.readthedocs.org), which can be described as “Git for large binaries”. This provides much of the functionality for hosting software repositories. It also makes Flatpak extremely efficient: applications and libraries that are installed with Flatpak are de-duplicated, saving disk space; “static deltas” reduce the size of downloads for software updates. - - For sandboxing, Flatpak makes use of the [Bubblewrap](https://github.com/projectatomic/bubblewrap) utilty, as well as several Linux kernel features (such as cgroups and namespaces), which helps to make it portable across distributions. - - ## Rapid community growth and adoption - - It is well known that Fedora is making plans around Flatpak. Commenting on Flatpak, Christian F.K. Schaller (Senior Manager at Red Hat and member of the Fedora Workstation Working Group) stated: “The Fedora Workstation team are very excited about Flatpak and the prospects it brings for making the Linux desktop easier to develop for. We plan to continue supporting this effort going forward and help advocate it to a wider audience." - - There is also interest from other parties. One early adopter of Flatpak is [Endless Computers](https://endlessm.com/). Speaking about the launch of Flatpak, Jonathan Blandford (VP of Software Engineering at Endless) said: “The Flatpak launch represents a major milestone in providing a unified context for Linux developers. At Endless, we’re proud to be a part of this movement and have fully embraced Flatpak by readily converting all of our applications for our upcoming release and continuing to build new Flatpak apps. We encourage others to do so as well in what we hope to be a revolution among Linux app creation and adoption.” - - ![Endless Computers and its App ecosystem](/img/endless-apps.png "Endless Computers and its App ecosystem") - - Other distributions are showing interest, as well as other Free Software companies. Simon McVittie is Senior Software Engineer at Collabora and a Debian developer, and is himself looking to Flatpak: “Bringing Flatpak technology into Debian enables us to run applications in a predictable environment with their most suitable library stack, without compromising the base OS's stability and flexibility. Flatpak also retains the ability to deploy security updates, making it a significant enhancement for the many Debian-based desktop and embedded distributions, both in the community and in commercial products.” - - One reason for the increasing interest in Flatpak is due to its adaptability and the fact that it is a genuinely upstream project. It can be used and adapted as part of downstream and bespoke solutions, is hosted on Freedesktop.org and Github, and is licensed with the LGPL, with no copyright assignment or contributor license agreement required. - - Larsson is obviously pleased by the momentum behind Flatpak. “It's exciting to see the growing interest in what we are doing, as developers realise the possibilities of the technology,” he said. - - More information about Flatpak can be found on [flatpak.org](http://flatpak.org/). - -
- diff --git a/source/404.html.haml b/source/404.html.haml index 7b765177..967260ac 100644 --- a/source/404.html.haml +++ b/source/404.html.haml @@ -1,14 +1,13 @@ --- -title: Flatpak -- page not found +title: Flatpak—page not found description: 404 Page not Found --- %section#notfound .container .row - .col-lg-10.col-lg-offset-1 - %h1.section-heading.text-center Oops + .col-lg-5.col-lg-offset-4 %p = partial "404.svg" %p.centered - The page you're looking for is no longer there. + Sorry, that page can't be found. diff --git a/source/CNAME b/source/CNAME deleted file mode 100644 index fa2d5223..00000000 --- a/source/CNAME +++ /dev/null @@ -1 +0,0 @@ -flatpak.org diff --git a/source/_app-grid.svg b/source/_app-grid.svg deleted file mode 100644 index 43ada80b..00000000 --- a/source/_app-grid.svg +++ /dev/null @@ -1,1785 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/source/_distro-grid.svg b/source/_distro-grid.svg deleted file mode 100644 index 1db449f4..00000000 --- a/source/_distro-grid.svg +++ /dev/null @@ -1,432 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/source/_footer.haml b/source/_footer.haml index 766303d5..fb0f091a 100644 --- a/source/_footer.haml +++ b/source/_footer.haml @@ -2,8 +2,8 @@ .container .row .col-lg-3.col-lg-offset-1.col-sm-3.hidden-xs - %a.navbar-brand.page-scroll{:href => "#page-top"} - =image_tag '/img/logo.svg', :title => 'Flatpak', :class => 'full' + %a.navbar-brand.page-scroll{:href => "#page-top"} + =partial "logo.svg" %ul.col-lg-7.col-lg-offset-0.col-sm-8.col-sm-offset-0.col-xs-7.col-xs-offset-2 %li.toplevel = link_to "Home", "/index.html" @@ -29,3 +29,10 @@ :css #twitterbird path { transition: fill 400ms ease-in-out; } #twitterbird path:hover { fill: #fff !important; } + .col-lg-1.col-sm-1.col-xs-1 + + =partial "mastodon.svg" + + :css + #mastodonlogo path { transition: fill 400ms ease-in-out; } + #mastodonlogo path:hover { fill: #fff !important; } diff --git a/source/_logo.svg b/source/_logo.svg new file mode 100644 index 00000000..8c113579 --- /dev/null +++ b/source/_logo.svg @@ -0,0 +1 @@ + diff --git a/source/_mastodon.svg b/source/_mastodon.svg new file mode 100644 index 00000000..dec86e3e --- /dev/null +++ b/source/_mastodon.svg @@ -0,0 +1,40 @@ + + diff --git a/source/_twitter.svg b/source/_twitter.svg index 8cf459dd..10c6f887 100644 --- a/source/_twitter.svg +++ b/source/_twitter.svg @@ -22,4 +22,4 @@ id="twitterbird"> \ No newline at end of file + d="m 2000,1432.96 c -73.58,-32.64 -152.67,-54.69 -235.66,-64.61 84.7,50.78 149.77,131.19 180.41,227.01 -79.29,-47.03 -167.1,-81.17 -260.57,-99.57 -74.84,79.75 -181.48,129.57 -299.5,129.57 -226.6,0 -410.328,-183.71 -410.328,-410.31 0,-32.16 3.628,-63.48 10.625,-93.51 -341.016,17.11 -643.368,180.47 -845.739,428.72 -35.324,-60.6 -55.5583,-131.09 -55.5583,-206.29 0,-142.36 72.4373,-267.95 182.5433,-341.53 -67.262,2.13 -130.535,20.59 -185.8519,51.32 -0.0391,-1.71 -0.0391,-3.42 -0.0391,-5.16 0,-198.803 141.441,-364.635 329.145,-402.342 -34.426,-9.375 -70.676,-14.395 -108.098,-14.395 -26.441,0 -52.145,2.578 -77.203,7.364 C 276.391,476.219 427.926,357.578 607.48,354.281 467.051,244.219 290.129,178.621 97.8828,178.621 64.7617,178.621 32.0977,180.57 0,184.359 181.586,67.9414 397.27,0 628.988,0 1383.72,0 1796.45,625.238 1796.45,1167.47 c 0,17.79 -0.41,35.48 -1.2,53.08 80.18,57.86 149.74,130.12 204.75,212.41" /> diff --git a/source/about.html.haml b/source/about.html.haml index c1125e13..a8cac871 100644 --- a/source/about.html.haml +++ b/source/about.html.haml @@ -1,44 +1,160 @@ --- -title: Flatpak - the future of application distribution +title: Flatpak—the future of application distribution description: About Flatpak --- %section#about .container .row - .col-lg-10.col-lg-offset-1 - %h1.section-heading.text-center About + .col-lg-8.col-lg-offset-2 + %h1.section-heading.text-center About Us %hr.primary %p - Flatpak might be a new technology, but it's not a new idea. It grew out of the experience of long-standing Linux desktop engineers, and has been in the planning for years. + Flatpak is developed by an independent community, made up of contributors, volunteers and supporting organizations. It is a true upstream open source project, dedicated to providing technology and services that can be used by all, with no vendor lock-in. We have strong links to other Free Software projects, including the Freedesktop project. %p - Flatpak is developed by an independent community, made up of contributors, volunteers and supporting organizations. Its lead developer is Alex Larsson, Principal Engineer at Red Hat. Alex has been working on critical open source projects for almost 20 years and is an expert in containerization and Linux subsystems. - %p - All our code is freely available, with no contributor agreement required. We have strong links with other Free Software projects, including the Freedesktop project. If you are a member of a Free Software project, we'd love to have you involved. - .row.largegap - .col-lg-10.col-lg-offset-1 - %h3 Get involved - %p - Flatpak's goals are ambitious and there are many opportunities to help - new contributors and participating organizations are extremely welcome, and we encourage you to get in touch. - .col-lg-12.text-center + All our code is freely available, with no contributor agreement required. Volunteers and contributing organizations are welcome, as equal partners. + .row + .col-lg-8.col-lg-offset-2 + %h1.section-heading.text-center Contact + %hr.primary .row .col-lg-2.col-xs-4.col-lg-offset-4 .right.toneddown Mailing list .col-lg-4.col-xs-8 - =link_to "flatpak@lists.freedesktop.org", "http://lists.freedesktop.org/mailman/listinfo/flatpak" + =link_to "flatpak at lists.freedesktop.org", "https://lists.freedesktop.org/mailman/listinfo/flatpak" + .row + .col-lg-4.col-xs-2.col-lg-offset-2 + .right.toneddown Private mailing list for security issues + .col-lg-4.col-xs-8 + =link_to "flatpak-security at lists.freedesktop.org", "https://lists.freedesktop.org/mailman/listinfo/flatpak-security" .row .col-lg-2.col-xs-4.col-lg-offset-4 - .right.toneddown IRC + .right.toneddown Matrix .col-lg-4.col-xs-8 - =link_to "#flatpak on Freenode", "irc://freenode.net:6697/flatpak" + =link_to "#flatpak on Matrix.org", "https://matrix.to/#/#flatpak:matrix.org" .row .col-lg-2.col-xs-4.col-lg-offset-4 - .right.toneddown Github project + .right.toneddown GitHub .col-lg-4.col-xs-8 - =link_to "github.com/flatpak/flatpak", "https://github.com/flatpak/flatpak" + =link_to "github.com/flatpak", "https://github.com/flatpak" .row.largegap - .col-lg-10.col-lg-offset-1 + .col-lg-8.col-lg-offset-2 %p Issues with this website can be reported through its = succeed "." do - =link_to "Github project", "https://github.com/flatpak/flatpak.github.io/issues"# + =link_to "GitHub project", "https://github.com/flatpak/flatpak.github.io/issues"# + .row.largegap + .col-lg-8.col-lg-offset-2 + %h1.section-heading.text-center Flatpak History + %hr.primary + .timeline.mediumgap + .date August 2007 + .description + Alexander Larsson releases Glick, his first app bundling framework + .date November 2011 + .description + Glick 2 is released, a modernized version of the first Glick framework + .date July 2012 + .decription + “GNOME OS” session held at GUADEC, includes initial planning for a new app bundling format + .date September 2012 + .description + Alexander Larsson releases experimental “bundler” framework + .date January 2013 + .description + “Linux Apps” proposal discussed at the GNOME Developer Experience hackfest, Brussels + .date December 2014 + .description + Work begins on xdg-app, which later becomes Flatpak + .date March 2015 + .descripton + xdg-app 0.1 released, the very first version of Flatpak + .date December 2015 + .description + GNOME's “Software” gains the ability to install xdg-app applications + .date May 2016 + .description + xdg-app renamed to Flatpak, 0.6.0 released; + = succeed " included endorsements by Red Hat, Endless Computers and Collabora" do + =link_to "accompanying press release", "https://flatpak.org/press/2016-06-21-flatpak-released.html" + .date June 2016 + .description + Work on desktop portals security framework begins + .date June 2016 + .description + LibreOffice is the first major application to adopt Flatpak for publishing on Linux + .date July 2016 + .description + GTK+ 3.21.4 released with initial support for the portals framework + .date August 2016 + .description + Endless OS 3.0 released, the first publicly available OS to use Flatpak by default. Adoption of Flatpak by Apertis IVI also becomes public knowledge. + .date November 2016 + .description + ClearLinux announces their adoption of Flatpak + .date December 2016 + .description + Flatpak 0.8.0 released, the start of the first stable series with long-term support + .date May 2017 + .description + Initial soft launch of Flathub hosting service + .date May 2017 + .description + KDE Plasma 5.10 released with initial support for portals + .date October 2017 + .description + Flatpak 0.10.0 released, marking the start of the second supported stable release series + .date October 2017 + .description + KDE Plasma 5.11 released, “Discover” gains the ability to install Flatpak apps + .date October 2017 + .description + GIMP adopts Flatpak to publish on Linux + .date November 2017 + .description + Linux Mint 18.3 released, includes out of the box Flatpak integration + .date August 2018 + .description + Flatpak 1.0 released, the first release in a new stable series, with major new features; Flathub beta period ends; Freedesktop runtime 18.08 released with new support period policy + .date September 2018 + .description + KDE introduces the KDE Testing Applications Flatpak repository; + =link_to "commit", "https://invent.kde.org/packaging/flatpak-kde-applications/-/commit/2d759a0d601942c3cf3a1d6a562942da543f7f83" + .date December 2019 + .description + elementary OS 5.1 Hera released, includes out of the box Flatpak integration + .date April 2020 + .description + Mozilla adopts Flatpak to publish Firefox on Linux + .date April 2020 + .description + System76 releases Pop!_OS 20.04, includes out of the box Flatpak integration + .date October 2021 + .description + 1Password adopts Flatpak to publish on Linux + .date Febuary 2022 + .description + Valve releases the Steam Deck; a handheld video game console with out of the box Flatpak and Flathub integration + .date Febuary 2022 + .description + OBS Studio adopts Flatpak to publish on Linux + .date May 2022 + .description + Red Hat Enterprise Linux Workstation 9 released, includes out of the box Flatpak integration + .date October 2022 + .description + Flathub introduces verified status; + =link_to "commit", "https://github.com/flathub/website/commit/5aae6b759b15ae26c155a0c8c18f13ca0da29ee3" + .date April 2023 + .description + Purism introduces Flatpak and the PureOS Flatpak repository; + =link_to "announcement", "https://puri.sm/posts/introducing-flatpaks-on-pureos/" + .date April 2023 + .description + Valve adopts portals for the popular Steam application + .date May 2023 + .description + Flathub offers more than 2000 apps and celebrates 1B total downloads + .date October 2023 + .description + Discord adopts Flatpak to publish on Linux diff --git a/source/blog-posts.html.haml.markdown b/source/blog-posts.html.haml.markdown new file mode 100644 index 00000000..3d8b5fcd --- /dev/null +++ b/source/blog-posts.html.haml.markdown @@ -0,0 +1,216 @@ +--- +title: Blog Posts +description: Blog posts about Flatpak +--- +
+:markdown + + # Blog Posts + +
    + + If you know of a blog post that isn't listed, please [file an issue](https://github.com/flatpak/flatpak.github.io/issues/new) so we can add it! + + ## 2024 + + [**Cassidy James Blaede: 2 Billion Downloads & Other Milestones from 2024 So Far**](https://docs.flathub.org/blog/2-billion-downloads-2024/) + August 2024 + + ## 2022 + + [**Hubert Figuière: RTKit, portals, and Pipewire**](https://www.figuiere.net/hub/wlog/rtkit-portal-pipewire/) + August 2022 + + [**Will Thompson: How many Flathub apps reuse other package formats?**](https://blogs.gnome.org/wjjt/2022/06/14/how-many-flathub-apps-reuse-other-package-formats/) + June 2022 + + [**Jakub Steiner: Flatpak Brand Refresh**](https://blog.jimmac.eu/2022/flatpak-refresh/) + June 2022 + + [**Martín Abente Lahaye: Flatseal 1.8.0**](https://blogs.gnome.org/tchx84/2022/05/31/flatseal-1-8-0/) + May 2022 + + [**Will Thompson: Evince, Flatpak, and GTK print previews**](https://blogs.gnome.org/wjjt/2022/05/30/evince-flatpak-and-gtk-print-previews/) + May 2022 + + [**TheEvilSkeleton: Response to "Flatpak Is Not the Future"**](https://theevilskeleton.gitlab.io/2022/05/16/response-to-flatpak-is-not-the-future.html) + May 2022 + + [**Jan Grulich: How to use Libportal/libportal-qt**](https://jgrulich.cz/2022/02/10/how-to-use-libportal-libportal-qt/) + February 2022 + + ## 2021 + + [**Phaedrus Leeds: A Quick PSA on Writing Portal-friendly Application Code**](https://blogs.gnome.org/mwleeds/2021/12/03/a-quick-psa-on-writing-portal-friendly-application-code/) + December 2021 + + [**Will Thompson: On Flatpak disk usage and deduplication**](https://blogs.gnome.org/wjjt/2021/11/24/on-flatpak-disk-usage-and-deduplication/) + November 2021 + + [**Martín Abente Lahaye: Flatseal 1.7.5**](https://blogs.gnome.org/tchx84/2021/11/20/flatseal-1-7-5/) + November 2021 + + [**Peter Hutterer: Flatpak portals - how do they work?**](https://who-t.blogspot.com/2021/08/flatpak-portals-how-do-they-work.html) + September 2021 + + [**Lionir Deadman: Flathub, runtimes and stats**](https://thelion.website/flathub-runtimes-and-stats/) + June 2021 + + [**Martín Abente Lahaye: Flatseal 1.7.0**](https://blogs.gnome.org/tchx84/2021/04/23/flatseal-1-7-0/) + April 2021 + + [**TheEvilSkeleton: Response to flatkill.org**](https://theevilskeleton.gitlab.io/2021/02/11/response-to-flatkill-org.html) + February 2021 + + [**Phaedrus Leeds: Cleaning Up Unused Flatpak Runtimes**](https://blogs.gnome.org/mwleeds/2021/01/11/cleaning-up-unused-flatpak-runtimes/) + January 2021 + + ## 2020 + + [**Alexander Larsson: Scaling Flathub 100x**](https://blogs.gnome.org/alexl/2020/11/20/scaling-flathub/) + November 2020 + + [**Alexander Larsson: Compatibility in a sandboxed world**](https://blogs.gnome.org/alexl/2020/08/11/compatibility-in-a-sandboxed-world/) + August 2020 + + [**Martín Abente Lahaye: Flatseal 1.6.0**](https://blogs.gnome.org/tchx84/2020/06/26/flatseal-1-6-0-and-beyond/) + June 2020 + + [**Hubert Figuière: Getting a stack trace with debug symbols out of a flatpak**](https://www.figuiere.net/technotes/notes/tn001/) + June 2020 + + [**Alexander Larsson: Putting container updates on a diet**](https://blogs.gnome.org/alexl/2020/05/13/putting-container-updates-on-a-diet/) + May 2020 + + ## 2019 + + [**Matthias Clasen: More on Flatpak Updates**](https://blogs.gnome.org/mclasen/2019/12/19/9100/) + December 2019 + + [**TingPing: Hardening Flatpak Permissions Over Time**](https://blog.tingping.se/2019/10/06/hardening-flatpak-permissions.html) + October 2019 + + [**Matthias Clasen: Some Flatpak Updates**](https://blogs.gnome.org/mclasen/2019/10/03/some-flatpak-updates/) + October 2019 + + [**Robert McQueen: Flathub, brought to you by...**](https://ramcq.net/2019/08/12/flathub-brought-to-you-by/) + August 2019 + + [**Matthias Clasen: Settings, in a Sandbox World**](https://blogs.gnome.org/mclasen/2019/07/12/settings-in-a-sandbox-world/) + July 2019 + + [**Christian Hergert: Flatpaking Terminals**](https://blogs.gnome.org/chergert/2019/04/25/flatpaking-terminals/) + April 2019 + + [**Alexander Larsson: Introducing flat-manager**](https://blogs.gnome.org/alexl/2019/03/19/introducing-flat-manager/) + March 2019 + + [**Alexander Larsson: Changes in Flathub land**](https://blogs.gnome.org/alexl/2019/02/19/changes-in-flathub-land/) + February 2019 + + [**Matthias Clasen: What's New in Flatpak 1.2**](https://blogs.gnome.org/mclasen/2019/01/28/whats-new-in-flatpak-1-2/) + January 2019 + + ## 2018 + + [**Matthias Clasen: Flatpak Commandline Design**](https://blogs.gnome.org/mclasen/2018/12/19/flatpak-commandline-design/) + December 2018 + + [**Matthias Clasen: An Update on Flatpak Updates**](https://blogs.gnome.org/mclasen/2018/11/26/an-update-on-flatpak-updates/) + November 2018 + + [**Robert McQueen: Flatpak, sandboxes and security**](https://ramcq.net/2018/10/15/flatpak-sandbox-security/) + October 2018 + + [**Alexander Larsson: Moving away from the 1.6 freedesktop runtime**](https://blogs.gnome.org/alexl/2018/10/11/moving-away-from-the-1-6-freedesktop-runtime/) + October 2018 + + [**Matthias Clasen: Flatpak, After 1.0**](https://blogs.gnome.org/mclasen/2018/10/08/flatpak-after-1-0/) + October 2018 + + [**Alexander Larsson: Flatpak on windows**](https://blogs.gnome.org/alexl/2018/09/17/flatpak-on-windows/) + September 2018 + + [**Matthias Clasen: On Flatpak Dependencies**](https://blogs.gnome.org/mclasen/2018/09/07/on-flatpak-dependencies/) + September 2018 + + [**Matthias Clasen: About Flatpak Installations**](https://blogs.gnome.org/mclasen/2018/08/26/about-flatpak-installations/) + August 2018 + + [**TingPing: Using host Nvidia driver with Flatpak**](https://blog.tingping.se/2018/08/26/flatpak-host-extensions.html) + August 2018 + + [**Alexander Larsson: Kick-starting the revolution 1.0**](https://blogs.gnome.org/alexl/2018/08/21/kick-starting-the-revolution-1-0/) + August 2018 + + [**TingPing: Easier Flatpak manifest editing with VSCode**](https://blog.tingping.se/2018/08/19/flatpak-schema.html) + August 2018 + + [**Alexander Larsson: The birth of a new runtime**](https://blogs.gnome.org/alexl/2018/08/10/the-birth-of-a-new-runtime/) + August 2018 + + [**Matthias Clasen: Flatpak Portal Experiments**](https://blogs.gnome.org/mclasen/2018/08/03/flatpak-portal-experiments/) + August 2018 + + [**Matthias Clasen: Flatpak - A Look Behind the Portal**](https://blogs.gnome.org/mclasen/2018/07/19/flatpak-a-look-behind-the-portal/) + July 2018 + + [**Matthias Clasen: The Flatpak BoF at GUADEC**](https://blogs.gnome.org/mclasen/2018/07/14/the-flatpak-bof-at-guadec/) + July 2018 + + [**Matthias Clasen: Flatpak, Making Contribution Easy**](https://blogs.gnome.org/mclasen/2018/07/07/flatpak-making-contribution-easy/) + July 2018 + + [**Matthias Clasen: Flatpak in Detail, Part 3**](https://blogs.gnome.org/mclasen/2018/07/02/flatpak-in-detail-part-3/) + July 2018 + + [**Alexander Larsson: Flatpak - a history**](https://blogs.gnome.org/alexl/2018/06/20/flatpak-a-history/) + June 2018 + + [**Matthias Clasen: Flatpak in Detail, Part 2**](https://blogs.gnome.org/mclasen/2018/06/19/flatpak-in-detail-part-2/) + June 2018 + + [**Matthias Clasen: Flatpak in Detail**](https://blogs.gnome.org/mclasen/2018/06/13/flatpak-in-detail/) + June 2018 + + [**Alexander Larsson: Flatpak inception**](https://blogs.gnome.org/alexl/2018/04/27/flatpak-inception/) + April 2018 + + [**TingPing: Flatpaking application plugins**](https://blog.tingping.se/2018/03/18/flatpaking-plugins.html) + March 2018 + + [**PointestStick: Flatpak support in Discover**](https://pointieststick.com/2018/01/13/flatpak-support-in-discover/) + January 2018 + + ## 2017 + + [**TingPing: Status of emulators Flatpak'd**](https://blog.tingping.se/2017/10/31/flatpaked-emulators.html) + October 2017 + + [**Alexander Larsson: On application sizes and bloat in flatpak**](https://blogs.gnome.org/alexl/2017/10/02/on-application-sizes-and-bloat-in-flatpak/) + October 2017 + + [**Simon McVittie: DebConf 17: Flatpak and Debian**](http://smcv.pseudorandom.co.uk/2017/flatpak_and_debian/) + August 2017 + + [**Robert McQueen: Welcome, Flathub!**](https://ramcq.net/2017/07/29/welcome-flathub/) + July 2017 + + [**TingPing: Flatpak now supports themes**](https://blog.tingping.se/2017/05/11/flatpak-theming.html) + May 2017 + + [**Simon McVittie: GTK hackfest 2017: D-Bus communication with containers**](http://smcv.pseudorandom.co.uk/2017/dbus_and_containers/) + March 2017 + + [**Matthias Clasen: Debugging a Flatpak Application**](https://blogs.gnome.org/mclasen/2017/01/20/debugging-a-flatpak-application/) + January 2017 + + ## 2016 + + [**Simon McVittie: Flatpak in Debian**](http://smcv.pseudorandom.co.uk/2016/flatpak/) + June 2016 + + [**Simon McVittie: GNOME Developer Experience hackfest: xdg-app + Debian**](https://smcv.pseudorandom.co.uk/2016/xdg-app/) + January 2016 + +
    diff --git a/source/distro-template.html.haml b/source/distro-template.html.haml new file mode 100644 index 00000000..a8425d2a --- /dev/null +++ b/source/distro-template.html.haml @@ -0,0 +1,24 @@ +--- +title: Flatpak—the future of application distribution +description: #{locals[:name]} Quick Setup +--- + +%section#setup + .container + .row + .col-lg-10.col-lg-offset-1 + %h1.centered + = locals[:name] + Quick Setup + %p.centered + Follow these simple steps to start using Flatpak + + .row.largegap + .col-lg-12 + %ol.distrotut + - if locals[:introduction] + = locals[:introduction] + - Array(locals[:steps]).each_with_index do |step, i| + %li + %h2= step[:name] + %p= step[:text] \ No newline at end of file diff --git a/source/faq.html.haml.markdown b/source/faq.html.haml.markdown index 819f7600..ab7da3f3 100644 --- a/source/faq.html.haml.markdown +++ b/source/faq.html.haml.markdown @@ -42,11 +42,11 @@ description: FAQ about the Flatpak project. Yes. We are explicitly using many features of the linux kernel (bind mounts, namespaces, seccomp, etc) to create the sandbox that Flatpak apps are running in. It may be possible to use equivalent technologies on other kernels, but that would be a non-trivial - amount of work, and we don't consider this one of our priorities. + amount of work, and we don’t consider this one of our priorities. ### Is Flatpak tied to systemd? - No. Versions of flatpak before 0.6.10 relied on systemd for cgroups setup, but this is no longer required. + No. Versions of Flatpak before 0.6.10 relied on systemd for cgroups setup, but this is no longer required. ### Is Flatpak the same as xdg-app? @@ -56,28 +56,28 @@ description: FAQ about the Flatpak project. ### Is Flatpak a container technology? - It can be, but it doesn't have to be. Since a desktop application would require quite extensive changes in order to + It can be, but it doesn’t have to be. Since a desktop application would require quite extensive changes in order to be usable when run inside a container you will likely see Flatpak mostly deployed as a convenient library bundling technology early on, with the sandboxing or containerization being phased in over time for most applications. In general though we try to avoid using the term container when speaking about Flatpak as it tends to cause comparisons with Docker and rkt, comparisons which quickly stop making technical sense due to the very different problem spaces these technologies try to address. And thus we prefer using the term sandboxing. - ### How does Flatpak relate to freedesktop.org technologies such as desktop files and appstream metadata? + ### How does Flatpak relate to freedesktop.org technologies such as desktop files and AppStream metadata? - These standards are incorporated as mandatory parts in the flatpak definition. By relying on these standards + These standards are incorporated as mandatory parts in the Flatpak definition. By relying on these standards we are building on years of investment and support under Linux. ### Can Flatpak be used on servers too? - Flatpak is designed to run inside a desktop session and relies on certain session services, such as a dbus session bus - and, optionally, a systemd --user instance. This makes Flatpak not a good match for a server. + Flatpak is designed to run inside a desktop session and relies on certain session services, such as a D-Bus session bus + and, optionally, a systemd `--user` instance. This makes Flatpak not a good match for a server. However, the build features of Flatpak run fine outside a session, so you can build things on a server. ### Is Flatpak compatible with other desktop isolation frameworks? - In general unprivileged container systems can't stack, because anything running inside the sandbox does not have the necessary privileges to set up a sandbox, nor does it have the ability to raise its privileges in any way. For instance, firejail can never work inside flatpak, because it is setuid. That being said, using multiple sandboxing frameworks at once does not really make anything more secure, so there is little point in trying to nest things like that. + In general unprivileged container systems can’t stack, because anything running inside the sandbox does not have the necessary privileges to set up a sandbox, nor does it have the ability to raise its privileges in any way. For instance, Firejail can never work inside Flatpak, because it is setuid. That being said, using multiple sandboxing frameworks at once does not really make anything more secure, so there is little point in trying to nest things like that. It is certainly possible for Flatpak and Flatpak applications to coexist with applications that are packaged in other ways, on the same host system. @@ -85,13 +85,13 @@ description: FAQ about the Flatpak project. Yes! - Version 3.22.4 and newer of [GNOME Builder](https://wiki.gnome.org/Apps/Builder) includes support for `flatpak-builder` manifests. This ensures your project is built using your selected flatpak runtime and any external dependencies. Support for running your application inside flatpak is also supported. By developing your application within the exact same environment as your users you can squash those "Works for me" bugs before they reach your users! + Version 3.22.4 and newer of [Builder](https://apps.gnome.org/Builder/) includes support for `flatpak-builder` manifests. This ensures your project is built using your selected Flatpak runtime and any external dependencies. Support for running your application inside Flatpak is also supported. By developing your application within the exact same environment as your users you can squash those “Works for me” bugs before they reach your users! - ### Can I host my flatpak app on github? + ### Can I host my Flatpak app on GitHub? - Flatpak repositories can't (currently) be put on github in a convenient way. - As an alternative, you can create a single-file bundle, and put that up on github - as a 'release'. Note that bundles have some drawbacks, compared to a repository. + Flatpak repositories can’t (currently) be put on GitHub in a convenient way. + As an alternative, you can create a single-file bundle, and put that up on GitHub + as a “release.” Note that bundles have some drawbacks, compared to a repository. Another option you have is to get your app on [Flathub](https://flathub.org/) which will allow your users to get updates. diff --git a/source/favicon.ico b/source/favicon.ico index 3ac6a102..2136ca91 100644 Binary files a/source/favicon.ico and b/source/favicon.ico differ diff --git a/source/fonts/Inter.var.woff2 b/source/fonts/Inter.var.woff2 new file mode 100644 index 00000000..365eedc5 Binary files /dev/null and b/source/fonts/Inter.var.woff2 differ diff --git a/source/fonts/Overpass-Bold-Italic.ttf b/source/fonts/Overpass-Bold-Italic.ttf deleted file mode 100644 index 6c55085a..00000000 Binary files a/source/fonts/Overpass-Bold-Italic.ttf and /dev/null differ diff --git a/source/fonts/Overpass-Bold.ttf b/source/fonts/Overpass-Bold.ttf deleted file mode 100644 index 0518472f..00000000 Binary files a/source/fonts/Overpass-Bold.ttf and /dev/null differ diff --git a/source/fonts/Overpass-ExtraLight Italic.ttf b/source/fonts/Overpass-ExtraLight Italic.ttf deleted file mode 100644 index 6336b8c5..00000000 Binary files a/source/fonts/Overpass-ExtraLight Italic.ttf and /dev/null differ diff --git a/source/fonts/Overpass-ExtraLight.ttf b/source/fonts/Overpass-ExtraLight.ttf deleted file mode 100644 index 733b4100..00000000 Binary files a/source/fonts/Overpass-ExtraLight.ttf and /dev/null differ diff --git a/source/fonts/Overpass-Light-Italic.ttf b/source/fonts/Overpass-Light-Italic.ttf deleted file mode 100644 index 90faedbf..00000000 Binary files a/source/fonts/Overpass-Light-Italic.ttf and /dev/null differ diff --git a/source/fonts/Overpass-Light.ttf b/source/fonts/Overpass-Light.ttf deleted file mode 100644 index 426c35e5..00000000 Binary files a/source/fonts/Overpass-Light.ttf and /dev/null differ diff --git a/source/fonts/Overpass-Regular-Italic.ttf b/source/fonts/Overpass-Regular-Italic.ttf deleted file mode 100644 index 7bc8ad0f..00000000 Binary files a/source/fonts/Overpass-Regular-Italic.ttf and /dev/null differ diff --git a/source/fonts/Overpass-Regular.ttf b/source/fonts/Overpass-Regular.ttf deleted file mode 100644 index 49499e47..00000000 Binary files a/source/fonts/Overpass-Regular.ttf and /dev/null differ diff --git a/source/fonts/SourceCodePro-ExtraLight.otf b/source/fonts/SourceCodePro-ExtraLight.otf deleted file mode 100644 index 62aedb62..00000000 Binary files a/source/fonts/SourceCodePro-ExtraLight.otf and /dev/null differ diff --git a/source/fonts/SourceCodePro-Light.otf b/source/fonts/SourceCodePro-Light.otf deleted file mode 100644 index d196cabc..00000000 Binary files a/source/fonts/SourceCodePro-Light.otf and /dev/null differ diff --git a/source/fonts/SourceCodePro-Regular.otf b/source/fonts/SourceCodePro-Regular.otf deleted file mode 100644 index f88f9c68..00000000 Binary files a/source/fonts/SourceCodePro-Regular.otf and /dev/null differ diff --git a/source/fonts/SourceCodePro-Semibold.otf b/source/fonts/SourceCodePro-Semibold.otf deleted file mode 100644 index 764ca4ed..00000000 Binary files a/source/fonts/SourceCodePro-Semibold.otf and /dev/null differ diff --git a/source/fonts/SourceSansPro-ExtraLight.otf b/source/fonts/SourceSansPro-ExtraLight.otf deleted file mode 100644 index 43e0c69f..00000000 Binary files a/source/fonts/SourceSansPro-ExtraLight.otf and /dev/null differ diff --git a/source/fonts/SourceSansPro-Light.otf b/source/fonts/SourceSansPro-Light.otf deleted file mode 100644 index 9d8fb28c..00000000 Binary files a/source/fonts/SourceSansPro-Light.otf and /dev/null differ diff --git a/source/fonts/SourceSansPro-Regular.otf b/source/fonts/SourceSansPro-Regular.otf deleted file mode 100644 index 7b6fa55f..00000000 Binary files a/source/fonts/SourceSansPro-Regular.otf and /dev/null differ diff --git a/source/fonts/SourceSansPro-Semibold.otf b/source/fonts/SourceSansPro-Semibold.otf deleted file mode 100644 index 6b39aa45..00000000 Binary files a/source/fonts/SourceSansPro-Semibold.otf and /dev/null differ diff --git a/source/getting.html.haml.markdown b/source/getting.html.haml.markdown deleted file mode 100644 index 0f899e64..00000000 --- a/source/getting.html.haml.markdown +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Getting Flatpak -description: How to download and install Flatpak on your system to get started. ---- -
    -:markdown - # Getting Flatpak - - Flatpak is available for the most common Linux distributions. After installing it, it is necessary to log out and in again for Flatpak apps to appear in your desktop. - - Once you've installed Flatpak, you can [get some apps](apps.html) or [create your own in 5 minutes](hello-world.html). - - ### Alpine - - A `flatpak` package is available in the testing repository. - -
    -  $ sudo apk add flatpak
    -  
    - - ### Arch - - A `flatpak` package is available in the official repositories. `flatpak-git` is also available in the AUR for the latest development snapshot. - -
    -  $ sudo pacman -S flatpak
    -  
    - - For development of Flatpak applications using `flatpak-builder` these dependencies are required: - -
    -  $ sudo pacman -S --asdeps --needed elfutils patch
    -  
    - - ### Debian - - A `flatpak` package is available in [Debian Stretch](https://wiki.debian.org/DebianStretch) and newer. To install, run the following as root: - -
    -  # apt install flatpak
    -  
    - - For Debian Jessie, a `flatpak` package is available in the official [backports repository](https://backports.debian.org/Instructions/). - - ### Endless OS - - Flatpak support is built into Endless OS 3.0.0 and newer. If you are using an older version, [upgrade to Endless OS 3](https://community.endlessos.com/t/upgrade-from-endless-os-2-x-to-endless-os-3/967). - - ### Fedora - - A `flatpak` package is available for Fedora 24 and newer and is installed by default on Fedora Workstation. If you do not use Fedora Workstation, you can install Flatpak by running: - -
    -  $ sudo dnf install flatpak
    -  
    - - ### Gentoo - - An unofficial overlay is available [here](https://github.com/fosero/flatpak-overlay). - - ### Linux Mint - - Flatpak support is built into Linux Mint 18.3 and newer. - - ### Mageia - - A `flatpak` package is available for Mageia 6 and newer. To install, run the following as root: - - If using `DNF` - -
    -  # dnf install flatpak
    -  
    - - If using `urpmi` - -
    -  # urpmi flatpak
    -  
    - - ### openSUSE - - Flatpak is available as a [1-click install](https://software.opensuse.org/package/flatpak) for Leap 42.1 and 42.2 and Tumbleweed. It can also be installed on Tumbleweed using Zypper: - -
    -  $ sudo zypper install flatpak
    -  
    - - ### Solus - - Flatpak package is available for Solus too. Install it using `eopkg`. - -
    -  $ sudo eopkg install flatpak
    -  
    - - ### Ubuntu - - For Ubuntu 16.04 and newer a PPA is available. To install, run: - -
    -  $ sudo add-apt-repository ppa:alexlarsson/flatpak
    -  $ sudo apt update
    -  $ sudo apt install flatpak
    -  
    - - A `flatpak` package is available in [Ubuntu 16.10](https://wiki.ubuntu.com/YakketyYak) and newer via universe, however this is - an older version, and it's recommended that you use the one from the PPA. - - -
    diff --git a/source/img/apple-touch-icon.png b/source/img/apple-touch-icon.png new file mode 100644 index 00000000..4ce20102 Binary files /dev/null and b/source/img/apple-touch-icon.png differ diff --git a/source/img/apple-touch-icon.svg b/source/img/apple-touch-icon.svg new file mode 100644 index 00000000..b3415397 --- /dev/null +++ b/source/img/apple-touch-icon.svg @@ -0,0 +1,98 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/bluetowhite.svg b/source/img/bluetowhite.svg deleted file mode 100644 index 8e4d847f..00000000 --- a/source/img/bluetowhite.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - diff --git a/source/img/container.webp b/source/img/container.webp new file mode 100644 index 00000000..7bce53ed Binary files /dev/null and b/source/img/container.webp differ diff --git a/source/img/delivery_truck.original.png b/source/img/delivery_truck.original.png new file mode 100644 index 00000000..bf792872 Binary files /dev/null and b/source/img/delivery_truck.original.png differ diff --git a/source/img/delivery_truck.png b/source/img/delivery_truck.png new file mode 100644 index 00000000..62c6c6d0 Binary files /dev/null and b/source/img/delivery_truck.png differ diff --git a/source/img/delivery_truck2.original.png b/source/img/delivery_truck2.original.png new file mode 100644 index 00000000..ff4a3701 Binary files /dev/null and b/source/img/delivery_truck2.original.png differ diff --git a/source/img/delivery_truck2.png b/source/img/delivery_truck2.png new file mode 100644 index 00000000..86770c34 Binary files /dev/null and b/source/img/delivery_truck2.png differ diff --git a/source/img/distro/almalinux.svg b/source/img/distro/almalinux.svg new file mode 100644 index 00000000..b2e050ae --- /dev/null +++ b/source/img/distro/almalinux.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + diff --git a/source/img/distro/alpine.svg b/source/img/distro/alpine.svg new file mode 100644 index 00000000..6b43c64e --- /dev/null +++ b/source/img/distro/alpine.svg @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/source/img/distro/altlinux-dark.svg b/source/img/distro/altlinux-dark.svg new file mode 100644 index 00000000..affd52c5 --- /dev/null +++ b/source/img/distro/altlinux-dark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/altlinux.svg b/source/img/distro/altlinux.svg new file mode 100644 index 00000000..de3d97ab --- /dev/null +++ b/source/img/distro/altlinux.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/source/img/distro/arch.svg b/source/img/distro/arch.svg new file mode 100644 index 00000000..c4d13f3e --- /dev/null +++ b/source/img/distro/arch.svg @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/source/img/distro/centos.svg b/source/img/distro/centos.svg new file mode 100644 index 00000000..1a3f9f10 --- /dev/null +++ b/source/img/distro/centos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/distro/chrome-os.svg b/source/img/distro/chrome-os.svg new file mode 100644 index 00000000..9aad7bba --- /dev/null +++ b/source/img/distro/chrome-os.svg @@ -0,0 +1,838 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/crystallinux.svg b/source/img/distro/crystallinux.svg new file mode 100644 index 00000000..6f4c9263 --- /dev/null +++ b/source/img/distro/crystallinux.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/source/img/distro/debian.svg b/source/img/distro/debian.svg new file mode 100644 index 00000000..30329f47 --- /dev/null +++ b/source/img/distro/debian.svg @@ -0,0 +1,154 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/deepin.svg b/source/img/distro/deepin.svg new file mode 100644 index 00000000..9738f0e1 --- /dev/null +++ b/source/img/distro/deepin.svg @@ -0,0 +1,123 @@ + + + + + + image/svg+xml + + ISO安装器-256px + + + + + + ISO安装器-256px + Created with Sketch. + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/elementary-os-dark.svg b/source/img/distro/elementary-os-dark.svg new file mode 100644 index 00000000..f845c32d --- /dev/null +++ b/source/img/distro/elementary-os-dark.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/source/img/distro/elementary-os.svg b/source/img/distro/elementary-os.svg new file mode 100644 index 00000000..f86f1141 --- /dev/null +++ b/source/img/distro/elementary-os.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/source/img/distro/endeavouros-dark.svg b/source/img/distro/endeavouros-dark.svg new file mode 100644 index 00000000..5e6482be --- /dev/null +++ b/source/img/distro/endeavouros-dark.svg @@ -0,0 +1,96 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/endeavouros.svg b/source/img/distro/endeavouros.svg new file mode 100644 index 00000000..24c7ea25 --- /dev/null +++ b/source/img/distro/endeavouros.svg @@ -0,0 +1,96 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/endless.svg b/source/img/distro/endless.svg new file mode 100644 index 00000000..7ef91b0a --- /dev/null +++ b/source/img/distro/endless.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/source/img/distro/fedora.svg b/source/img/distro/fedora.svg new file mode 100644 index 00000000..d789e9eb --- /dev/null +++ b/source/img/distro/fedora.svg @@ -0,0 +1,53 @@ + + + + + Fedora logo (2021) + + + + + Fedora logo (2021) + + + + diff --git a/source/img/distro/gentoo.svg b/source/img/distro/gentoo.svg new file mode 100644 index 00000000..7c382cf1 --- /dev/null +++ b/source/img/distro/gentoo.svg @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/source/img/distro/guix-dark.svg b/source/img/distro/guix-dark.svg new file mode 100644 index 00000000..bf36ebcc --- /dev/null +++ b/source/img/distro/guix-dark.svg @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/guix.svg b/source/img/distro/guix.svg new file mode 100644 index 00000000..9b9e8f6f --- /dev/null +++ b/source/img/distro/guix.svg @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/kdeneon.svg b/source/img/distro/kdeneon.svg new file mode 100644 index 00000000..5068c338 --- /dev/null +++ b/source/img/distro/kdeneon.svg @@ -0,0 +1,176 @@ + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/kubuntu.svg b/source/img/distro/kubuntu.svg new file mode 100644 index 00000000..6aa4feaf --- /dev/null +++ b/source/img/distro/kubuntu.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/source/img/distro/mageia.svg b/source/img/distro/mageia.svg new file mode 100644 index 00000000..060b1c4d --- /dev/null +++ b/source/img/distro/mageia.svg @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/manjaro.svg b/source/img/distro/manjaro.svg new file mode 100644 index 00000000..e7774b7e --- /dev/null +++ b/source/img/distro/manjaro.svg @@ -0,0 +1,93 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/source/img/distro/mint.svg b/source/img/distro/mint.svg new file mode 100644 index 00000000..ed8950e5 --- /dev/null +++ b/source/img/distro/mint.svg @@ -0,0 +1,87 @@ + + + + + + + + + + + diff --git a/source/img/distro/mxlinux.svg b/source/img/distro/mxlinux.svg new file mode 100644 index 00000000..e15d9046 --- /dev/null +++ b/source/img/distro/mxlinux.svg @@ -0,0 +1,81 @@ + +image/svg+xml + + + + + + + + + + + diff --git a/source/img/distro/nixos.svg b/source/img/distro/nixos.svg new file mode 100644 index 00000000..19e3a619 --- /dev/null +++ b/source/img/distro/nixos.svg @@ -0,0 +1,518 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/openmandriva.svg b/source/img/distro/openmandriva.svg new file mode 100644 index 00000000..5992d10c --- /dev/null +++ b/source/img/distro/openmandriva.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + ruru + + + + + + + + + diff --git a/source/img/distro/opensuse.svg b/source/img/distro/opensuse.svg new file mode 100644 index 00000000..d93730a0 --- /dev/null +++ b/source/img/distro/opensuse.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/pardus.svg b/source/img/distro/pardus.svg new file mode 100644 index 00000000..5fece936 --- /dev/null +++ b/source/img/distro/pardus.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/pisi-dark.svg b/source/img/distro/pisi-dark.svg new file mode 100644 index 00000000..7555bc0d --- /dev/null +++ b/source/img/distro/pisi-dark.svg @@ -0,0 +1,306 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/pisi.svg b/source/img/distro/pisi.svg new file mode 100644 index 00000000..05dc0259 --- /dev/null +++ b/source/img/distro/pisi.svg @@ -0,0 +1,306 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/pop-os.svg b/source/img/distro/pop-os.svg new file mode 100644 index 00000000..0d06a7dd --- /dev/null +++ b/source/img/distro/pop-os.svg @@ -0,0 +1,98 @@ + + + + + + image/svg+xml + + Pop_icon + + + + + + Pop_icon + + + + + + + + + + + + diff --git a/source/img/distro/pureos-dark.svg b/source/img/distro/pureos-dark.svg new file mode 100644 index 00000000..9c3a67cf --- /dev/null +++ b/source/img/distro/pureos-dark.svg @@ -0,0 +1,52 @@ + + + + + + + image/svg+xml + + + + + + + + PureOS + + + + diff --git a/source/img/distro/pureos.svg b/source/img/distro/pureos.svg new file mode 100644 index 00000000..70cd1caf --- /dev/null +++ b/source/img/distro/pureos.svg @@ -0,0 +1,52 @@ + + + + + + + image/svg+xml + + + + + + + + PureOS + + + + diff --git a/source/img/distro/raspberry-pi-os.svg b/source/img/distro/raspberry-pi-os.svg new file mode 100644 index 00000000..ac958e5c --- /dev/null +++ b/source/img/distro/raspberry-pi-os.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/source/img/distro/redhat.svg b/source/img/distro/redhat.svg new file mode 100644 index 00000000..7e6715e6 --- /dev/null +++ b/source/img/distro/redhat.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/source/img/distro/rockylinux.svg b/source/img/distro/rockylinux.svg new file mode 100644 index 00000000..58f22104 --- /dev/null +++ b/source/img/distro/rockylinux.svg @@ -0,0 +1,3 @@ + + + diff --git a/source/img/distro/salix.svg b/source/img/distro/salix.svg new file mode 100644 index 00000000..9de77679 --- /dev/null +++ b/source/img/distro/salix.svg @@ -0,0 +1,65 @@ + + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/source/img/distro/slackware.svg b/source/img/distro/slackware.svg new file mode 100644 index 00000000..ccea5803 --- /dev/null +++ b/source/img/distro/slackware.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + S + S + S + S + + + + + + + + + \ No newline at end of file diff --git a/source/img/distro/solus.svg b/source/img/distro/solus.svg new file mode 100644 index 00000000..059974fe --- /dev/null +++ b/source/img/distro/solus.svg @@ -0,0 +1,331 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/sulinos.svg b/source/img/distro/sulinos.svg new file mode 100644 index 00000000..bcf430bd --- /dev/null +++ b/source/img/distro/sulinos.svg @@ -0,0 +1,251 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/ubuntu.svg b/source/img/distro/ubuntu.svg new file mode 100644 index 00000000..f5e18550 --- /dev/null +++ b/source/img/distro/ubuntu.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/source/img/distro/vanillaos.svg b/source/img/distro/vanillaos.svg new file mode 100644 index 00000000..b56a6dca --- /dev/null +++ b/source/img/distro/vanillaos.svg @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/void-dark.svg b/source/img/distro/void-dark.svg new file mode 100644 index 00000000..e59fbc84 --- /dev/null +++ b/source/img/distro/void-dark.svg @@ -0,0 +1,137 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/void.svg b/source/img/distro/void.svg new file mode 100644 index 00000000..734cdfec --- /dev/null +++ b/source/img/distro/void.svg @@ -0,0 +1,87 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/source/img/distro/zorin-os.svg b/source/img/distro/zorin-os.svg new file mode 100644 index 00000000..4445744f --- /dev/null +++ b/source/img/distro/zorin-os.svg @@ -0,0 +1,71 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/source/img/download.original.svg b/source/img/download.original.svg new file mode 100644 index 00000000..6f9de522 --- /dev/null +++ b/source/img/download.original.svg @@ -0,0 +1,57 @@ + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + diff --git a/source/img/download.svg b/source/img/download.svg index 6f9de522..7b03bc26 100644 --- a/source/img/download.svg +++ b/source/img/download.svg @@ -1,57 +1 @@ - - - - - - image/svg+xml - - Gnome Symbolic Icon Theme - - - - Gnome Symbolic Icon Theme - - - - - - - - - - - + \ No newline at end of file diff --git a/source/img/endless-apps.original.png b/source/img/endless-apps.original.png new file mode 100644 index 00000000..6b87d055 Binary files /dev/null and b/source/img/endless-apps.original.png differ diff --git a/source/img/endless-apps.png b/source/img/endless-apps.png index cfa27604..48f957be 100644 Binary files a/source/img/endless-apps.png and b/source/img/endless-apps.png differ diff --git a/source/img/favicon.png b/source/img/favicon.png deleted file mode 100644 index 6ed880a2..00000000 Binary files a/source/img/favicon.png and /dev/null differ diff --git a/source/img/favicon.svg b/source/img/favicon.svg new file mode 100644 index 00000000..8e8c3679 --- /dev/null +++ b/source/img/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/img/favicon.xcf.bz2 b/source/img/favicon.xcf.bz2 deleted file mode 100644 index 6e77603d..00000000 Binary files a/source/img/favicon.xcf.bz2 and /dev/null differ diff --git a/source/img/favicon152.png b/source/img/favicon152.png deleted file mode 100644 index 14f52c54..00000000 Binary files a/source/img/favicon152.png and /dev/null differ diff --git a/source/img/favicon57.png b/source/img/favicon57.png deleted file mode 100644 index 0fc73213..00000000 Binary files a/source/img/favicon57.png and /dev/null differ diff --git a/source/img/flatpak-logos.zip b/source/img/flatpak-logos.zip new file mode 100644 index 00000000..31a75b7f Binary files /dev/null and b/source/img/flatpak-logos.zip differ diff --git a/source/img/header.png b/source/img/header.png deleted file mode 100644 index e862ea55..00000000 Binary files a/source/img/header.png and /dev/null differ diff --git a/source/img/header.svgz b/source/img/header.svgz deleted file mode 100644 index 88e95bc4..00000000 Binary files a/source/img/header.svgz and /dev/null differ diff --git a/source/img/header_bottom.png b/source/img/header_bottom.png deleted file mode 100644 index 87aa0d84..00000000 Binary files a/source/img/header_bottom.png and /dev/null differ diff --git a/source/img/header_bottom.svg b/source/img/header_bottom.svg deleted file mode 100644 index f89eaea1..00000000 --- a/source/img/header_bottom.svg +++ /dev/null @@ -1,387 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/source/img/logo.svg b/source/img/logo.svg deleted file mode 100644 index bccb6964..00000000 --- a/source/img/logo.svg +++ /dev/null @@ -1,271 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FLATPAK - - diff --git a/source/img/logo.svgz b/source/img/logo.svgz new file mode 100644 index 00000000..55a22751 Binary files /dev/null and b/source/img/logo.svgz differ diff --git a/source/img/logo2.svg b/source/img/logo2.svg deleted file mode 100644 index 1d45dd5f..00000000 --- a/source/img/logo2.svg +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - FLATPAK - - diff --git a/source/img/whitetoblue.svg b/source/img/whitetoblue.svg deleted file mode 100644 index 299a7c52..00000000 --- a/source/img/whitetoblue.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - diff --git a/source/index.html.haml b/source/index.html.haml index 938dd79d..e80210b9 100644 --- a/source/index.html.haml +++ b/source/index.html.haml @@ -1,70 +1,99 @@ --- -title: Flatpak - the future of application distribution +title: Flatpak—the future of application distribution description: The days of chasing multiple Linux distributions are over. Standalone apps for Linux are here! --- -%section.bg-primary-neutral.centered +%section.imagebanner .container .row.largegap - .col-lg-12 - %h1.section-heading the best way to get apps on Linux - %p Choose from a growing collection of apps. - .row - .appgrid - - data.apps.each do |i| - - if i.icons["128"] - .icon.featured{:style => "background-image: url(#{i.icons['128']})"} - - elsif i.icons["64"] - .icon{:style => "background-image: url(#{i.icons['64']})"} - .row - .col-lg-12 - %a#flathubbtn.btn.btn-default.btn-xl.page-scroll{:href => "http://flathub.org/"} Install apps on Flathub - + .col-lg-10.col-lg-offset-1 + %h1.section-heading + The future of apps on Linux -%section#devsplash.bg-secondary +%section#appsplash.bg-secondary .container - .row.largegap.centered - .col-sm-6.col-sm-offset-3 - %h2 Publish apps on every linux distribution - %p Flatpak is distro agnostic. Developers can distribute on every Linux distribution simultaneously and with ease. .row - .col-lg-8.col-lg-offset-2 - %p - =partial "distro-grid.svg" - .row - .col-sm-8.col-sm-offset-2.centered - %a.btn.btn-default.btn-xl.page-scroll{:href => "/hello-world.html"} 5 minute tutorial - %a.btn.btn-primary.btn-xl.page-scroll{:href => "http://docs.flatpak.org/en/latest/"} Developer guide + .col-sm-6.col-sm-offset-1 + %h3 + Start using Flatpak and install from a growing collection of apps + .appgrid + - 0.upto(6) do |i| + - if data.apps[i].icons["128"] + .icon.featured{:style => "background-image: url(#{data.apps[i].icons['128']})"} + - elsif data.apps[i].icons["64"] + .icon{:style => "background-image: url(#{data.apps[i].icons['64']})"} + .col-sm-4.col-sm-offset-1.centered + %a#quicksetupbtn.btn-default.btn.btn-xl.page-scroll{:href => "/setup"} Get set up + + %p.small.mediumgap + Already set up? Head over to + = link_to "Flathub", "https://flathub.org" + to install apps. + %section.bg-primary-neutral .container + .row.centered + .col-sm-10.col-sm-offset-1 + %iframe.full{'width'=>'100%', 'src'=>'https://www.youtube.com/embed/jDVCITRWGgs', 'frameborder'=>'0', 'allowfullscreen'=>'true'} + =link_to 'Flatpak 1.0', 'https://youtu.be/jDVCITRWGgs' .row.centered .col-sm-6.col-sm-offset-3 %h2 A new world for application developers + %p Flatpak changes app distribution for the better. Advantages include: .row.largegap .col-sm-5.col-sm-offset-1 - %h4 Cross-distro - %p Create one app bundle and distribute it to the entire Linux desktop market. + %h4 Build for every distro + %p Create one app and distribute it to the entire Linux desktop market. .col-sm-5 %h4 Stable platforms - %p Runtimes provide stable sets of dependencies that can be used by applications. + %p Runtimes provide platforms of common libraries that you can depend on. .row .col-sm-5.col-sm-offset-1 %h4 Consistent environments - %p Develop and test your application in an environment that's identical to the one users have. + %p Develop and test your application in an environment that’s identical to the one users have. .col-sm-5 - %h4 Control over dependencies - %p Dependencies that aren't in a runtime can be bundled as part of an application. Versions of the dependencies that are used can be fixed and patched. + %h4 Full control over dependencies + %p Flatpak makes it easy to bundle your own libraries as part of your app. .row .col-sm-5.col-sm-offset-1 %h4 Easy build tools - %p - Flatpak's build tools are simple and easy to use, and come with a - =link_to 'full set of documentation.', 'http://docs.flatpak.org/' + %p + Flatpak’s build tools are simple and easy to use, and come with a + =link_to 'full set of documentation.', 'https://docs.flatpak.org/' .col-sm-5 %h4 Future-proof builds - %p Runtimes are forward compatible, irrespective of distribution changes. Flatpak applications run on new Linux distribution versions as they are released. + %p Flatpak apps continue to be compatible with new versions of Linux distributions. + .row + .col-sm-5.col-sm-offset-1 + %h4 Distribution made easy + %p + Make your app available to a rapidly growing audience of Flatpak users, with + =link_to 'Flathub.', 'https://flathub.org/' + .col-sm-5 + %h4 An independent project + %p Flatpak is developed by an independent community, with no lock-in to a single vendor. + .row.largegap + .col-sm-6.col-sm-offset-4 + %a.btn.btn-default.btn-xl.page-scroll{:href => "https://docs.flatpak.org/en/latest/getting-started.html"} 5 minute tutorial + %a.btn.btn-primary.btn-xl.page-scroll{:href => "https://docs.flatpak.org/en/latest/"} Developer guide + +%section#devsplash.bg-secondary + .container + .row.largegap + .col-sm-5.col-sm-offset-1 + %h3 + Flatpak can be used with a total of + = data.distro.count + distros + %p + See the + = link_to "complete list.", "/setup" + .col-sm-6 + .distrogrid + - 0.upto(4) do |i| + .icon{:style => "background-image: url(/img/distro/#{data.distro[i].logo})"} %section.bg-primary .container @@ -77,14 +106,14 @@ description: The days of chasing multiple Linux distributions are over. Standalo %p Bringing Flatpak technology into Debian enables us to run applications in a predictable environment with their most suitable library stack, without compromising the base OS's stability and flexibility. .author - %em Simon McVittie + %em Simon McVittie .title Senior Software Engineer, Collabora .col-sm-5 %blockquote %p At Endless, we’re proud to be a part of this movement and have fully embraced Flatpak by readily converting all of our applications for our upcoming release and continuing to build new Flatpak apps. .author - %em Jonathan Blandford + %em Jonathan Blandford .title VP of Software Engineering, Endless .row .col-sm-5.col-sm-offset-1 @@ -97,7 +126,7 @@ description: The days of chasing multiple Linux distributions are over. Standalo .col-sm-5 %blockquote %p - Flatpak will enable us (as a Linux ISV) to distribute a better LibreOffice, with up-to-date dependencies and a platform that can run on many systems. I'm excited to see that happen. + Flatpak will enable us (as a Linux ISV) to distribute a better LibreOffice, with up-to-date dependencies and a platform that can run on many systems. I’m excited to see that happen. .author %em Michael Meeks .title Director, The Document Foundation diff --git a/source/javascripts/command.js b/source/javascripts/command.js new file mode 100644 index 00000000..45ebfce6 --- /dev/null +++ b/source/javascripts/command.js @@ -0,0 +1,39 @@ +// A web component to display a terminal command with a copy button. + +// Icons are from https://github.com/lucide-icons/lucide +const copyIcon = ``; +const checkIcon = ``; + +// Define custom element, so we can do apt install flatpak +class TerminalCommand extends HTMLElement { + constructor() { + super(); + } + connectedCallback() { + const commands = this.textContent + .trim() + .split(/\n|\\n/) + .map((command) => command.trim()) + .filter(Boolean); + + this.innerHTML = ""; + + const code = document.createElement("code"); + code.innerHTML = commands + .map((command) => `$ ${command}`) + .join("\n"); + this.appendChild(code); + + const button = document.createElement("button"); + button.title = "Copy the command to clipboard"; + button.innerHTML = copyIcon; + button.addEventListener("click", () => { + navigator.clipboard.writeText(commands.join("\n")); + button.innerHTML = checkIcon; + setTimeout(() => (button.innerHTML = copyIcon), 1000); + }); + this.appendChild(button); + } +} + +customElements.define("terminal-command", TerminalCommand); diff --git a/source/layouts/layout.haml b/source/layouts/layout.haml index 5c0ec3bc..ded26598 100644 --- a/source/layouts/layout.haml +++ b/source/layouts/layout.haml @@ -1,16 +1,17 @@ !!!5 %html %head - %title + %title =current_page.data.title %meta{content: "text/html; charset=UTF8", "http-equiv" => "content-type"}/ %meta{content: "#{current_page.data.description}", name: "description"}/ %meta{content: "bundle,application,runtime,flatpak,xdg-app", name: "keywords"}/ - %meta{content: "width=device-width,initial-scale=1", name: "viewport" }/ - %link{rel:"icon", "type" => "image/png", href:"img/favicon.png"}/ + %meta{content: "width=device-width,initial-scale=1", name: "viewport" }/ + %meta{content: "Flatpak", property: "og:site_name"}/ + %meta{content: current_page.data.title, property: "og:title"}/ + %meta{content: image_path('/img/favicon.svg'), property: "og:image"}/ + %meta{content: "website", property: "og:type"}/ %link{rel:"shortcut icon", "type" => "image/x-icon", href:"/favicon.ico"}/ - %link{rel:"apple-touch-icon", "sizes" => "57x57", href:"img/favicon57.png"}/ - %link{rel:"apple-touch-icon", "sizes" => "152x152", href:"img/favicon152.png"}/ = stylesheet_link_tag :fonts = stylesheet_link_tag :site = stylesheet_link_tag :animate @@ -21,7 +22,8 @@ = javascript_include_tag "jquery.toc.min" = javascript_include_tag :bootstrap = javascript_include_tag :all - = google_analytics_universal_tag + = javascript_include_tag :command, defer: true + = matomo %body#page-top %nav#mainNav.navbar.navbar-default.navbar-fixed-top diff --git a/source/presentations.html.haml.markdown b/source/presentations.html.haml.markdown new file mode 100644 index 00000000..4eba26c9 --- /dev/null +++ b/source/presentations.html.haml.markdown @@ -0,0 +1,142 @@ +--- +title: Presentations & Articles +description: Presentations and articles about Flatpak +--- +
    +:markdown + + # Presentations & Articles + +
      + + If you know of a presentation or article that isn't listed, please [file an issue](https://github.com/flatpak/flatpak.github.io/issues/new) so we can add it! + + ## 2021 + + [**Will Thompson: Automate your Flatpak manifest updates today**](https://www.youtube.com/watch?v=c_dG_ngnJk4) + Linux App Summit, May 2021 + + [**Jan Beran: Making flatpaks from Fedora RPMs**](https://www.youtube.com/watch?v=IuxHidCdbPo) + Linux App Summit, May 2021 + + [**Valentin David: Freedesktop SDK on RISC-V**](https://www.youtube.com/watch?v=INTbqkck258) + Linux App Summit, May 2021 + + ## 2020 + + [**Alexander Larsson: Flatpak, an introduction (Lightning Talk)**](https://www.youtube.com/watch?v=0yeXTounX3E) + Linux App Summit, November 2020 + + [**Bartłomiej Piotrowski: Flathub: The State of the Union**](https://www.youtube.com/watch?v=IqHEx-Lug8k) + Linux App Summit, November 2020 + + [**Felipe Borges: Application sandboxing with Flatpak Portals**](https://www.youtube.com/watch?v=3rCIEzfZw1I) + DevConf.CZ, Brno, Czechia, January 2020 + + ## 2019 + + [**Robert McQueen: Building an app store with Flathub**](https://www.youtube.com/watch?v=ZGAfYP3OiAI) + Linux App Summit, Barcelone, Spain, November 2019 + + [**Alexander Larsson: Maintaining a Flatpak Repository**](https://www.youtube.com/watch?v=q-_fKWby0ds&list=PLkmRdYgttscEuv9v2-H9P5FBj8-td_Nri&index=24) + GUADEC, Thessaloniki, Greece, August 2019 + + [**Valentin David, Adam Jones: Freedesktop-sdk Status Update and Future Plans**](https://www.youtube.com/watch?v=ky-inEefWpE&list=PLkmRdYgttscEuv9v2-H9P5FBj8-td_Nri&index=20) + GUADEC, Thessaloniki, Greece, August 2019 + + [**Richard Brown: Help, I'm Falling in Love with Flatpak**](https://www.youtube.com/watch?v=7p4y9Meyy0M&list=PLkmRdYgttscEuv9v2-H9P5FBj8-td_Nri&index=12) + GUADEC, Thessaloniki, Greece, August 2019 + + [**Matthias Clasen: Portals - Principles and Practice**](https://www.youtube.com/watch?v=bIzJyp8sb70&list=PLkmRdYgttscEuv9v2-H9P5FBj8-td_Nri&index=9) + GUADEC, Thessaloniki, Greece, August 2019 + + [**Owen Taylor: Flatpaks in Fedora - an update**](https://www.youtube.com/watch?v=mpCXK6PqvDk) + DevConf.CZ, Brno, Czechia, January 2019 + + [**Jiří Janoušek: Fight Linux fragmentation with Flatpak**](https://www.youtube.com/watch?v=_ZmgdnhvjvM) + DevConf.CZ, Brno, Czechia, January 2019 + + [**Felipe Borges: Running virtual machines in the Flatpak sandbox**](https://www.youtube.com/watch?v=EdrSJMKikUM) + DevConf.CZ, Brno, Czechia, January 2019 + + [**Kukuh Syafaat: LibreOffice Flatpak, Snap and AppImage**](https://wiki.documentfoundation.org/File:AsiaCon2019_Kukuh_Syafaat.pdf) + LibreOffice Asia Conference 2019, Tokyo, Japan, May 2019 + + ## 2018 + + [**Jiří Janoušek: Why and How I Switched to Flatpak**](https://www.youtube.com/watch?v=OuySHov0gdA) + LinuxDays, Prague, Czechia, October 2018 + + [**Alexander Larsson: Flatpak - a technical walk-through**](https://people.gnome.org/~alexl/presentations/all-systems-go-2018.pdf) + All Systems Go! Berlin, Germany, September 2018 + + [**Robert McQueen & Jorge García: Flathub, app store and build service for flatpak apps**](https://www.youtube.com/watch?v=Hga20qlyknw) + GUADEC, Almeria, Spain, July 2018 + + [**Adam Jones & Valentin David: Freedesktop SDK: the future of Linux runtimes**](https://www.youtube.com/watch?v=rhEzTQg_LEk) + GUADEC, Almeria, Spain, July 2018 + + [**Matthew Leeds: P2P Distribution of Flatpaks and OSTrees**](https://www.youtube.com/watch?v=SIPOfPv1z1s) + GUADEC, Almeria, Spain, July 2018 + + [**Owen Taylor: A distribution approach to building Flatpaks**](https://www.youtube.com/watch?v=EbvxZa2Blgs) + DevConf.CZ, Brno, Czechia, January 2018 + + [**Robert McQueen: Desktop OS of the future: ostree + flatpak**](https://www.youtube.com/watch?v=FcykFHJEDUU) + DevConf.CZ, Brno, Czechia, January 2018 + + [**Alexander Larsson: Flatpaking your app for fame and fortune**](https://www.youtube.com/watch?v=SBWGwwrGR8M) + DevConf.CZ, Brno, Czechia, January 2018 + + [**Kukuh Syafaat: openSUSE Leap & Flatpak**](https://events.opensuse.org/conferences/summitasia18/program/proposals/2005) + openSUSE.Asia Summit 2018, Taipei, Taiwan, August 2018 + + ## 2017 + + [**Alexander Larsson: Taking back the apps from the distributions**](https://www.youtube.com/watch?v=IUA38lvb_tM) + LAS GNOME, October 2016, Portland, USA + + [**Jorge Garcia:Building a Flatpak based app store**](https://www.youtube.com/watch?v=MFue217zmyk) + GUADEC, August 2017, Manchester, UK + + [**Jan Grulich & Martin Bříza: Flatpak and KDE & the state of Qt integration in GNOME**](https://www.youtube.com/watch?v=U8zlbXYTN2U) + GUADEC, August 2017, Manchester, UK + + [**Richard Brown: Resurrecting Dinosaurs - what could possibly go wrong?**](https://www.youtube.com/watch?v=RPblTKt4Klo) + GUADEC, August 2017, Manchester, UK + + [**Simon McVittie: Flatpak and Debian**](https://www.collabora.com/news-and-blog/blog/2017/08/17/debconf-17-flatpak-and-debian/) + Debconf, August 2017, Montreal, Canada + + [**Linux Magazine: Flatpak and snap**](http://www.linux-magazine.com/Online/Features/Universal-Package-Formats-and-How-They-Differ) + June 2017 + + [**Mario Sanchez Prada & Richard Hughes: The future of linux application distribution**](https://speakerdeck.com/mariospr/the-future-of-linux-application-distribution-ostree-flatpak-and-gnome-software) + March 2017, Samsung Research, Staines, UK + + [**Alexander Larsson: Flatpak: Apps on the linux desktops**](https://www.youtube.com/watch?v=xIjxNtIwcBA) + foss-north 2017, Gothenburg, Sweden + + [**Matthias Clasen: Flatpak – A new way to distribute applications**](https://mclasen.fedorapeople.org/devconf-flatpak.pdf) + January 2017, devconf.cz, Brno, Czech Republic + + [**Kukuh Syafaat: Flatpak & AppImage Usage on openSUSE. Which One Suitable for openSUSE Users?**](https://events.opensuse.org/conferences/summitasia17/program/proposals/1502) + openSUSE.Asia Summit 2017, October 2017, Chofu, Tokyo, Japan + + ## 2016 + + [**Alexander Larsson: Flatpak status update and future plans**](https://www.youtube.com/watch?v=G1OFcNQ5Fw8) + GUADEC, August 2016, Karlsruhe, Germany + + [**Fedora Magazine: Explore Flatpak in Fedora 24**](https://fedoramagazine.org/explore-flatpak-fedora-24/) + June 2016 + + [**Jens Petersen: Generic standalone linux app packages**](https://www.slideshare.net/JensPetersen2/flatpak-introdiction) + FUDCon APAC 2016, Phnom Penh, Cambodia + + ## 2015 + + [**Christian Hergert: Flatpak, the easiest, fastest, and safest software distribution platform**](https://www.socallinuxexpo.org/scale/15x/presentations/flatpak-easiest-fastest-and-safest-software-distribution-platform) + SCALE 2015, Pasadena, USA + +
      diff --git a/source/press.html.haml b/source/press.html.haml new file mode 100644 index 00000000..47bcf601 --- /dev/null +++ b/source/press.html.haml @@ -0,0 +1,37 @@ +--- +title: Flatpak—the future of application distribution +description: Press +--- + +%section#about + .container + .row + .col-lg-8.col-lg-offset-2 + %h1.section-heading.text-center Press Information + %hr.primary + %p + We are very happy to answer questions from journalists and tech writers. Interview opportunities can also be arranged. + .row + .col-lg-8.col-lg-offset-2 + %h3 Press releases + .timeline.mediumgap + .date 20 August 2018 + .description + =link_to "Flatpak 1.0 released, Ready for Prime Time", "press/2018-08-20-flatpak-1.0.html" + .date 21 June 2016 + .description + =link_to "Announcing Flatpak – Next Generation Linux Applications", "press/2016-06-21-flatpak-released.html" + .row.largegap + .col-lg-8.col-lg-offset-2 + %h3 Graphics and Logo + %p + The Flatpak logo is licensed Creative Commons Attribution 3.0 and can be + = succeed "." do + =link_to "downloaded here", "/img/flatpak-logos.zip" + .row + .col-lg-8.col-lg-offset-2 + %h3 Contact + %p + Press queries, including requests for comments and interviews can be directed to + = succeed "." do + =link_to "press@flatpak.org", "mailto:press@flatpak.org" diff --git a/source/press/2016-06-21-flatpak-released.html.haml.markdown b/source/press/2016-06-21-flatpak-released.html.haml.markdown index 06b59ca9..e4730d32 100644 --- a/source/press/2016-06-21-flatpak-released.html.haml.markdown +++ b/source/press/2016-06-21-flatpak-released.html.haml.markdown @@ -10,7 +10,7 @@ description: Announcing Flatpak – Next Generation Linux Applications ## Build once, run anywhere - + The Linux desktop has long been held back by platform fragmentation. This has been a burden on developers, and creates a high barrier to entry for third party application developers. Flatpak aims to change all that. From the very start its primary goal has been to allow the same application to run across a myriad of Linux distributions and operating systems. In doing so, it greatly increases the number of users that application developers can easily reach. diff --git a/source/press/2018-08-20-flatpak-1.0.html.haml.markdown b/source/press/2018-08-20-flatpak-1.0.html.haml.markdown new file mode 100644 index 00000000..9a24cefe --- /dev/null +++ b/source/press/2018-08-20-flatpak-1.0.html.haml.markdown @@ -0,0 +1,34 @@ +--- +title: Flatpak 1.0 +description: Flatpak 1.0 Released, Ready for Prime Time +--- +
      +:markdown + # Flatpak 1.0 Released, Ready for Prime Time + + + + **Stockholm, Sweden, 20 August 2018**: Flatpak, the Linux desktop app distribution framework, reached an important milestone today, with the release of its 1.0 version. + + For those who don't know, once an app has been built as a Flatpak, it can be installed on virtually any Linux distribution. This model is designed to make Linux a more attractive option for desktop app developers, and provides developers with a more stable platform on which to build and develop. + + Discussing the release, Flatpak’s lead developer, Alexander Larsson, has said: “A lot of work has gone into Flatpak 1.0 and we're confident that it's ready for wider use. Flatpak's goal has always been to revolutionize the Linux ecosystem and this is an important step towards that.” A 1.0 release generally marks the point at which software has become “feature complete”, so the fact that the developers are calling this a 1.0 is significant. But what does it mean in practice? + + Flatpak 1.0 comes with a collection of new features that application developers can take advantage of. Developers can mark versions of their apps as end of life, to indicate when they are no longer supported. There’s a new mechanism for apps to restart themselves. The command line interface has had a raft of improvements, including new commands and options. + + Furthermore, Flatpak has matured since its last major stable release in October 2017. The new version promises to be faster and more reliable. There's also been some internal tidying up and reorganization. (This isn't so interesting to users and app developers, but it makes Flatpak that bit easier to integrate with your favorite Linux distro.) + + However, some of the biggest changes have been in the Flatpak ecosystem. To coincide with the release of Flatpak 1.0, the Flatpak developers are also taking the beta label off their Flathub service. Flathub is the central store for Flatpak apps. It is both a repository that can be used by Linux desktops, and a [website that users can use to browse and install apps](https://flathub.org/). It had a quiet, soft launch back in May 2017 and has seen rapid growth in the number of apps and users since then. + + Flathub has become a major feature for developers, as LibreOffice’s Stephan Bergmann made clear: “Flatpak has come a long way since we first started using it; nowadays we can type a trivial command to get the latest LibreOffice 6.1 built and published on Flathub automatically. What keeps impressing me is the breadth and depth of the bug reports we receive for the LibreOffice Flatpak version. It shows that people are using it in all kinds of scenarios.” + + Another significant development in the Flatpak ecosystem relates to their “runtimes” - the platforms that applications are built and run against. The main “Freedesktop” runtime that is used by most Flatpak apps is having a major release to coincide with the Flatpak 1.0. This 18.08 release has a new lifecycle policy, which includes a regular release schedule and guarantees for support periods and security updates. This gives Flatpak’s app platforms a similar level of support to commercial operating system offerings. + + Flatpak's developers also point to other areas where the framework has matured. Their [developer documentation](https://docs.flatpak.org/en/latest/) has been rewritten and is much more complete. Flatpak’s website also includes [tutorials for setting up Flatpak on a lot more Linux distributions](https://flatpak.org/setup/) . + + The big question is what this means for the Linux landscape. Last November, Linux Mint, one of the larger Linux distributions, started using Flatpak by default, and Fedora is planning to start building its own Flatpaks very soon. It might just be that a tipping point has been reached. + + *This press release, including all content and media, can be freely used and modified without the need for attribution.* + +
      + diff --git a/source/setup.html.haml b/source/setup.html.haml new file mode 100644 index 00000000..d249d4d4 --- /dev/null +++ b/source/setup.html.haml @@ -0,0 +1,20 @@ +--- +title: Flatpak—the future of application distribution +description: Quick Setup +--- + +%section#setup + .container + .row + .col-lg-10.col-lg-offset-1 + %h1.centered Quick Setup + %p.centered + Select your distro to get set up. + + .row + .distrogrid.col-lg-8.col-lg-offset-2 + - data.distro.each do |i| + %a{:href => "/setup/#{i.slug ? i.slug : i.name}"} + %picture + %source{ :srcset => "/img/distro/#{i.logo_dark ? i.logo_dark : i.logo}" , :media => "(prefers-color-scheme: dark)"} + %img{ :src => "/img/distro/#{i.logo}", :alt => "#{i.name}", :title => "#{i.name}"} diff --git a/source/stylesheets/fonts.css b/source/stylesheets/fonts.css index d470c707..294a1b6f 100644 --- a/source/stylesheets/fonts.css +++ b/source/stylesheets/fonts.css @@ -1,127 +1,21 @@ -/* Oblique */ +/* -------------------------------------------------------------------------- +[EXPERIMENTAL] Multi-axis, single variable font. -/* -@font-face { - font-family: "Overpass"; - src: local("Overpass ExtraLight Italic"), - local(Overpass-ExtraLight-Italic), - url(../fonts/Overpass-ExtraLight-Italic.ttf); - font-style: italic; - font-weight: 200; -} +Slant axis is not yet widely supported (as of February 2019) and thus this +multi-axis single variable font is opt-in rather than the default. -@font-face { - font-family: "Overpass"; - src: local("Overpass Light Italic"), - local(Overpass-Light-Italic), - url(../fonts/Overpass-Light-Italic.ttf); - font-style: italic; - font-weight: 300; -} +When using this, you will probably need to set font-variation-settings +explicitly, e.g. + * { font-variation-settings: "slnt" 0deg } + .italic { font-variation-settings: "slnt" 10deg } -@font-face { - font-family: "Overpass"; - src: local("Overpass Italic"), - local(Overpass-Italic), - local(Overpass-Regular-Italic), - url(../fonts/Overpass-Regular-Italic.ttf); - font-style: italic; - font-weight: 400; -} - -@font-face { - font-family: "Overpass"; - src: local("Overpass Bold Italic"), - local(Overpass-Bold-Italic), - local(Overpass-Bold-Italic), - url(../fonts/Overpass-Bold-Italic.ttf); - font-style: italic; - font-weight: 700; -} */ - - -/* Normal */ - -/* -@font-face { - font-family: "Overpass"; - src: local("Overpass ExtraLight"), - local(Overpass-ExtraLight), - url(../fonts/Overpass-ExtraLight.ttf); - font-style: normal; - font-weight: 200; -} - -@font-face { - font-family: "Overpass"; - src: local("Overpass Light"), - local(Overpass-Light), - url(../fonts/Overpass-Light.ttf); - font-style: normal; - font-weight: 300; -} - - -@font-face { - font-family: "Overpass"; - src: local("Overpass Regular"), - local(Overpass), - local(Overpass-Regular), - url(../fonts/Overpass-Regular.ttf); - font-style: normal; - font-weight: 400; -} - -@font-face { - font-family: "Overpass"; - src: local("Overpass Bold"), - local(Overpass-Bold), - local(Overpass-Bold), - url(../fonts/Overpass-Bold.ttf); - font-style: normal; - font-weight: 700; -} -*/ - -@font-face { - font-family: "Source Sans Pro"; - src: local("Source Sans Pro ExtraLight"), - local(SourceSansProExtraLight), - local(SourceSansPro-ExtraLight), - url(../fonts/SourceSansPro-ExtraLight.otf); - font-style: normal; - font-weight: 200; -} - -@font-face { - font-family: "Source Sans Pro"; - src: local("Source Sans Pro Light"), - local(SourceSansProLight), - local(SourceSansPro-Light), - url(../fonts/SourceSansPro-Light.otf); - font-style: normal; - font-weight: 300; -} - -@font-face { - font-family: "Source Sans Pro"; - src: local("Source Sans Pro Regular"), - local(SourceSansPro), - local(SourceSansPro-Regular), - url(../fonts/SourceSansPro-Regular.otf); - font-style: normal; - font-weight: 400; -} - @font-face { - font-family: "Source Sans Pro"; - src: local("Source Sans Pro SemiBold"), - local(SourceSansProSemiBold), - local(SourceSansPro-SemiBold), - url(../fonts/SourceSansPro-Semibold.otf); - font-style: bold; - font-weight: 600; + font-family: 'Inter'; + font-weight: 100 900; + font-display: swap; + font-style: oblique 0deg 10deg; + src: url("../fonts/Inter.var.woff2?v=3.19") format("woff2"); } diff --git a/source/stylesheets/site.css.scss b/source/stylesheets/site.css.scss index 14ca3156..65a246c7 100644 --- a/source/stylesheets/site.css.scss +++ b/source/stylesheets/site.css.scss @@ -7,10 +7,16 @@ * Code licensed under the Apache License v2.0. * For details, see http://www.apache.org/licenses/LICENSE-2.0. */ - + $key_color: #4a90d9; + $neutral_color: #919191; -$fontface: 'Source Sans Pro', 'Source Sans', sans-serif; + +$neutral_color_dark: #333; +$text_color_dark: rgba(255, 255, 255, 0.6); +$background_color_dark: #262626; + +$fontface: Inter, sans-serif; html, body { @@ -18,10 +24,61 @@ body { height: 100%; } +@media (prefers-color-scheme: dark) { + body { + background-color: $background_color_dark; + color: $text_color_dark; + } + + .navbar-default { + background-color: $background_color_dark !important; + color: $text_color_dark; + border-color: $background_color_dark !important; + } + + .navbar-default .nav > li > a, + .navbar-default .nav > li > a:focus { + color: $text_color_dark !important; + } + + .navbar-default .navbar-toggle:focus, + .navbar-default .navbar-toggle:hover { + background-color: $neutral_color_dark; + } + + .navbar-collapse { + border-color: $background_color_dark !important; + } + + pre, + code { + border-color: darken($background_color_dark, 5%); + background-color: darken($background_color_dark, 5%); + color: $text_color_dark; + } + + h3 { + color: $text_color_dark; + } + + h4 { + color: $text_color_dark; + } + + .bg-secondary { + background-color: $neutral_color_dark !important; + color: $text_color_dark; + } +} + body { - font-family: 'Source Sans Pro', 'Source Sans', sans-serif; + display: flex; + flex-direction: column; + min-height: 100vh; + font-family: $fontface; font-size: 13pt; font-weight: 400; + font-variation-settings: 'wght' 400; font-style: normal; } @@ -37,13 +94,13 @@ hr.light { a { color: $key_color; - -webkit-transition: all .35s; - -moz-transition: all .35s; - transition: all .35s; + -webkit-transition: all 0.35s; + -moz-transition: all 0.35s; + transition: all 0.35s; } -ul { - font-size: 12pt; +ul { + font-size: 12pt; &.dotless { display: block; padding: 0; @@ -57,10 +114,11 @@ ul { a:hover, a:focus { - color: lighten($key_color,5%); + color: lighten($key_color, 5%); } -a[name] { /* add some padding to named anchors for external linking */ +a[name] { + /* add some padding to named anchors for external linking */ display: block; position: relative; top: -80px; @@ -75,14 +133,32 @@ h5, h6 { font-family: $fontface; margin-top: 1.5em; - &:first-child { margin-top: 0.3em; } - &.voffset { margin-top: 3em; } + &:first-child { + margin-top: 0.3em; + } + &.voffset { + margin-top: 3em; + } } -h1 { font-size: 180%; } -h2 { font-size: 160%; } -h3 { font-size: 130%; font-weight: 800; color: $neutral_color; } -h4 { font-size: 120%; font-weight: 600; color: $neutral_color; } +h1 { + font-size: 180%; +} +h2 { + font-size: 160%; +} +h3 { + font-size: 130%; + font-weight: 600; + font-variation-settings: 'wght' 600; + color: $neutral_color; +} +h4 { + font-size: 120%; + font-weight: 600; + font-variation-settings: 'wght' 600; + color: $neutral_color; +} p { margin-bottom: 1.5em; @@ -96,18 +172,15 @@ p { display: none; } -.bg-primary-neutral { - -} - .bg-primary { background-color: $key_color; padding-bottom: 16em; - h3, h4 { - color: transparentize(#fff,0.5); + h3, + h4 { + color: transparentize(#fff, 0.5); margin-bottom: 0; } - + ul { display: block; li { @@ -116,45 +189,64 @@ p { margin-bottom: 3em; } } - - a { - color: rgba(255,255,255,0.8); + + a { + color: rgba(255, 255, 255, 0.8); font-weight: bold; - &:hover { color: #fff; } + font-variation-settings: 'wght' 600; + &:hover { + color: #fff; + } } - + .btn-primary { color: $key_color; } } .bg-secondary { - background-color: lighten($neutral_color,40%); + background-color: lighten($neutral_color, 40%); } +#appsplash { + padding: 3em 0 3em 0; +} #devsplash { - padding-top: 0; + padding: 0 0 3em 0; ul { text-align: left; } } -.bg-dark { - color: #000; - background-color: lighten($neutral_color,35%); -} - .bg-black { color: #fff; background-color: #000; } .text-faded { - color: rgba(255,255,255,.7); + color: rgba(255, 255, 255, 0.7); } section { padding: 100px 0; + flex: 1; +} + +.imagebanner { + background: url(/img/container.webp) no-repeat center bottom; + @media (prefers-color-scheme: dark) { + filter: brightness(70%); + } + background-size: cover; + color: #fff; + min-height: 50vh; + z-index: 1; + font-weight: 600; + font-variation-settings: 'wght' 600; + p { + max-width: 30em; + margin: auto; + } } aside { @@ -171,54 +263,53 @@ aside { } .navbar-default { - border-color: rgba(34,34,34,.05); + border-color: rgba(34, 34, 34, 0.05); background-color: #fff; - -webkit-transition: all .35s; - -moz-transition: all .35s; - transition: all .35s; + -webkit-transition: all 0.35s; + -moz-transition: all 0.35s; + transition: all 0.35s; } .navbar-default .navbar-header .navbar-brand { - font-family: 'Overpass','Source Sans Pro', 'Source Sans', sans-serif; - text-transform: uppercase; + font-family: $fontface; font-weight: 700; + font-variation-settings: 'wght' 700; color: $key_color; } .navbar-default .navbar-header .navbar-brand:hover, .navbar-default .navbar-header .navbar-brand:focus { - color: lighten($key_color,5%); + color: lighten($key_color, 5%); } -.navbar-default .nav > li>a, -.navbar-default .nav>li>a:focus { - text-transform: uppercase; +.navbar-default .nav > li > a, +.navbar-default .nav > li > a:focus { font-size: 13px; font-weight: 700; + font-variation-settings: 'wght' 700; color: #222; } -.navbar-default .nav > li>a:hover, -.navbar-default .nav>li>a:focus:hover { +.navbar-default .nav > li > a:hover, +.navbar-default .nav > li > a:focus:hover { color: #f05f40; } -.navbar-default .nav > li.active>a, -.navbar-default .nav>li.active>a:focus { - color: #f05f40!important; +.navbar-default .nav > li.active > a, +.navbar-default .nav > li.active > a:focus { + color: #f05f40 !important; background-color: transparent; } -.navbar-default .nav > li.active>a:hover, -.navbar-default .nav>li.active>a:focus:hover { - background-color: transparent; +.navbar-default .nav > li.active > a:hover, +.navbar-default .nav > li.active > a:focus:hover { + background-color: transparent; } - -@media(min-width:768px) { +@media (min-width: 768px) { .navbar-default { - border-color: rgba(255,255,255,.7); - background-color: rgba(255,255,255,0.8); + border-color: rgba(255, 255, 255, 0.7); + background-color: rgba(255, 255, 255, 0.8); /* background-image: linear-gradient(to bottom,transparentize(#fff,.1),transparentize(#fff,0.9)); */ } @@ -230,20 +321,20 @@ aside { .navbar-default .navbar-header .navbar-brand:hover, .navbar-default .navbar-header .navbar-brand:focus { color: #fff; - text-shadow: 0 1px 3px rgba(0,0,0,0.6); + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); } - .navbar-default .nav > li>a, - .navbar-default .nav>li>a:focus { + .navbar-default .nav > li > a, + .navbar-default .nav > li > a:focus { } - .navbar-default .nav > li>a:hover, - .navbar-default .nav>li>a:focus:hover { + .navbar-default .nav > li > a:hover, + .navbar-default .nav > li > a:focus:hover { color: $key_color; } .navbar-default.affix { - border-color: rgba(34,34,34,.05); + border-color: rgba(34, 34, 34, 0.05); background-color: #fff; } @@ -253,16 +344,15 @@ aside { .navbar-default.affix .navbar-header .navbar-brand:hover, .navbar-default.affix .navbar-header .navbar-brand:focus { - } - .navbar-default.affix .nav > li>a, - .navbar-default.affix .nav>li>a:focus { + .navbar-default.affix .nav > li > a, + .navbar-default.affix .nav > li > a:focus { color: #222; } - .navbar-default.affix .nav > li>a:hover, - .navbar-default.affix .nav>li>a:focus:hover { + .navbar-default.affix .nav > li > a:hover, + .navbar-default.affix .nav > li > a:focus:hover { color: #f05f40; } } @@ -289,9 +379,9 @@ header .header-content { header .header-content .header-content-inner h1 { margin-top: 0; margin-bottom: 0; - text-transform: uppercase; - font-weight: 700; - text-shadow: 0 1px 2px rgba(0,0,0,0.3); + font-weight: 600; + font-variation-settings: 'wght' 600; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } header .header-content .header-content-inner hr { @@ -302,15 +392,16 @@ header .header-content .header-content-inner p { margin-bottom: 50px; font-size: 16px; font-weight: 600; + font-variation-settings: 'wght' 600; color: #fff; - text-shadow: 0 1px 1px rgba(0,0,0,0.5); + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); } pre { margin: 2em 0; } -@media(min-width:768px) { +@media (min-width: 768px) { header { min-height: 100%; } @@ -336,10 +427,12 @@ pre { } } - .section-heading { margin-top: 0; - text-transform: uppercase; + + .emphasize { + color: $key_color; + } } .service-box { @@ -347,7 +440,7 @@ pre { max-width: 400px; } -@media(min-width:992px) { +@media (min-width: 992px) { .service-box { margin: 20px auto 0; } @@ -357,13 +450,18 @@ pre { margin-bottom: 0; } - -@media(min-width:768px) { - .portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category { +@media (min-width: 768px) { + .portfolio-box + .portfolio-box-caption + .portfolio-box-caption-content + .project-category { font-size: 16px; } - .portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name { + .portfolio-box + .portfolio-box-caption + .portfolio-box-caption-content + .project-name { font-size: 22px; } } @@ -376,7 +474,7 @@ pre { color: #f05f40; } -.no-gutter > [class*=col-] { +.no-gutter > [class*="col-"] { padding-right: 0; padding-left: 0; } @@ -384,10 +482,11 @@ pre { .btn-default { color: #fff; background-color: $key_color; - -webkit-transition: all .35s; - -moz-transition: all .35s; - transition: all .35s; - .hader-content &, .bg-primary & { + -webkit-transition: all 0.35s; + -moz-transition: all 0.35s; + transition: all 0.35s; + .hader-content &, + .bg-primary & { color: #222; background-color: #fff; } @@ -399,15 +498,16 @@ pre { .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default { - color: #222; - background-color: #f2f2f2; + background-color: lighten($key_color, 10%); + color: #fff; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); } .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default { background-image: none; - border-color: rgba(0,0,0,0); + border-color: rgba(0, 0, 0, 0); } .btn-default.disabled, @@ -438,16 +538,16 @@ fieldset[disabled] .btn-default.active { .btn-primary { color: $key_color; - background-color: #fff; - -webkit-transition: all .35s; - -moz-transition: all .35s; - transition: all .35s; + background-color: lighten($neutral_color, 37%); + -webkit-transition: all 0.35s; + -moz-transition: all 0.35s; + transition: all 0.35s; &:hover, &:focus, &.focus, .open > .dropdown-toggle.btn-primary { - color: #fff; - background-color: lighten($key_color,10%); + color: #333; + background-color: lighten($neutral_color, 40%); } &:active, &.active, @@ -460,12 +560,13 @@ fieldset[disabled] .btn-default.active { } &:hover, &:focus { - border-color: rgba(0,0,0,0.1); + border-color: rgba(0, 0, 0, 0.1); } - &:active { /* fixme */ - border-color: rgba(0,0,0,0); + &:active { + /* fixme */ + border-color: rgba(0, 0, 0, 0); } - + &.disabled, &[disabled], fieldset[disabled] &, @@ -484,7 +585,7 @@ fieldset[disabled] .btn-default.active { &.disabled.active, &[disabled].active, fieldset[disabled] &.active { - background-color: #f05f40; + background-color: #f05f40; } } @@ -492,13 +593,14 @@ fieldset[disabled] .btn-default.active { border-radius: 6px; /* text-transform: uppercase; */ font-weight: 700; + font-variation-settings: 'wght' 700; .appslist & { margin: 4px; } border-width: 0 0 2px 0; - border-color: rgba(0,0,0,0.05); + border-color: rgba(0, 0, 0, 0.05); &:active { - border-color: rgba(0,0,0,0); + border-color: rgba(0, 0, 0, 0); } } @@ -528,39 +630,62 @@ img::-moz-selection { background: 0 0; } -img.full, .container img { +img.full, +.container img { display: block; width: 100%; height: auto; } - img.fright { - display: block; - width: auto; - height: auto; - float: right; - } +img.fright { + display: block; + width: auto; + height: auto; + float: right; +} iframe.full { display: block; min-height: 400px; width: 100%; + aspect-ratio: 16 / 9; } body { - webkit-tap-highlight-color: #222; + webkit-tap-highlight-color: #222; } -.wide { width: 100%; } -.largegap { margin-top: 5em; } -.mediumgap { margin-top: 2em; } -.largegapafter { margin-bottom: 10em; } -.right { text-align: right; } -.floatright { display: inline-block; float: right; } -.toneddown { opacity: 0.5; } -.centered { text-align: center; } +.wide { + width: 100%; +} +.largegap { + margin-top: 5em; +} +.mediumgap { + margin-top: 2em; +} +.largegapafter { + margin-bottom: 10em; +} +.right { + text-align: right; +} +.floatright { + display: inline-block; + float: right; +} +.toneddown { + opacity: 0.5; +} +.centered { + text-align: center; +} .appslist { margin-top: 3em; - &:first-child { margin-top: 1em; } - :not(.right) { padding-top: 7px; } + &:first-child { + margin-top: 1em; + } + :not(.right) { + padding-top: 7px; + } } .capheight { @@ -571,13 +696,15 @@ body { blockquote { font-style: italic; border-width: 0; - margin: 0; padding: 0 0 3em 0; - + margin: 0; + padding: 0 0 3em 0; + em { font-weight: bold; + font-variation-settings: 'wght' 600; font-style: normal; } - + .author { margin: 1em 0; } @@ -593,28 +720,31 @@ table { border-collapse: collapse; margin-bottom: 3em; tr { - &:hover { background-color: lighten($neutral_color, 40%); } + &:hover { + background-color: lighten($neutral_color, 40%); + } } td { padding: 0.4em 0.5em; &:first-child { font-weight: bold; + font-variation-settings: 'wght' 600; font-size: 90%; color: $neutral_color; } } - th { + th { font-size: 80%; text-transform: uppercase; - padding: .5em; + padding: 0.5em; } .nowrap { white-space: nowrap; min-width: 12em; } - &.full { + &.full { width: 100%; - border: 1px solid lighten($neutral_color,30%); + border: 1px solid lighten($neutral_color, 30%); th { background-color: $key_color; color: #fff; @@ -622,72 +752,171 @@ table { } } +.distrogrid { + display: grid; + grid-template-columns: repeat( + auto-fill, + minmax(128px, 1fr) + ); /* autofit for smaller than 768px */ + grid-gap: 16px; + + a { + display: block; + &:hover { + transform: scale(1.2); + } + } + + .icon { + background-repeat: no-repeat; + background-size: contain; + background-position: center; + min-width: 64px; + min-height: 64px; + } +} + +ol.distrotut { + list-style-type: none; + margin: 0; + padding: 0; + + li { + counter-increment: step-counter; + padding: 0 0 10px 100px; + + &::before { + position: absolute; + content: counter(step-counter); + margin-left: -90px; + font-size: 140%; + font-weight: 300; + font-variation-settings: 'wght' 300; + background-color: $neutral_color; + padding: 0.6em 1em; + border-radius: 50%; + color: #fff; + } + } +} + .appgrid { + max-width: 900px; + margin: 32px auto; display: grid; - grid-template-columns: repeat(4, 1fr); - /* grid-template-rows: repeat(4, minmax(16px,128px)); */ + grid-template-columns: repeat( + auto-fill, + minmax(64px, 1fr) + ); /* repeat(6, 1fr); */ grid-auto-flow: row; grid-gap: 16px; - grid-auto-row: minmax(64px, auto); - margin: 16px; justify-items: center; align-items: center; - + .icon { background-repeat: no-repeat; background-size: contain; background-position: center; - min-width: 64px; min-height: 64px; + min-width: 64px; + min-height: 64px; &.featured { /* grid-row: span 2; */ } + /* &:nth-child(5) { grid-row: 1 / span 2; align-self: stretch; justify-self: stretch;} &:nth-child(3) { grid-row: 2 / span 2; grid-column: 3; justify-self: stretch; align-self: stretch; } &:nth-child(7) { grid-row: 3 / span 2; grid-column: 4; justify-self: stretch; align-self: stretch; } &:nth-child(6) { grid-row: 3 / span 2; grid-column: 1; justify-self: stretch; align-self: stretch; } + */ + } +} + +#quicksetupbtn { + width: 100%; + + &:focus, + &:hover { + } + + &:active { + } +} + +.timeline { + display: grid; + grid-template-columns: 100%; + grid-gap: 15px; + align-items: baseline; + + @media (min-width: 768px) { + grid-template-columns: 1fr 2fr; + } +} + +.date { + font-size: 80%; + color: $neutral_color; + font-weight: bold; + font-variation-settings: 'wght' 600; + letter-spacing: 0.1em; + margin-top: 2em; + @media (min-width: 768px) { + text-align: right; + margin-top: 0; } } #footer { font-size: 90%; + flex: 0.3; a { font-weight: bold; + font-variation-settings: 'wght' 600; color: $neutral_color; - &:hover { color: lighten($neutral_color,20%); } - &:active,&:focus { color: #fff; } + &:hover { + color: lighten($neutral_color, 20%); + } + &:active, + &:focus { + color: #fff; + } } .navbar-brand { display: block; padding-top: 0; color: #fff; - text-transform: uppercase; font-family: $fontface; font-weight: bold; + font-variation-settings: 'wght' 600; height: inherit; + width: 100%; height: auto; } ul { display: block; - @each $quirk in ('-moz-','-ms-', '-webkit-', '') { + @each $quirk in ("-moz-", "-ms-", "-webkit-", "") { #{$quirk}column-count: 1; /* just one column for small res */ } li { list-style: none; display: block; - font-size: 80%; &.toplevel { - text-transform: uppercase; margin-bottom: 1em; } - a { display: block; } + a { + display: block; + } ul { - @each $quirk in ('-moz-','-ms-', '-webkit-', '') { - #{$quirk}column-count: 1; + @each $quirk in ("-moz-", "-ms-", "-webkit-", "") { + #{$quirk}column-count: 1; } - margin: 0; padding: 0; + margin: 0; + padding: 0; li { text-transform: none; /* padding-left: 1em; */ - a { color: darken($neutral_color,20%); } + a { + color: darken($neutral_color, 20%); + } } } } @@ -695,22 +924,45 @@ table { } //2 column footer nav for large sizes -@media(min-width:768px) { +@media (min-width: 768px) { + .distrogrid { + grid-template-columns: repeat(6, 1fr); + } #footer ul { - @each $quirk in ('-moz-','-ms-', '-webkit-', '') { - #{$quirk}column-count: 2; + @each $quirk in ("-moz-", "-ms-", "-webkit-", "") { + #{$quirk}column-count: 2; } } } .unselectable { - @each $quirk in ('-moz-','-ms-', '-webkit-', '') { + @each $quirk in ("-moz-", "-ms-", "-webkit-", "") { #{$quirk}user-select: none; } color: $neutral_color; font-weight: bold; + font-variation-settings: 'wght' 600; font-size: 90%; } - - +terminal-command { + @extend pre; + display: flex; + align-items: center; + gap: 1em; + code { + flex: 1; + padding: 1em; + } + button { + padding: 0.5em; + border: none; + background: transparent; + display: flex; + align-items: center; + svg { + width: 1.5em; + height: 1.5em; + } + } +} \ No newline at end of file