https://wiki.archlinux.org/api.php?action=feedcontributions&user=Betseg&feedformat=atomArchWiki - User contributions [en]2024-03-29T14:19:01ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=List_of_applications/Science&diff=782814List of applications/Science2023-07-08T18:15:57Z<p>Betseg: /* Planetary and Virtual Atlas */ fix link</p>
<hr />
<div><noinclude><br />
[[Category:Science]]<br />
[[Category:Applications]]<br />
[[Category:Lists of software]]<br />
[[es:List of applications (Español)/Science]]<br />
[[ja:アプリケーション一覧/サイエンス]]<br />
[[zh-hans:List of applications/Science]]<br />
{{List of applications navigation}}<br />
</noinclude><br />
== Science ==<br />
<br />
{{Note|1=For possibly more up to date selection of scientific applications, try checking the [https://aur.archlinux.org/packages?O=0&do_Search=Go&detail=1&C=15&SeB=nd&SB=v&SO=d&PP=50 AUR 'science' category]}}<br />
<br />
=== Mathematics ===<br />
<br />
==== Calculator ====<br />
<br />
See also [[Wikipedia:Comparison of software calculators]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[Wikipedia:bc programming language|bc]]|Arbitrary precision calculator language.|https://www.gnu.org/software/bc/|{{Pkg|bc}}}}<br />
* {{App|calc|Arbitrary precision console calculator.|http://www.isthe.com/chongo/tech/comp/calc/|{{Pkg|calc}}}}<br />
* {{App|clac|Command-line, stack-based calculator with postfix notation.|https://github.com/soveran/clac|{{AUR|clac}}}}<br />
* {{App|kalker|Command-line calculator with math syntax that supports user-defined variables and functions, complex numbers, and estimation of derivatives and integrals.|https://github.com/PaddiM8/kalker|{{AUR|kalker}}}}<br />
* {{App|qalc|Command-line calculator and equation solver with fault-tolerant parsing, constant recognition and units.|https://qalculate.github.io/|{{Pkg|libqalculate}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|Deepin Calculator|Easy to use calculator for Deepin desktop.|https://www.deepin.org/en/original/deepin-calculator/|{{Pkg|deepin-calculator}}}}<br />
* {{App|Extcalc|Qt-based scientific graphical calculator.|http://extcalc-linux.sourceforge.net/|{{AUR|extcalc}}}}<br />
* {{App|FOX Calculator|Simple desktop calculator.|http://fox-toolkit.org/|{{Pkg|fox}}}}<br />
* {{App|galculator|GTK-based scientific calculator.|http://galculator.mnim.org/|{{Pkg|galculator}}}}<br />
* {{App|[[Wikipedia:Genius (mathematics software)|Genius]]|Advanced calculator including a mathematical programming language.|https://www.jirka.org/genius.html|{{AUR|genius}}}}<br />
* {{App|[[Wikipedia:GNOME Calculator|GNOME Calculator]]|Scientific calculator included in the GNOME desktop. Part of {{Grp|gnome}}.|https://wiki.gnome.org/Apps/Calculator|{{Pkg|gnome-calculator}}}}<br />
* {{App|[[Wikipedia:KAlgebra|KAlgebra]]|Calculator and 3D plotter. Part of {{Grp|kde-education}}.|https://apps.kde.org/kalgebramobile/|{{Pkg|kalgebra}}}}<br />
* {{App|[[Wikipedia:KCalc|KCalc]]|Scientific calculator included in the KDE desktop.|https://apps.kde.org/kcalc/|{{Pkg|kcalc}}}}<br />
* {{App|Liri Calculator|Calculator for Liri.|https://github.com/lirios/calculator|{{Pkg|liri-calculator}}}}<br />
* {{App|MATE Calc|Calculator for the MATE desktop environment.|https://mate-desktop.org/|{{Pkg|mate-calc}}}}<br />
* {{App|Qalculate!|Calculator and equation solver with fault-tolerant parsing, constant recognition and units.|https://qalculate.github.io/|GTK: {{Pkg|qalculate-gtk}}, Qt: {{Pkg|qalculate-qt}}}}<br />
* {{App|SpeedCrunch|Fast, high precision and powerful cross-platform calculator.|https://speedcrunch.org|{{Pkg|speedcrunch}}}}<br />
* {{App|[[Wikipedia:xcalc|xcalc]]|Scientific calculator for X with algebraic and reverse polish notation modes.|https://www.x.org/|{{Pkg|xorg-xcalc}}}}<br />
<br />
==== Computer algebra system ====<br />
<br />
See also [[Wikipedia:Comparison of computer algebra systems]].<br />
<br />
* {{App|[[Wikipedia:Axiom (computer algebra system)|AXIOM]]|FriCAS: derivative of the powerful AXIOM-CAS|https://fricas.sourceforge.net|{{AUR|fricas}}}}<br />
* {{App|[[Wikipedia:GAP (computer algebra system)|GAP]]|Computer algebra system for computational discrete algebra with particular emphasis on computational group theory.|https://www.gap-system.org/|{{Pkg|gap}}}}<br />
* {{App|[[Maple]]|Famous commercial CAS. Often used in education.|https://www.maplesoft.com/products/maple/|}}<br />
* {{App|Mathics|A free CAS for symbolic mathematical computations which uses [[Python]] as its main language. It aims at achieving a Mathematica-compatible syntax and functions. It relies mostly on Sympy for most mathematical tasks and, optionally, Sage for more advanced functionality.|https://mathics.github.io/|{{AUR|mathics}}}}<br />
* {{App|[[Wikipedia:Mathomatic|Mathomatic]]|General purpose Computer Algebra System written in C.|https://github.com/mfillpot/mathomatic|{{AUR|mathomatic}}}}<br />
* {{App|[[Wikipedia:Maxima (software)|Maxima]]|[[Wikipedia:Maple (software)|Maple]]/[[Wikipedia:Wolfram Mathematica|Mathematica]]-like computer algebra system.|http://maxima.sourceforge.net/|{{Pkg|maxima}}}}<br />
* {{App|[[Wikipedia:PARI/GP|PARI/GP]]|Computer algebra system designed for fast computations in number theory.|https://pari.math.u-bordeaux.fr/|{{Pkg|pari}}}}<br />
* {{App|[[Wikipedia:Singular (software)|Singular]]|Computer algebra system for polynomial computations, with special emphasis on commutative and non-commutative algebra, algebraic geometry, and singularity theory.|https://www.singular.uni-kl.de/|{{Pkg|singular}}}}<br />
* {{App|wxMaxima|Graphical user interface for Maxima being a powerful computer algebra system.|https://andrejv.github.io/wxmaxima/|{{AUR|wxmaxima}}}}<br />
* {{App|[[Wikipedia:Xcas|Xcas]]|User interface to Giac, a free, basic computer algebra system.|https://www-fourier.ujf-grenoble.fr/~parisse/giac.html|{{Pkg|giac}}}}<br />
<br />
==== Visualization of networks/graphs ====<br />
<br />
* {{App|[[Graphviz]]|The established tool for displaying smallish graphs in 2D.|https://www.graphviz.org|{{Pkg|graphviz}}}}<br />
<br />
==== Scientific or technical computing ====<br />
<br />
See also [[Wikipedia:Comparison of numerical analysis software]].<br />
<br />
* {{App|[[Wikipedia:Cadabra (computer program)|Cadabra]]|A field-theory motivated approach to computer algebra.|https://cadabra.science/|{{AUR|cadabra2}}}}<br />
* {{App|[[Wikipedia:Cantor (software)|Cantor]]|Application that lets you use your favorite mathematical applications from within a nice KDE-integrated Worksheet Interface. Part of {{Grp|kde-education}}.|https://cantor.kde.org/|{{Pkg|cantor}}}}<br />
* {{App|EngLab|Cross-compile mathematical platform with a C like syntax.|http://englab.bugfest.net|{{AUR|englab}}}}<br />
* {{App|[[Wikipedia:FFTW|FFTW]]|A [[Wikipedia:Fast_Fourier_transform|Fast Fourier Transform]] library for computing discrete Fourier transforms. Used for a wide variety of numerical applications, which includes spectral methods.|https://www.fftw.org/ |{{Pkg|fftw}}}}<br />
* {{App|[[Wikipedia:FreeMat|FreeMat]]|Matlab-like program that supports many of its functions and features a codeless interface to external C, C++, and Fortran code, further parallel distributed algorithm development (via MPI), and 3D visualization capabilities.|https://freemat.sourceforge.net/|{{AUR|freemat}}}}<br />
* {{App|[[Wikipedia:GeoGebra|GeoGebra]]|Dynamic mathematics software with interactive graphics, algebra and spreadsheet|https://www.geogebra.org/|{{Pkg|geogebra}}}}<br />
* {{App|[[Wikipedia:Julia (programming language)|Julia]]|High-level, high-performance dynamic language for technical computing.|https://julialang.org/|{{Pkg|julia}}}}<br />
* {{App|[[Wikipedia:Kig (software)|Kig]]|Application for Interactive Geometry. Part of {{Grp|kde-education}}.|https://apps.kde.org/kig/|{{Pkg|kig}}}}<br />
* {{App|[[Wikipedia:matplotlib|matplotlib (PyLab)]]|Collection of Python modules (pyplot, numpy, etc.) used for scientific calculations.|https://www.scipy.org/|{{Pkg|python-matplotlib}}}}<br />
* {{App|[[Octave]]|[[MATLAB]]-like language and interface for numerical computations.|https://www.gnu.org/software/octave/ |{{Pkg|octave}}}}<br />
* {{App|[[SageMath]]|Mathematics software system, that combines many existing open-source packages into a common Python interface. Alternative to Magma, Maple, Mathematica and Matlab.|https://www.sagemath.org/|{{Pkg|sagemath}}}}<br />
* {{App|[[Wikipedia:Scilab|Scilab]]|Matlab alternative used for numerical computations. Its syntax is not equivalent to that of Matlab, but it can be easily converted.|https://www.scilab.org/|{{AUR|scilab}}}}<br />
<br />
==== Statistics ====<br />
<br />
See also [[Wikipedia:Comparison of statistical packages]].<br />
<br />
* {{App|[[Wikipedia:gretl|gretl]]|A cross-platform software package for econometric analysis, written in the C programming language.|https://gretl.sourceforge.net/|{{AUR|gretl}}}}<br />
* {{App|[[Wikipedia:Just another Gibbs sampler|JAGS]] (Just another Gibbs sampler)|Cross-platform program for analysis of Bayesian hierarchical models using Markov Chain Monte Carlo (MCMC) simulation.|http://mcmc-jags.sourceforge.net/|{{AUR|jags}}}}<br />
* {{App|jamovi|Statistics package, which is easy to use, and designed to be familiar to users of SPSS. Based on the [https://electronjs.org/ Electron] platform.|https://www.jamovi.org/|{{AUR|jamovi-git}}}}<br />
* {{App|[[Wikipedia:Pandas_(software)|Python Data Analysis Library (pandas)]]| Providing high-performance, easy-to-use data structures and data analysis tools with Python programming language.|https://pandas.pydata.org/|{{Pkg|python-pandas}}}}<br />
* {{App|[[Wikipedia:PSPP|PSPP]]|Free SPSS implementation.|https://www.gnu.org/software/pspp/|{{AUR|pspp}}}}<br />
* {{App|[[R]]|Software environment for statistical computing and graphics.|https://cran.r-project.org/|{{Pkg|r}}}}<br />
* {{App|[[Wikipedia:RKWard|RKWard]]|Frontend for the statistical language R.|https://rkward.kde.org/|{{Pkg|rkward}}}}<br />
* {{App|[[Wikipedia:RStudio|RStudio]]|A powerful and productive IDE for R written in Qt.|https://www.rstudio.com/|{{AUR|rstudio-desktop}}}}<br />
<br />
==== Data analysis and plotting ====<br />
<br />
{{Merge|List of Applications#Scientific and technical computing|Many overlaps.}}<br />
<br />
See also [[Wikipedia:List of information graphics software]].<br />
<br />
* {{App|AlphaPlot|Application for scientific data analysis and visualization, fork of [[Wikipedia:SciDAVis|SciDAVis]] / QtiPlot.|https://alphaplot.sourceforge.io/|{{AUR|alphaplot}}}}<br />
* {{App|DataWarrior|Open-source data visualization and analysis program with embedded chemical intelligence.|https://openmolecules.org/datawarrior/|{{AUR|datawarrior}}}}<br />
* {{App|Engauge Digitizer|Extracts data points from images of graphs.|https://markummitchell.github.io/engauge-digitizer/|{{AUR|engauge}}}}<br />
* {{App|[[Wikipedia:Fityk|Fityk]]|Curve fitting and data analysis application, predominantly used to fit analytical, bell-shaped functions to experimental data.|https://fityk.nieto.pl/|{{AUR|fityk}}}}<br />
* {{App|[[Wikipedia:gnuplot|Gnuplot]]|Command-line program that can generate 2D and 3D plots of functions, data, and data fits.|http://www.gnuplot.info/|{{Pkg|gnuplot}}}}<br />
* {{App|[[Wikipedia:Grace (plotting tool)|Grace]]|WYSIWYG 2D graph plotting tool.|https://plasma-gate.weizmann.ac.il/Grace/|{{AUR|grace}}, {{AUR|qtgrace}}, {{AUR|gracegtk}}}}<br />
* {{App|[[Wikipedia:KmPlot|KmPlot]]|Program to draw graphs, their integrals or derivatives. Part of {{Grp|kde-education}}.|https://apps.kde.org/kmplot/|{{Pkg|kmplot}}}}<br />
* {{App|[[Wikipedia:LabPlot|LabPlot]]|Free software data analysis and visualization application, similar to SciDAVis.|https://labplot.kde.org/|{{Pkg|labplot}}}}<br />
* {{App|Plots|A graph plotting application for GNOME.|https://github.com/alexhuntley/Plots|{{AUR|plots}}}}<br />
* {{App|Rocs|Graph Theory IDE for everybody interested in designing and analyzing graph algorithms (e.g., lecturers, students, researchers). Part of {{Grp|kde-education}}.|https://apps.kde.org/rocs/|{{Pkg|rocs}}}}<br />
* {{App|[[Wikipedia:ROOT|ROOT]]|Data analysis program and library (originally for particle physics) developed by CERN.|https://root.cern.ch/|{{Pkg|root}}}}<br />
<br />
See also [[List of applications/Documents#Spreadsheets]].<br />
<br />
==== Proof assistants ====<br />
<br />
See also [[Wikipedia:Proof assistant]].<br />
<br />
* {{App|[[Wikipedia:Agda (programming language)|Agda]]|Dependently typed functional programming language and proof assistant. It is an interactive system for writing and checking proofs.|https://wiki.portal.chalmers.se/agda/|{{Pkg|agda}}}}<br />
* {{App|[[Wikipedia:Coq|Coq]]|Formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.|https://coq.inria.fr/|CLI: {{Pkg|coq}}, GUI: {{Pkg|coqide}}}}<br />
* {{App|[[Wikipedia:Isabelle (proof assistant)|Isabelle]]|Generic proof assistant that allows mathematical formulas to be expressed in a formal language and provides tools for proving those formulas in a logical calculus.|https://www.cl.cam.ac.uk/research/hvg/Isabelle/|{{AUR|isabelle}}}}<br />
* {{App|[[Lean Theorem Prover]]|Proof assistant developed principally by Leonardo de Moura at Microsoft Research, used in conjunction with the Lean mathematical library.|https://leanprover-community.github.io/|{{AUR|lean-community}}}}<br />
<br />
=== Physics ===<br />
<br />
==== Tools ====<br />
<br />
* {{App|Geiger Counter Logger|Is a lightweight daemon running in the background and constantly reporting your Geiger counter readings to various radiation monitoring websites|https://www.dateihal.de/cms/gclog|{{AUR|gclog}}}}<br />
* {{App|GWtool|Simple tools for working with gravitational waves|https://gwtool.sourceforge.net/|{{AUR|gwtool}}}}<br />
* {{App|JaxoDraw|A particle physics program for drawing Feynman diagrams.|https://jaxodraw.sourceforge.io/|{{AUR|jaxodraw}}}}<br />
* {{App|InterSpec|spectral radiation analysis software|https://sandialabs.github.io/InterSpec/|{{AUR|interspec-bin}}}}<br />
* {{App|Libint|A high-performance library for computing Gaussian integrals in quantum mechanics|https://github.com/evaleev/libint|{{AUR|libint2}}}}<br />
* {{App|Pysolar|Collection of Python libraries for simulating the irradiation of any point on earth by the sun. It includes code for extremely precise ephemeris calculations.|https://pysolar.org/|{{AUR|python-pysolar}}}}<br />
* {{App|Silx|A collection of Python packages for data analysis at synchrotron radiation facilities.|http://www.silx.org/|{{AUR|python-silx}}}}<br />
<br />
==== Physics simulation ====<br />
<br />
* {{App|[[Wikipedia:Calculix|Calculix]]|A three-dimensional structural finite element program.|http://www.calculix.de/|{{AUR|calculix-ccx}}}}<br />
* {{App|Code_Aster|Software package for Civil and Structural Engineering finite element analysis (FEA) and numeric simulation in structural mechanics.|https://www.code-aster.org/V2/spip.php?rubrique2|{{AUR|aster}}}}<br />
* {{App|DFTB+|A quantum mechanical simulation software package based on the DFTB method|https://dftbplus.org/|{{AUR|dftbplus}}}}<br />
* {{App|[[Wikipedia:EPANET|EPANET]]|EPANET performs extended period simulation of the water movement and quality behavior within pressurized pipe networks.|https://www.epa.gov/|{{AUR|epanet2-git}}}}<br />
* {{App|[[Wikipedia:Elmer_FEM_solver|Elmer_FEM_solver]]|Finite element analysis (FEA/FEM) software for multiphysics problems. Includes models for fluid dynamics, structural mechanics, electromagnetics, heat transfer, and acoustics.|https://www.csc.fi/web/elmer http://www.elmerfem.org/|{{AUR|elmerfem}}}}<br />
* {{App|[[Wikipedia:FEniCS Project|FEniCS]]|An open-source computing platform for solving partial differential equations, enabling users to quickly translate scientific models into efficient finite element code with the high-level Python and C++ interfaces that scale across platforms ranging from laptops to high-performance clusters.|https://fenicsproject.org/|{{AUR|dolfin}}, {{AUR|python-dolfin}}}}<br />
* {{App|Finesse|Frequency domain INterfErometer Simulation SoftwarE|https://www.gwoptics.org/finesse/|{{AUR|finesse}}}}<br />
* {{App|Geant4|A simulation toolkit for particle physics interactions.|https://geant4.web.cern.ch/|{{AUR|geant4}}}}<br />
* {{App|[[Wikipedia:Gmsh|ONELAB/Gmsh]]|An open-source, lightweight interface to finite element software, by default containing the mesh generator Gmsh, the finite element solver GetDP and the optimization library conveks.|http://onelab.info/ https://getdp.info/ https://gmsh.info/ http://onelab.info/conveks/|{{AUR|gmsh}}, {{AUR|getdp}}}}<br />
* {{App|Herwig|Herwig is a multi-purpose particle physics event generator.|https://herwig.hepforge.org/|{{AUR|herwig}}}}<br />
* {{App|Netgen/NGSolve|A high performance multiphysics finite element software, with a flexible Python interface to implement new physical equations and solution algorithms easily.|https://ngsolve.org/|{{AUR|netgen-git}}, {{AUR|ngsolve-git}}}}<br />
* {{App|[[Wikipedia:OpenFOAM|OpenFOAM]]|Software package and toolkit for computational fluid dynamics (CFD).|https://openfoam.org/|{{AUR|openfoam-org}}}}<br />
* {{App|OpenLoops 2|A particle physics package for the fast numerical evaluation of tree and one-loop matrix elements.|https://openloops.hepforge.org/|{{AUR|openloops}}}}<br />
* {{App|QuTiP|QuTiP is open-source software for simulating the dynamics of open quantum systems|https://qutip.org/|{{AUR|python-qutip}}}}<br />
* {{App|Rivet|A particle physics package for data analysis and validation of Monte Carlo event generators|https://rivet.hepforge.org/|{{AUR|rivet}}}}<br />
* {{App|Speaq|Tools for Nuclear Magnetic Resonance (NMR) Spectra Alignment, Peak Based Processing, Quantitative Analysis and Visualizations|https://cran.r-project.org/web/packages/speaq/index.html|{{AUR|r-speaq}}}}<br />
* {{App|[[Wikipedia:SWMM|SWMM]]|Storm Water Management Model is a dynamic rainfall-runoff-subsurface runoff simulation model used for simulation of the surface/subsurface hydrology quantity and quality.|https://www.epa.gov/|{{AUR|swmm5-git}}}}<br />
* {{App|Sherpa|A particle physics package for Monte Carlo simulation of collider events.|https://sherpa-team.gitlab.io/|{{AUR|sherpa}}}}<br />
* {{App|[[Wikipedia:Step (software)|Step]]|Two-dimensional physics simulation engine. Part of {{Grp|kde-education}}.|https://apps.kde.org/step/|{{Pkg|step}}}}<br />
* {{App|VESTA|3D visualization program for structural models, volumetric data such as electron/nuclear densities, and crystal morphologies.|https://jp-minerals.org/vesta/en/|{{AUR|vesta}}}}<br />
* {{App|WHIZARD|The Generator of Monte Carlo Event Generators for Tevatron, LHC, ILC, CLIC, CEPC, FCC-ee, FCC-hh, SppC and other High Energy Physics Experiments.|https://whizard.hepforge.org/|{{AUR|whizard}}}}<br />
<br />
==== Unit conversion ====<br />
<br />
* {{App|ConvertAll|Unit conversion application that allows one to combine units in any way (e.g. inches per decade), even if it does not make sense.|https://convertall.bellz.org/|{{AUR|convertall}}}}<br />
* {{App|Gonvert|Conversion utility that allows conversion between many units like CGS, Ancient, Imperial with many categories like length, mass, numbers, etc.|http://www.unihedron.com/projects/gonvert/|{{AUR|gonvert}}}}<br />
* {{App|UDUNITS|A tool for calculations of physical quantities.|https://www.unidata.ucar.edu/software/udunits/|{{AUR|udunits}}}}<br />
* {{App|[[Wikipedia:GNU Units|Units]]|Command-line unit converter and calculator that can handle multiplicative scale changes, nonlinear conversions such as Fahrenheit to Celsius or wire gauge and others.|https://www.gnu.org/software/units/|{{AUR|units}}}}<br />
<br />
=== Chemistry ===<br />
<br />
* {{App|TCcalc|A basic CLI [[Wikipedia:Chemical thermodynamics|Chemical thermodynamics]] calculator. Allows for calculating delta S and H of reactions/state changes.|https://gitlab.com/calcs1/tccalc/|{{AUR|tccalc}}}}<br />
<br />
==== Molecules ====<br />
<br />
===== Viewers =====<br />
<br />
See also [[Wikipedia:List of molecular graphics systems]].<br />
<br />
* {{App|[[Wikipedia:Avogadro_(software)|Avogadro]]|Editor, viewer and simulator for 3D molecule structures (also supports downloading files from the [[Wikipedia:Protein Data Bank|Protein Data Bank]]).|https://avogadro.cc/|{{AUR|avogadro}}}}<br />
* {{App|BALLView|Standalone molecular modeling and visualization application, part of the [[Wikipedia:BALL|BALL]] framework.|https://ball-project.org/|{{AUR|ball}}}}<br />
* {{App|[[Wikipedia:Ghemical|Ghemical]]|Computational chemistry software package used to edit, view and simulate molecular structures.|http://bioinformatics.org/ghemical/ghemical/index.html|{{AUR|ghemical}}}}<br />
* {{App|[[Wikipedia:PyMOL|PyMOL]]|Open-source molecular visualization system that can produce high quality 3D images of small molecules and biological macromolecules, such as proteins.|https://pymol.org/|{{Pkg|pymol}}}}<br />
* {{App|[[Wikipedia:UCSF Chimera|UCSF Chimera]]|Extensible molecular modeling system.|https://rbvi.ucsf.edu/chimera/|{{AUR|ucsf-chimera}}}}<br />
* {{App|UCSF ChimeraX|Next-generation molecular visualization program, following UCSF Chimera.|https://rbvi.ucsf.edu/chimerax/|{{AUR|chimerax}}}}<br />
* {{App|[[Wikipedia:Visual Molecular Dynamics|VMD]]|VMD is a molecular visualization program for displaying, animating, and analyzing large biomolecular systems using 3-D graphics and built-in scripting.|https://www.ks.uiuc.edu/Research/vmd/|{{AUR|vmd}}}}<br />
* {{App|wxMacMolPlt|An open-source GUI for preparing, submitting and visualizing input and output for the GAMESS quantum chemistry package.|https://brettbode.github.io/wxmacmolplt/|{{AUR|wxmacmolplt}}}}<br />
<br />
===== Drawing =====<br />
<br />
* {{App|Chemtool|GTK-based program for drawing chemical structural formulas.|http://ruby.chemie.uni-freiburg.de/~martin/chemtool/chemtool.html|{{AUR|chemtool}}}}<br />
* {{App|[[Wikipedia:Gabedit|Gabedit]]|Graphical user interface to computational chemistry packages like [[Wikipedia:GAMESS (US)|GAMESS]], [[Wikipedia:Gaussian (software)|Gaussian]], [[Wikipedia:MOLCAS|MOLCAS]], [[Wikipedia:MOLPRO|MOLPRO]], [[Wikipedia:MPQC|MPQC]], [[Wikipedia:MOPAC|OpenMopac]], [[Wikipedia:PC GAMESS|Firefly]] (previously PC GAMESS) and [[Wikipedia:Q-Chem|Q-Chem]].|https://gabedit.sourceforge.net/|{{AUR|gabedit}}}}<br />
* {{App|Marvin|Java-based program for drawing chemical structural formulas.|https://chemaxon.com/marvin|{{AUR|marvin}}}}<br />
<br />
===== Modeling =====<br />
<br />
* {{App|[[Wikipedia:AMBER|AmberTools]]|AmberTools consists of several independently developed packages that work well by themselves, and with Amber18 itself. The suite can also be used to carry out complete molecular dynamics simulations, with either explicit water or generalized Born solvent models.|https://ambermd.org/AmberTools.php|{{AUR|ambertools}}}}<br />
* {{App|[[Wikipedia:APBS (software)|APBS]]|Electrostatic and solvation properties for complex molecules.|https://www.poissonboltzmann.org/|{{AUR|apbs}}}}<br />
* {{App|[[Wikipedia:COPASI|COPASI]]|COmplex PAthway SImulator for analysis of biochemical networks and their dynamics.|https://copasi.org/|{{AUR|copasi}}}}<br />
* {{App|[[Wikipedia:CP2K|CP2K]]|A quantum chemistry and solid state physics software package.|https://www.cp2k.org/|{{AUR|cp2k}}}}<br />
* {{App|Fpocket|Fpocket is a very fast open source protein pocket detection algorithm based on Voronoi tessellation.|https://github.com/Discngine/fpocket|{{AUR|fpocket-git}}}}<br />
* {{App|[[GROMACS]] (GROningen MAchine for Chemical Simulations)|Versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.|https://www.gromacs.org|{{AUR|gromacs}}}}<br />
* {{App|[[Wikipedia:LAMMPS|LAMMPS]]|Large-scale Atomic/Molecular Massively Parallel Simulator.|https://www.lammps.org/|{{AUR|lammps}}}}<br />
* {{App|[[Wikipedia:MODELLER|MODELLER]]|3D structure homology modeller.|https://salilab.org/modeller/|{{AUR|modeller}}}}<br />
* {{App|[[Wikipedia:NAMD|NAMD]]|NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems.|https://www.ks.uiuc.edu/Research/namd/|{{AUR|namd}}}}<br />
* {{App|[[Wikipedia:NWChem|NWChem]]|Ab initio computational chemistry software package.|https://nwchemgit.github.io/|{{AUR|nwchem}}}}<br />
* {{App|[[Wikipedia:Open Babel|Open Babel]]|A library designed to interconvert between many file formats used in molecular modeling and computational chemistry.|https://openbabel.org/|{{pkg|openbabel}}}}<br />
* {{App|[[Wikipedia:ORCA (quantum chemistry program)|ORCA]]|ORCA is an ab initio, DFT, and semi-empirical SCF-MO package.|https://orcaforum.kofo.mpg.de/app.php/portal|{{AUR|orcaqm}}}}<br />
* {{App|[[Wikipedia:APBS (software)|PDB2PQR]]|Electrostatic and solvation properties for complex molecules.|https://www.poissonboltzmann.org/|{{AUR|python-pdb2pqr}}}}<br />
* {{App|[[Wikipedia:PLUMED|PLUMED]]|An open source plugin for free energy calculations in molecular systems which works together with some of the most popular molecular dynamics engines.|https://www.plumed.org/|{{AUR|plumed}}}}<br />
* {{App|PMEMD|PMEMD module of AMBER software package.|https://ambermd.org/AmberMD.php|{{AUR|pmemd}}}}<br />
* {{App|PSI4|Open-source quantum chemistry|https://psicode.org/|{{AUR|psi4-git}}}}<br />
* {{App|[[Wikipedia:Quantum ESPRESSO|Quantum ESPRESSO]]|Integrated suite of applications for electronic-structure calculations and materials modeling at nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials (both norm-conserving and ultrasoft).|https://www.quantum-espresso.org/|{{AUR|quantum-espresso}}}}<br />
* {{App|[[Wikipedia:RDKit|RDKit]]|A collection of cheminformatics and machine-learning software written in C++ and Python.|https://www.rdkit.org/|{{AUR|rdkit}}}}<br />
* {{App|[[Wikipedia:RDock|rDock]]|A fast, versatile and open-source program for docking ligands to proteins and nucleic acids.|https://rdock.sourceforge.net/|{{AUR|rdock}}}}<br />
* {{App|[[Wikipedia:AutoDock|smina]]|Smina is a fork of Autodock Vina that focuses on improving scoring and minimization.|https://sourceforge.net/projects/smina/|{{AUR|smina-bin}}}}<br />
<br />
==== Simulation analysis ====<br />
<br />
* {{App|mdanalysis|An object-oriented python toolkit to analyze molecular dynamics trajectories in many popular formats.|https://www.mdanalysis.org|{{AUR|python-mdanalysis}}}}<br />
* {{App|MDTraj|A modern, open library for the analysis of molecular dynamics trajectories.|https://github.com/mdtraj/mdtraj|{{AUR|python-mdtraj}}}}<br />
* {{App|xdrfile|Allows to read GROMACS [https://manual.gromacs.org/current/reference-manual/file-formats.html#trr trr] and [https://manual.gromacs.org/current/reference-manual/file-formats.html#xtc xtc] files and also to convert from one format to another.|https://manual.gromacs.org/current/reference-manual/file-formats.html#xdr|{{AUR|xdrfile}}}}<br />
<br />
==== Periodic table ====<br />
<br />
* {{App|eperiodique|A simple Periodic Table Of Elements viewer using the EFL.|http://eperiodique.sourceforge.net/|{{AUR|eperiodique}}}}<br />
* {{App|gElemental|Periodic table of the elements with additional information.|https://freshmeat.sourceforge.net/projects/gelemental|{{AUR|gelemental}}}}<br />
* {{App|Kalzium|Periodic table of the elements with molecule editor and equation solver. Part of {{Grp|kde-education}}.|https://apps.kde.org/kalzium/|{{Pkg|kalzium}}}}<br />
<br />
=== Earth science ===<br />
<br />
==== Climatology ====<br />
<br />
* {{App|Climate Data Operators|Command line tool manipulate and analyse Climate model Data. Supported data formats are GRIB, netCDF, SERVICE, EXTRA and IEG.|https://code.mpimet.mpg.de/projects/cdo|{{AUR|cdo}}}}<br />
<br />
==== Geography ====<br />
<br />
===== Cartography =====<br />
<br />
* {{App|JOSM|Main editor for OpenStreetMap written in Java.|https://josm.openstreetmap.de/|{{Pkg|josm}}}}<br />
* {{App|Merkaartor|OpenStreetMap editor.|http://merkaartor.be/|{{Pkg|merkaartor}}}}<br />
* {{App|OpenOrienteering Mapper|Orienteering mapmaking program.|https://www.openorienteering.org/apps/mapper/|{{AUR|openorienteering-mapper}}}}<br />
* {{App|Phyghtmap|Generate OSM contour lines from NASA SRTM data|http://katze.tfiu.de/projects/phyghtmap/|{{AUR|phyghtmap}}}}<br />
<br />
===== GPS, travel, tracking =====<br />
<br />
* {{App|BT747|The swiss army knife for MTK GPS dataloggers.|https://sourceforge.net/projects/bt747/|{{Pkg|bt747}}}}<br />
* {{App|FoxtrotGPS|Lightweight and fast mapping application.|https://www.foxtrotgps.org/|{{AUR|foxtrotgps}}}}<br />
* {{App|Gebabbel|Alternative GUI for GPSBabel.|http://gebabbel.sourceforge.net/|{{AUR|gebabbel}}}}<br />
* {{App|Gpredict|Real-time satellite tracking and orbit prediction application.|http://gpredict.oz9aec.net/|{{AUR|gpredict}}}}<br />
* {{App|GPSBabel|Reads, writes, and manipulates GPS waypoints, tracks, routes in a variety of formats.|https://www.gpsbabel.org/|{{Pkg|gpsbabel}}}}<br />
* {{App|[[Wikipedia:gpsd|gpsd]]|Service daemon that monitors one or more GPSes or AIS receivers attached to a host computer through serial or USB ports, making all data on the location/course/velocity of the sensors available to be queried on TCP port 2947 of the host computer.|http://catb.org/gpsd/|{{Pkg|gpsd}}}}<br />
* {{App|GpsPrune|View, edit and convert coordinate data from GPS systems.|https://activityworkshop.net/software/gpsprune/|{{Pkg|gpsprune}}}}<br />
* {{App|GPX Viewer|Simple tool to visualize tracks and waypoints stored in a gpx file.|https://blog.sarine.nl/tag/gpxviewer/|{{Pkg|gpx-viewer}}}}<br />
* {{App|GPXSee|GPS log file viewer and analyzer.|https://www.gpxsee.org/|{{Pkg|gpxsee}}}}<br />
* {{App|Navit|Modular turn-by-turn car navigation system.|https://www.navit-project.org/|{{Pkg|navit}}}}<br />
* {{App|PreviSat|PreviSat is a satellite tracking software for observing purposes|https://previsat.sourceforge.net/|{{AUR|previsat}}}}<br />
* {{App|QMapShack|Plan your next outdoor trip.|https://github.com/Maproom/qmapshack/|{{Pkg|qmapshack}}}}<br />
* {{App|Satellite|Displays Global Navigation Satellite System (GNSS: GPS, Galileo, Glonass etc.) information obtained from NMEA sources and saves your tracks|https://codeberg.org/tpikonen/satellite|{{AUR|satellite-gtk}}}}<br />
* {{App|[[Wikipedia:Subsurface (software)|Subsurface]]|Diving logbook to keep track of your dives by logging dive locations (with GPS coordinates), weights and exposure protection used, divemasters and dive buddies, etc.|https://subsurface-divelog.org/|{{AUR|subsurface}}}}<br />
* {{App|Viking|GTK 2 application to manage GPS data.|https://sourceforge.net/projects/viking/|{{Pkg|viking}}}}<br />
<br />
===== Data analysis and GIS =====<br />
<br />
* {{App|GeoDa|A tool for spatial data analysis.|https://geodacenter.github.io/|{{AUR|geoda-bin}}}}<br />
* {{App|[[Wikipedia:GRASS GIS|GRASS GIS]]|Geospatial data management and analysis, image processing, graphics/maps production, spatial modeling and visualization.|https://grass.osgeo.org/|{{AUR|grass}}}}<br />
* {{App|[[Wikipedia:gvSIG|gvSIG]]|vSIG is a geographic information system (GIS), that is, a desktop application designed for capturing, storing, handling, analyzing and deploying any kind of referenced geographic information in order to solve complex management and planning problems.|http://www.gvsig.com/en| {{AUR|gvsig-desktop-bin}}}}<br />
* {{App|Panoply|NetCDF, HDF and GRIB Data Viewer by NASA GISS|https://www.giss.nasa.gov/tools/panoply/|{{AUR|panoply}}}}<br />
* {{App|[[Wikipedia:QGIS|QGIS]]| [[Wikipedia:Geographic Information System|Geographic Information System (GIS)]] that supports vector, raster & database formats.|https://qgis.org/|{{Pkg|qgis}}}}<br />
* {{App|SAGA|A Geographic Information System (GIS) software with immense capabilities for geodata processing and analysis.|https://saga-gis.sourceforge.io/en/index.html|{{AUR|saga-gis}}}}<br />
* {{App|WCSTools|A package of programs for setting and using the world coordinate systems|http://tdc-www.harvard.edu/wcstools/|{{AUR|wcstools}}}}<br />
<br />
===== Map client =====<br />
<br />
* {{App|Cruiser|Map and navigation application using offline vector maps|https://wiki.openstreetmap.org/wiki/Cruiser|{{AUR|cruiser}}}}<br />
* {{App|GNOME Maps|A simple map client for GNOME. Part of {{Grp|gnome}}.|https://wiki.gnome.org/Apps/Maps|{{Pkg|gnome-maps}}}}<br />
* {{App|MapSCII|Console Map Viewer.|https://github.com/rastapasta/mapscii|{{AUR|nodejs-mapscii}}}}<br />
* {{App|Mapton|Extensible desktop map and globe application written in Java.|https://mapton.org/|{{AUR|mapton}}}}<br />
* {{App|[[Wikipedia:Marble_(software)|Marble]]|Virtual Globe and World Atlas that can be used to learn more about the Earth. Part of {{Grp|kde-education}}.|https://marble.kde.org/|KDE: {{Pkg|marble}}, Qt: {{Pkg|marble-qt}}}}<br />
* {{App|OffRoad|Offline vector map display ported from OsmAnd.|https://sourceforge.net/projects/offroadosm/|{{Pkg|offroad}}}}<br />
* {{App|Pure Maps|Display vector and raster maps, places, routes, etc.|https://rinigus.github.io/pure-maps/|{{AUR|pure-maps}}}}<br />
<br />
===== Weather status =====<br />
<br />
* {{App|Gis Weather|Customizable weather forecast desktop widget.|https://sourceforge.net/projects/gis-weather/|{{AUR|gis-weather}}}}<br />
* {{App|GNOME Weather|Small application for GNOME that allows you to monitor the current weather conditions for your city, or anywhere in the world, and to access updated forecasts provided by various internet services. Part of {{Grp|gnome}}.|https://wiki.gnome.org/Apps/Weather|{{Pkg|gnome-weather}}}}<br />
* {{App|meteo-qt|System tray application for weather status information.|https://github.com/dglent/meteo-qt|{{AUR|meteo-qt}}}}<br />
* {{App|wttr|A simple console application to check the weather, using data from https://wttr.in|https://github.com/AmirrezaFiroozi/wttr|{{AUR|wttr}}}}<br />
* {{App|Xfce Weather Panel Plugin|Weather forecast plugin for the Xfce4 panel.|https://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin|{{Pkg|xfce4-weather-plugin}}}}<br />
* {{App|wego|A terminal weather application.|https://tylerwolf35.github.io/wego|{{AUR|wego}}}}<br />
<br />
==== Geology ====<br />
<br />
* {{App|CDI|Is a general purpose C-library with an additional Fortran interface for file IO in the geoscience area.|https://code.mpimet.mpg.de/projects/cdi|{{AUR|cdi}}}}<br />
* {{App|EnhancedVolcano|Publication-ready volcano plots with enhanced colouring and labeling.|https://bioconductor.org/packages/release/bioc/html/EnhancedVolcano.html|{{AUR|r-enhancedvolcano}}}}<br />
* {{App|GEOmap|Topographic and Geologic Mapping.|https://cran.r-project.org/web/packages/GEOmap/index.html|{{AUR|r-geomap}}}}<br />
* {{App|GPlates|Is a plate tectonics program. Manipulate reconstructions of geological and paleogeographic features through geological time.|https://www.gplates.org/|{{AUR|gplates}}}}<br />
* {{App|Gsegyview|SEG-Y seismic data file viewer|https://sourceforge.net/projects/gsegyview/|{{AUR|gsegyview-bin}}}}<br />
* {{App|Gstat|Spatial and Spatio-Temporal Geostatistical Modelling, Prediction and Simulation|https://cran.r-project.org/web/packages/gstat/index.html|{{AUR|r-gstat}}}}<br />
* {{App|Madagascar|Multidimensional data analysis and reproducible computational experiments.|https://www.reproducibility.org|{{AUR|madagascar}}}}<br />
* {{App|SeisComP|A seismological software for data acquisition, processing, distribution and interactive analysis.|https://github.com/SeisComP/seiscomp|{{AUR|seiscomp}}}}<br />
* {{App|Seismic Un*x|A seismic processing and research environment developed at the Center for Wave Phenomena, Colorado School of Mines|https://wiki.seismic-unix.org/start|{{AUR|seismic-unix}}}}<br />
* {{App|TauP|A seismic travel time calculator.|https://github.com/crotwell/TauP|{{AUR|taup-git}}}}<br />
<br />
==== Oceanography ====<br />
<br />
* {{App|Cmocean|Colormap setup for standardizing commonly-plotting oceanographic variables.|https://github.com/matplotlib/cmocean|{{AUR|python-cmocean}}}}<br />
<br />
=== Astronomy ===<br />
<br />
==== Astrometrical and image processing software ====<br />
<br />
See also [[Wikipedia:List of astrometric solvers]].<br />
<br />
* {{App|APTS|Set of tools for automatic astrophotography images acquisition and processing|https://github.com/pozar87/apts|{{AUR|python-apts}}}}<br />
* {{App|Astap|Astrometric (plate) solver, stacking of images, photometry and FITS viewer|https://www.hnsky.org/astap.htm|{{AUR|astap-bin-qt5}}}}<br />
* {{App|AstroCrop|Astronomical image preprocessing tool|https://www.astrodmx-capture.org.uk/astrocrop/|{{AUR|astrocrop}}}}<br />
* {{App|AstroImageJ|ImageJ for Astronomy|https://www.astro.louisville.edu/software/astroimagej/|{{AUR|astroimagej}}}}<br />
* {{App|Astrometry.net|Automatic recognition of astronomical images|http://astrometry.net/|{{AUR|astrometry.net}}}}<br />
* {{App|AudeLA|AudeLA is a TCL extension aimed at providing amateur astronomers with image processing, telescope controling, ccd camera driving, and various astronomical algorithms|https://sourceforge.net/projects/audela/|{{AUR|audela-bin}},{{AUR|audela-svn}}}}<br />
* {{App|CARTA|Cube Analysis and Rendering Tool for Astronomy|https://cartavis.org/|{{AUR|carta-appimage}}}}<br />
* {{App|FITSH|a software package for astronomical image processing|https://fitsh.net/|{{AUR|fitsh}}}}<br />
* {{App|GIMP Astronomy Plugins|Set of GIMP plugins for astronomical image processing.|http://hennigbuam.de/georg/gimp.html|{{AUR|gimp-plugin-astronomy}}}}<br />
* {{App|Ginga|A viewer for astronomical data FITS (Flexible Image Transport System) files|https://ejeschke.github.io/ginga/|{{AUR|python-ginga}}}}<br />
* {{App|SCAMP|reads SExtractor catalogs and computes astrometric and photometric solutions for any arbitrary sequence of FITS images in a completely automatic way.|https://www.astromatic.net/software/scamp/|{{AUR|astromatic-scamp}}}}<br />
* {{App|SExtractor|Is a program that builds a catalogue of objects from an astronomical image.|https://www.astromatic.net/software/sextractor/|{{AUR|astromatic-sextractor}}}}<br />
* {{App|Montage|An astronomical image mosaic engine|http://montage.ipac.caltech.edu/|{{AUR|montage}}}}<br />
* {{App|Munipack|A general astronomical image processing software|http://munipack.physics.muni.cz/|{{AUR|munipack}}, {{AUR|c-munipack}}}}<br />
* {{App|oaCapture|A planetary imaging application using Qt5|https://www.openastroproject.org/oacapture/|{{AUR|oacapture}}}}<br />
* {{App|PlanetarySystemStacker|Produce a sharp image of a planetary system object|https://github.com/Rolf-Hempel/PlanetarySystemStacker|{{AUR|planetarysystemstacker-git}}}}<br />
* {{App|THELI|THELI is a data processing pipeline for optical, near-infrared and mid-infrared astronomical images|https://github.com/schirmermischa/THELI|{{AUR|theli}}}}<br />
<br />
==== Image capture software ====<br />
<br />
* {{App|CCDciel|A CCD capture software intended for the amateur astronomer.|https://www.ap-i.net/ccdciel//en/start|{{AUR|ccdciel}}}}<br />
* {{App|FireCapture|The leading planetary capture tool|http://www.firecapture.de/|{{AUR|firecapture}}}}<br />
* {{App|GoQat|Camera acquisition software, especially for QSI cameras, that provides other features such as autoguiding, focusing help and others.|https://canburytech.net/GoQat/|{{AUR|goqat}}}}<br />
* {{App|lin_guider|astronomical autoguiding program|https://sourceforge.net/projects/linguider/|{{AUR|lin-guider}}}}<br />
* {{App|Mrcal|Is a generic toolkit built to solve the calibration and SFM-like problems we encounter at NASA/JPL.|http://mrcal.secretsauce.net/|{{AUR|mrcal}}}}<br />
* {{App|Open PHD Guiding|PHD2 astrophotography autoguiding tool|https://openphdguiding.org/|{{AUR|phd2}}}}<br />
* {{App|SAOImageDS9|SAOImage DS9: Astronomical Data Visualization Application|https://sites.google.com/cfa.harvard.edu/saoimageds9|{{AUR|ds9}}}}<br />
* {{App|[[Wikipedia:Siril (software)|Siril]]|Siril is a software application for astrophotography, which allows pre-processing and processing of images from any type of camera (CCD, planetary camera, webcam etc.)|https://siril.org/|{{AUR|siril}}}}<br />
<br />
==== Common Library ====<br />
<br />
* {{App|[[Wikipedia:Astropy|Astropy]]|The Astropy Project is a community effort to develop a common core package for Astronomy in Python and foster an ecosystem of interoperable astronomy packages.|https://www.astropy.org/|{{Pkg|python-astropy}}}}<br />
* {{App|CASA|the Common Astronomy Software Applications package.|https://casa.nrao.edu/|{{AUR|casa6-bin}}}}<br />
* {{App|Casacore|package contains the core libraries of the old AIPS++/CASA package.|https://casacore.github.io/casacore/|{{AUR|casacore}}, {{AUR|python-casacore}}}}<br />
* {{App|CDF|NASA Common Data Format (CDF) library for scientific data management|https://cdf.gsfc.nasa.gov/|{{AUR|cdf-nasa}}}}<br />
* {{App|ERFA|Essential Routines for Fundamental Astronomy|https://github.com/liberfa/erfa|{{pkg|erfa}}}}<br />
* {{App|HEASoft|NASA high energy astrophysics library|https://heasarc.gsfc.nasa.gov/docs/software/lheasoft/|{{AUR|heasoft}}}}<br />
* {{App|libTheSky|Fortran library to compute the positions of celestial bodies and events with great accuracy|https://libthesky.sourceforge.net/|{{AUR|libthesky}}, {{AUR|libthesky-data}}}}<br />
* {{App|Pal|Positional Astronomy Library.|https://github.com/Starlink/pal|{{AUR|starlink-pal}}}}<br />
* {{App|PyEphem|PyEphem provides scientific-grade astronomical computations|https://rhodesmill.org/pyephem/|{{AUR|python-pyephem}}}}<br />
* {{App|SOFA|Set of algorithms and procedures used in fundamental astronomy|http://www.iausofa.org/|{{AUR|sofa}}}}<br />
<br />
==== Toolkits ====<br />
<br />
* {{App|AstroML|Machine learning, statistics, and data mining for astronomy and astrophysics|https://www.astroml.org/|{{AUR|python-astroml}}}}<br />
* {{App|Exoplanet|exoplanet is a toolkit for probabilistic modeling of time series data in astronomy with a focus on observations of exoplanets|https://github.com/exoplanet-dev/exoplanet|{{AUR|exoplanet-git}}}}<br />
* {{App|Galpy|Galactic Dynamics in python|https://www.galpy.org/|{{AUR|python-galpy}}}}<br />
* {{App|Gammapy|A Python package for gamma-ray astronomy|https://gammapy.org/|{{AUR|python-gammapy}}}}<br />
* {{App|HEALPix|Software for pixelization, hierarchical indexation, synthesis, analysis, and visualization of data on the sphere|https://healpix.jpl.nasa.gov/|{{AUR|healpix}}}}<br />
* {{App|JHelioviewer|Visualization software for solar image data in space weather context|https://www.jhelioviewer.org/|{{AUR|jhelioviewer-swhv}}}}<br />
* {{App|JMARS|Java Mission-planning and Analysis for Remote Sensing.|https://jmars.mars.asu.edu/|{{AUR|jmars}}}}<br />
* {{App|JSkyCalc|A tool for observing preparation in java|https://caligari.dartmouth.edu/public/downloads/skycalc/|{{AUR|jskycalc}}}}<br />
* {{App|Period04|Period04 is a computer program especially dedicated to the statistical analysis of large astronomical time series containing gaps|http://period04.net/|{{AUR|period04}}}}<br />
* {{App|[[Wikipedia:WorldWide Telescope|Pywwt]]|Is the official toolkit for accessing AAS WorldWide Telescope (WWT) from Python|https://pywwt.readthedocs.io/en/stable/|{{AUR|python-pywwt}}}}<br />
* {{App|RochePlot|Plot the key stages in the evolution of a binary star|https://rocheplot.sourceforge.net/|{{AUR|rocheplot}}}}<br />
* {{App|Skyfield|Elegant astronomy for Python|https://rhodesmill.org/skyfield/|{{AUR|python-skyfield}}}}<br />
* {{App|SolTrack|A free, fast and accurate C/C++ routine to compute the position of the Sun|https://soltrack.sourceforge.net/|{{AUR|soltrack}}}}<br />
* {{App|SPICE|A comprehensive toolkit and api to design, simulate and analyse space missions|https://naif.jpl.nasa.gov/naif/index.html|{{AUR|cspice}}}}<br />
* {{App|STILTS|Starlink Tables Infrastructure Library Tool Set|https://www.star.bris.ac.uk/~mbt/stilts/|{{AUR|stilts}}}}<br />
* {{App|sunclock|An astronomical world map that shows day and night and the Sun and Moon positions|https://www.spinnaker.de/debian/sunclock.html|{{AUR|sunclock}}}}<br />
* {{App|Tempo|Pulsar Timing Software|https://tempo.sourceforge.net/tempo_idx.html|{{AUR|tempo-git}}}}<br />
* {{App|TOPCAT|Tool for OPerations on Catalogues And Tables|https://www.star.bris.ac.uk/~mbt/topcat/|{{AUR|topcat}}}}<br />
* {{App|VaST|VaST is a software tool for finding variable objects on a series of astronomical images|http://scan.sai.msu.ru/vast/|{{AUR|vast-astronomical-git}}}}<br />
* {{App|VStar|VStar is a multi-platform, easy-to-use variable star data visualization and analysis tool that was originally developed as part of the AAVSOs Citizen Sky project|https://www.aavso.org/vstar|{{AUR|vstar-aavso}}}}<br />
<br />
==== Calculators and CLI utils ====<br />
<br />
* {{App|astroTools|Command-line tools for astronomy and astrophysics|https://astrotools.sourceforge.net/|{{AUR|astrotools}}}}<br />
* {{App|Find_Orb|Orbit determination from observations|https://www.projectpluto.com/find_orb.htm|{{AUR|find-orb-git}}{{Broken package link|package not found}}}}<br />
* {{App|Gnuastro|Various programs and library functions for the manipulation and analysis of astronomical data|https://www.gnu.org/software/gnuastro/|{{AUR|gnuastro}}}}<br />
* {{App|Kosmorro|A program to calculate the ephemerides|https://kosmorro.space/|{{AUR|kosmorro}}}}<br />
* {{App|star-charter|A command-line tool for producing vector-graphics charts of the night sky in SVG, PDF and PNG formats|https://github.com/dcf21/star-charter|{{AUR|star-charter-git}}}}<br />
* {{App|Sunwait|Calculate sunrise/sunset times with civil, nautical, astronomical and custom twilights|https://www.risacher.org/sunwait{{Dead link|2023|06|17|status=SSL error}}|{{AUR|sunwait}}}}<br />
<br />
==== Management of telescopes and observatories ====<br />
<br />
* {{App|GILDAS|Is a collection of state-of-the-art software oriented toward (sub-)millimeter radioastronomical applications (either single-dish or interferometer)|https://www.iram.fr/IRAMFR/GILDAS/|{{AUR|gildas}}}}<br />
* {{App|imSim|software package that simulates the LSST telescope and survey|https://github.com/LSSTDESC/imSim|{{AUR|python-imsim-git}}}}<br />
* {{App|rubin_sim|Scheduler, survey strategy analysis, and other simulation tools for Rubin Observatory|https://github.com/lsst/rubin_sim|{{AUR|python-rubinsim-git}}}}<br />
* {{App|Srt-py|Small Radio Telescope Control Code for Python.|https://github.com/MITHaystack/srt-py|{{AUR|srt-py-git}}}}<br />
<br />
==== Simulation ====<br />
<br />
* {{App|APSYNSIM|Aperture Synthesis Simulator for Radio Astronomy|https://launchpad.net/apsynsim|{{AUR|apsynsim}}}}<br />
* {{App|Galaxy2|Is program which simulates the motion of stars under the influence of gravity|https://www.kornelix.net/galaxy2/galaxy2.html|{{AUR|galaxy2}}}}<br />
* {{App|GalSim|Modular galaxy image simulation toolkit|https://github.com/GalSim-developers/GalSim|{{AUR|python-galsim}}}}<br />
* {{App|FriendlyVRI|Is designed to simulate astronomical observations using linked arrays of radio antennas in a technique called earth rotation aperture synthesis|https://github.com/crpurcell/friendlyVRI|{{AUR|friendlyvri-git}}}}<br />
* {{App|Pynterferometer|Is a graphical interface designed to demonstrated the techniques of radio interferometry used by telescopes|https://www.jb.man.ac.uk/pynterferometer/index.html|{{AUR|pynterferometer}}}}<br />
<br />
==== Space exploration programs ====<br />
<br />
* {{App|Cosmonium|3D astronomy and space exploration program|https://github.com/cosmonium/cosmonium|{{AUR|cosmonium-bin}}}}<br />
* {{App|OpenSpace|OpenSpace is an open source, non-commercial, and freely available interactive data visualization software designed to visualize the entire known universe and portray our ongoing efforts to investigate the cosmos|https://www.openspaceproject.com/|{{AUR|openspace}}}}<br />
* {{App|Our Galaxy|Is a unique app that helps you understand the structural components of the Galaxy and visualize the locations and physical properties of deep sky objects in and around it|https://www.otherwise.com/|{{AUR|ourgalaxy-bin}}}}<br />
<br />
==== Planetary and Virtual Atlas ====<br />
<br />
See also [[Wikipedia:Planetarium software]].<br />
<br />
See also [[Wikipedia:List of observatory software]].<br />
<br />
* {{App|Aladin|Interactive software sky atlas|http://aladin.u-strasbg.fr/aladin.gml|{{AUR|aladin}}}}<br />
* {{App|[[Wikipedia:Celestia|Celestia]]|3D astronomy simulation program that allows users to travel through an extensive universe, modeled after reality, at any speed, in any direction and at any time in history.|https://celestiaproject.space/|{{AUR|celestia}}}}<br />
* {{App|Gaia Sky|An open source 3D universe simulator with support for more than a billion objects|https://zah.uni-heidelberg.de/gaia/outreach/gaiasky|{{AUR|gaiasky}}}}<br />
* {{App|HNSKY|Hallo Northern Sky is the semi professional free planetarium program|https://sourceforge.net/projects/hnsky/|{{AUR|hnsky-hg}}}}<br />
* {{App|[[Wikipedia:KStars|KStars]]|Planetarium application that provides an accurate graphical simulation of the night sky, from any location on Earth, at any date and time. It is included in KDE Edu.|https://apps.kde.org/kstars/|{{Pkg|kstars}}}}<br />
* {{App|[[Wikipedia:Cartes du Ciel|Skychart / Cartes du Ciel]]|Planetarium that maps out and labels most of the constellations, planets, and objects you can see with a telescope. It can also download Digitized Sky Survey Charts and superimpose images over these charts.|https://www.ap-i.net/skychart/|{{AUR|skychart}}}}<br />
* {{App|StarPlot|3-dimensional star chart viewer.|http://starplot.org/|{{AUR|starplot}}}}<br />
* {{App|[[Wikipedia:Stellarium (computer program)|Stellarium]]|Beautiful 3D planetarium that uses OpenGL to render a realistic sky in real time.|https://stellarium.org/|{{AUR|stellarium}}}}<br />
* {{App|Virtual Moon Atlas|Software for Moon observation and survey|https://www.ap-i.net/avl/en/start|{{AUR|virtualmoonatlas}}}}<br />
* {{App|[[Wikipedia:XEphem|XEphem]]|Motif-based ephemeris and planetarium program.|https://xephem.github.io/XEphem/Site/xephem.html|{{AUR|xephem}}}}<br />
<br />
=== Biology ===<br />
<br />
==== Computational biology and bioinformatics ====<br />
<br />
See also [[Wikipedia:List of open source bioinformatics software]].<br />
<br />
* {{App|[[Wikipedia:BALL|BALL]] (Biochemical Algorithms Library)|Application framework in C++ that provides an extensive set of data structures as well as classes for molecular mechanics, advanced solvation methods, comparison and analysis of protein structures, file import/export, and visualization.|https://ball-project.org/|{{AUR|ball}}}}<br />
* {{App|[[Wikipedia:BioJava|BioJava]]|Set of Java tools for computational biology, as well as bioinformatics.|https://biojava.org/|{{AUR|biojava}}}}<br />
* {{App|[[Wikipedia:Biopython|Biopython]]|Python package with tools for computational biology, as well as bioinformatics.|https://biopython.org/wiki/Biopython|{{Pkg|python-biopython}}}}<br />
* {{App|[[Wikipedia:EMBOSS|EMBOSS]] (European Molecular Biology Open Software Suite)|Open source software analysis package specially developed for the needs of the molecular biology and bioinformatics user community.|https://emboss.sourceforge.net/|{{AUR|emboss}}}}<br />
* {{App|[[Wikipedia:MUMmer|MUMmer]]|Bioinformatics software system for sequence alignment based on suffix trees.|https://mummer.sourceforge.net/|{{AUR|mummer}}}}<br />
* {{App|Snapgene|Closed source molecular cloning application that offers a fast and easy way to plan, visualize, and document molecular biology procedures. Supports a wide range of cloning and PCR manipulations. The free version allows most common visualizations of a molecular biology workflow.|https://www.snapgene.com/|{{AUR|snapgene-viewer}}}}<br />
* {{App|[[Wikipedia:UGENE|UGENE]]|Application that integrates dozens of well-known biological tools and algorithms, providing both graphical user and command-line interfaces.|https://ugene.net/|{{AUR|ugene}}}}<br />
<br />
==== Genealogy ====<br />
<br />
* {{App|[[Wikipedia:Gramps (software)|Gramps]]|Genealogy program, which helps you track your family tree.|https://gramps-project.org/|{{Pkg|gramps}}}}<br />
<br />
* {{App|[[Wikipedia:LifeLines|LifeLines]]|Text based genealogy software for family trees and reports.|https://github.com/lifelines/|{{AUR|lifelines}}}}<br />
<br />
==== Image manipulation ====<br />
<br />
* {{App|[[Wikipedia:ImageJ|ImageJ]]|Java-based image processing and analysing program that provides extensibility via plugins and macros. It is widely used in microscopy (e.g. for cell counting).|https://imagej.nih.gov/ij/|{{AUR|imagej}}}}<br />
* {{App|[[Wikipedia:FIJI_(software)|Fiji]]|ImageJ distribution (and soon ImageJ2) with a lot of plugins organized into a coherent menu structure.|https://fiji.sc|{{AUR|fiji-bin}}}}<br />
<br />
==== DICOM viewers and volume rendering ====<br />
<br />
* {{App|aeskulap|Simple DICOM data viewer|https://www.nongnu.org/aeskulap/|{{AUR|aeskulap}}}}<br />
* {{App|weasis|Multipurpose DICOM viewer with a highly modular architecture|https://nroduit.github.io/en/|{{AUR|weasis-bin}}}}<br />
* {{App|aliza|Open 2D, 3D and 4D images in DICOM, MetaIO, Nifti, Nrrd and other formats, meshes in DICOM, VTK, STL and OBJ formats|https://www.aliza-dicom-viewer.com/|{{AUR|aliza}}}}<br />
* {{App|[[Wikipedia:3DSlicer|3DSlicer]]|Comprehensive [[Wikipedia:Magnetic resonance imaging|MRI]], [[Wikipedia:CT scan|CT]], [[Wikipedia:Laser scanning confocal microscopy|LSCM microscopy]] volume processing, segmentation and 3D-reconstruction|https://www.slicer.org/|{{AUR|3dslicer}}}}<br />
* {{App|[[Wikipedia:ParaView|ParaView]]|Interactive data visualization tool built using VTK that can scale across distributed computer hardware.|https://www.paraview.org/|{{Pkg|paraview}}}}<br />
<br />
=== Engineering ===<br />
<br />
==== Computer-aided design ====<br />
<br />
See also [[Wikipedia:List of computer-aided design editors]].<br />
<br />
* {{App|[[Wikipedia:BRL-CAD|BRL-CAD]]|Constructive solid geometry modeling CAD system that includes an interactive geometry editor, ray tracing support for graphics rendering and geometric analysis, computer network distributed framebuffer support, scripting, image-processing and signal-processing tools.|https://brlcad.org/|{{AUR|brlcad}}}}<br />
* {{App|[[Wikipedia:FreeCAD|FreeCAD]]|Parametric 3D CAD modeler based on OpenCascade, Coin3D, Qt, and Python with features such as macro recording, workbenches and the ability to run as a server.|https://freecadweb.org/|{{Pkg|freecad}}}}<br />
* {{App|LeoCAD|CAD program for creating virtual LEGO models. It has an easy to use interface and currently includes over 10,000 different pieces created by the LDraw community.|https://www.leocad.org/|{{Pkg|leocad}}}}<br />
* {{App|[[Wikipedia:LibreCAD|LibreCAD]]|A 2D CAD application based on Qt5. Forked from QCAD Community Edition.|https://www.librecad.org/|{{Pkg|librecad}}}}<br />
* {{App|[[Wikipedia:OpenSCAD|OpenSCAD]]|A 3D CAD modeler that uses a textual, programmatic approach to creating and manipulating objects.|https://www.openscad.org|{{Pkg|openscad}}}}<br />
* {{App|[[Wikipedia:QCad|QCAD]]|A 2D CAD application based on Qt. Supports the DFX and HPGL standard file formats, and optionally the DWG format through a proprietary plugin.|https://www.qcad.org/|{{Pkg|qcad}}}}<br />
* {{App|[[Wikipedia:SolveSpace|SolveSpace]]|Powerful 3D CAD constraint-based parametric modeler with simple mechanical simulation capabilities.|https://solvespace.com/|{{AUR|solvespace}}}}<br />
<br />
==== 3D printing ====<br />
<br />
See also [[RepRap]].<br />
<br />
===== Slicers =====<br />
Slicers convert 3D models into a format supported by the 3D printer, usually this format is G-code.<br />
<br />
* {{App|PrusaSlicer|Slicer by Prusa Research. A fork of Slic3r. Aimed at their printers but supports other brands as well. Open source.|https://github.com/prusa3d/PrusaSlicer|{{Pkg|prusa-slicer}}}}<br />
* {{App|[[Wikipedia:Cura_(software)|Cura]]|Slicer by Ultimaker. Aimed at their printers but supports other brands as well. Open source.|https://ultimaker.com/software/ultimaker-cura|{{AUR|cura}}}}<br />
* {{App|SuperSlicer|Community maintained improved fork of PrusaSlicer. Not brand specific. Open source.|https://github.com/supermerill/SuperSlicer|{{Pkg|superslicer}}}}<br />
* {{App|BambuStudio|Slicer for printers from BambuLabs. Fork of PrusaSlicer. Open source.|https://github.com/bambulab/BambuStudio|{{AUR|bambustudio}}}}<br />
* {{App|orca-slicer|Community maintained fork of BambuStudio (in turn forked from PrusaSlicer). Open Source.|https://github.com/SoftFever/OrcaSlicer|{{AUR|orca-slicer}}}}<br />
* {{App|MatterControl|Simple 3D editor, slicer, and 3D printer control software by MatterHackers. Not brand specific. Open source.|http://www.mattercontrol.com|{{AUR|mattercontrol}}}}<br />
* {{App|IdeaMaker|Slicer by Raise3D. Aimed at their printers but supports other brands as well. Closed source.|https://www.raise3d.com/pages/ideamaker|{{AUR|ideamaker}}}}<br />
* {{App|Slic3r|One of the earliest slicers. Not used much any longer. Not brand specific. Open source.|https://slic3r.org/|{{AUR|slic3r}}}}<br />
* {{App|icesl|Modelling software with integrated slicer. Not brand specific. Closed source.|https://icesl.loria.fr/|{{AUR|icesl}}}}<br />
* {{App|FlashPrint|Slicer for the FlashForge 3D printers. Closed source.|http://www.ff3dp.com/|{{AUR|flashprint}}}}<br />
<br />
===== Control software =====<br />
Software for controlling 3D printers, usually over a cable or wireless.<br />
<br />
* {{App|OctoPrint|Web interface for FDM 3D printers using G-code. Open source.|https://octoprint.org/|{{AUR|octoprint}}}}<br />
* {{App|PrintRun|GUI control software for FDM 3D printers using G-code. Open source.|https://github.com/kliment/Printrun|{{AUR|printrun}}}}<br />
* {{App|[[Wikipedia:Repetier-Host|Repetier-Host]]|Combined slicer and control software for 3D printers. Closed source.|https://www.repetier.com/|{{AUR|repetier-host}}}}<br />
<br />
==== Electronics ====<br />
<br />
See also [[Wikipedia:Comparison of EDA software]].<br />
<br />
===== Digital logic =====<br />
<br />
Digital logic software are mainly simple educational tools that intended for only designing and simulating logic circuits.<br />
<br />
* {{App|Digital|Interactive simulator similiar to the discontinued Logisim. Features Karnaugh maps, logic tables, FSM editor, VHDL export and more, written in Java.|https://github.com/hneemann/Digital|{{AUR|digital}}}}<br />
* {{App|glogic|An educational graphical logic circuit simulator, written in Python.|https://launchpad.net/glogic|{{AUR|glogic}}}}<br />
* {{App|GTKWave|Fully featured GTK-based wave viewer which reads LXT, LXT2, VZT, FST, and GHW files as well as standard Verilog VCD/EVCD files and allows their viewing.|https://gtkwave.sourceforge.net/|{{Pkg|gtkwave}}}}<br />
* {{App|Logisim|Educational digital logic design and simulation software, written in Java, officially its development has stopped.|https://sourceforge.net/projects/circuit/|{{AUR|logisim}}}}<br />
* {{App|Logisim Evolution|Project which continue the development of the original Logisim with new features, written in Java.|https://github.com/reds-heig/logisim-evolution|{{AUR|logisim-evolution-git}}}}<br />
* {{App|PulseView|Logic analyzer, oscilloscope and MSO GUI.|https://sigrok.org/wiki/PulseView|{{Pkg|pulseview}}}}<br />
* {{App|SmartSim|Simple and beautiful digital logic circuit design and simulation software, mainly target teachers and students, very lightweight and cross platform, GPL licensed, written in Vala.|https://smartsim.org.uk|{{AUR|smartsim-git}}}}<br />
* {{App|WaveDrom editor|Timing diagram rendering in real-time from simple textual description. Can also be edited and embedded in the browser.|https://wavedrom.com/|{{AUR|wavedrom-editor}}}}<br />
<br />
===== HDL =====<br />
<br />
Also see [[Wikipedia:Hardware description language]].<br />
<br />
* {{App|Gowin EDA Edu IDE|An IDE for Gowin's FGPA devices, including Sipeed Tang Nano and Sipeed Tang Nano 4K.|http://www.gowinsemi.com.cn/faq.aspx|{{AUR|gowin-eda-edu-ide}}}}<br />
* {{App|[[Intel Quartus Prime]]|A set of design tools for Intel's FPGA devices that includes Quartus Prime, ModelSim-Intel, HLS Compiler, etc.|https://www.intel.com/content/www/us/en/software/programmable/overview.html|{{AUR|quartus-free}}}}<br />
* {{App|[[Lattice Diamond]]|A set of design tools for Lattice's FPGA chips.|https://www.latticesemi.com|{{AUR|lattice-diamond}}}}<br />
* {{App|[[Microsemi Libero]]|Development tools for designing with Microsemi's PolarFire, IGLOO2, SmartFusion2, RTG4, SmartFusion, IGLOO, ProASIC3 and Fusion families.|https://www.microsemi.com/product-directory/design-resources/1750-libero-soc#overview|see [[Microsemi Libero]]}}<br />
* {{App|[[Xilinx ISE WebPACK]]|FPGA programmable logic design suit.|https://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.html|see [[Xilinx ISE WebPACK]]}}<br />
* {{App|GHDL|Free and Open Source VHDL 2008/93/87 analyzer, compiler and simulator.|https://github.com/ghdl/ghdl|{{AUR|ghdl-gcc-git}}}}<br />
* {{App|OpenFPGAloader|Universal utility for programming FPGA. Try {{AUR|openfpgaloader-git}} if your board is not managed by the stable version.|https://github.com/trabucayre/openFPGALoader|{{Pkg|openfpgaloader}}}}<br />
* {{App|[[Wikipedia:Verilator|Verilator]]|A Verilog/SystemVerilog simulator, performs lint code-quality checks, compile to threaded C++ code for simulation.|https://verilator.org|{{Pkg|verilator}}}}<br />
* {{App|iverilog|Icarus Verilog compiler and simulation tool (slower but older than Verilator).|http://iverilog.icarus.com/|{{Pkg|iverilog}}}}<br />
* {{App|VTR|Verilog to Routing, Open Source CAD Flow for FPGA ResearchVerilog to Route.|https://verilogtorouting.org|{{Pkg|vtr}}}}<br />
<br />
===== MCU IDE and programmers =====<br />
<br />
* {{App|[[Arduino]]|Arduino prototyping platform SDK.|https://www.arduino.cc/en/Main/Software|{{Pkg|arduino}}}}<br />
* {{App|avrcalc|Calculator to speed development of Atmel AVRs.|https://sourceforge.net/projects/avrcalc|{{AUR|avrcalc}}}}<br />
* {{App|AVRDUDE|Download/upload/manipulate the ROM and EEPROM contents of AVR microcontrollers.|https://www.nongnu.org/avrdude/|{{Pkg|avrdude}}}}<br />
* {{App|dfu-util|Device firmware update (DFU) USB programmer.|https://dfu-util.sourceforge.net/|{{Pkg|dfu-util}}}}<br />
* {{App|SPIPGM|Tool for programming serial SPI FlashROM memories attached to PC via parallel port cable.|http://rayer.g6.cz/programm/programe.htm|{{AUR|spipgm-bin}}}}<br />
* {{App|esp-idf|Espressif IoT Development Framework. Official development framework for ESP32.|https://github.com/espressif/esp-idf|{{AUR|esp-idf}}}}<br />
* {{App|platformio|Collaborative platform for embedded development, embedded development, with debugger, unit testing, code analysis. Default IDE is [[VSCode]], but can be used by Atom, Eclipse, Emacs Qt Creator, Vim and several other IDE. Core CLI utils.|https://platformio.org/|{{AUR|platformio}}}}<br />
<br />
===== Electronic circuit simulation and schematic capture editing =====<br />
<br />
* {{App|easy_spice|Electronic circuit simulator. SPICE frontend, using gschem for schematics and ngspice as simulator.|http://easy-spice.sourceforge.net|{{AUR|easy_spice}}}}<br />
* {{App|[[Wikipedia:GNU Circuit Analysis Package|gnucap]]|GNU circuit simulator.|http://gnucap.org|{{AUR|gnucap}}}}<br />
* {{App|gspiceui|GUI to various freely available Spice electronic ciruit simulators.|http://users.tpg.com.au/micksw012/gspiceui.html|{{AUR|gspiceui}}}}<br />
* {{App|[[Wikipedia:Oregano (software)|Oregano]]|Graphical software application for schematic capture and simulation of electrical circuits. The actual simulation is done by the [[Wikipedia:Ngspice|ngspice]] or [[Wikipedia:GNU Circuit Analysis Package|Gnucap]] engines.|https://github.com/drahnr/oregano|{{AUR|oregano}}}}<br />
* {{App|[[Wikipedia:ngspice|ngspice]]|The established Linux circuit simulator. Open source successor of the [[Wikipedia:SPICE|spice3f5]] code. Has the most versatile user interface; supporting scripting within the circuit descriptions, use through an interpreter, as a C library, through tcl or various external wrappers (e.g., Python).|http://ngspice.sourceforge.net/|{{Pkg|ngspice}}}}<br />
* {{App|[[Wikipedia:Quite Universal Circuit Simulator|Qucs]]|Electronics circuit simulator application that gives you the ability to set up a circuit with a graphical user interface and simulate its large-signal, small-signal and noise behaviour.|https://qucs.sourceforge.net|{{AUR|qucs}}}}<br />
* {{App|qucs-s|Electronics circuit simulator that gives you the ability to set up a circuit with a GUI and simulate it. Fork of qucs that uses external, better, programs to do actual simulation.|https://ra3xdh.github.io/|{{AUR|qucs-s}}}}<br />
* {{App|Xyce|SANDIA Xyce is an open source, SPICE-compatible, high-performance analog circuit simulator, capable of solving extremely large circuit problems by supporting large-scale parallel computing platforms.|https://xyce.sandia.gov https://github.com/Xyce/Xyce|{{AUR|xyce-serial}}}}<br />
<br />
===== Electronic design and schematic capture editing =====<br />
<br />
* {{App|asco|SPICE Circuit Optimizer.|http://asco.sourceforge.net|{{AUR|asco}}}}<br />
* {{App|[[Wikipedia:Fritzing|Fritzing]]|Easy to use program to draw good-looking circuit diagrams, and also create schematics and PCBs.|https://fritzing.org/home/|{{AUR|fritzing}}}}<br />
* {{App|[[gEDA]]|Full suite and toolkit of Electronic Design Automation tools that are used for electrical circuit design, schematic capture, simulation, prototyping, and production.|http://www.geda-project.org/|{{AUR|geda-gaf}}}}<br />
* {{App|[[gEDA]] PCB|Interactive printed circuit board editor.|http://pcb.geda-project.org/|{{AUR|pcb}}}}<br />
* {{App|[[Wikipedia:KiCad|KiCad]]|Software suite for electronic design automation (EDA) that facilitates the design of schematics for electronic circuits and their conversion to PCB (printed circuit board).|https://kicad.org/|{{Pkg|kicad}}}}<br />
* {{App|QElectroTech|Application used to draw advanced electrical circuits.|https://qelectrotech.org/|{{AUR|qelectrotech}}}}<br />
<br />
=== Telecommunication ===<br />
<br />
* {{App|[[GNU Radio]]|Software development toolkit that provides signal processing blocks to implement software radios.|https://www.gnuradio.org/|{{Pkg|gnuradio}}}}<br />
* {{App|Gqrx|Software defined radio receiver implemented using GNU Radio and the Qt GUI toolkit.|https://gqrx.dk/|{{Pkg|gqrx}}}}<br />
* {{App|Pothos|The Pothos project is a complete data-flow framework for creating topologies of interconnected processing blocks. |https://github.com/pothosware/PothosCore/wiki|{{AUR|pothos}}, {{AUR|pothos-git}}}}<br />
* {{App|SDR#|The most popular SDR program.|https://airspy.com/|{{AUR|sdrsharp}}}}<br />
* {{App|SigDigger|Qt-based digital signal analyzer, using Suscan core and Sigutils DSP library.|https://github.com/BatchDrake/SigDigger|{{AUR|sigdigger-git}}}}<br />
<br />
==== Amateur radio ====<br />
<br />
See the main article: [[Amateur radio#Software]].<br />
<br />
See also [[Wikipedia:List of software-defined radios]].<br />
<br />
=== Simulation modeling ===<br />
<br />
* {{App|[[Wikipedia:Flight Gear|Flight Gear]]|Open-source, multi-platform atmospheric and orbital flight simulator with a flight dynamics engine (JSBSim) that is part of a [https://web.archive.org/web/20201115084247/https://nescacademy.nasa.gov/src/flightsim/Reports/aiaa-15-1810-EOM_chkcases-II.pdf 2015 NASA benchmark] to judge new simulation code to space industry standards.|https://www.flightgear.org/|{{AUR|flightgear}}}}<br />
* {{App|[[Wikipedia:Gephi|gephi]]|Gephi is an open-source network analysis and visualization software package written in Java.|https://gephi.org/|{{Pkg|gephi}}}}<br />
* {{App|golly|Golly is an open source, cross-platform application for exploring Conway's Game of Life and many other types of cellular automata.|https://golly.sourceforge.net/|{{AUR|golly}}}}<br />
* {{App|Netlogo|NetLogo is a multi-agent programmable modeling environment.|http://ccl.northwestern.edu/netlogo/|{{AUR|netlogo}}}}<br />
* {{App|[[Wikipedia:AnyLogic|AnyLogic]]|AnyLogic is a cross-platform proprietary multimethod simulation modeling tool, which is also available for personal use.|https://www.anylogic.com/|{{AUR|anylogic-ple}}, {{AUR|anylogic-university}}, {{AUR|anylogic-professional}}}}<br />
<br />
=== Computer science ===<br />
<br />
==== Architecture ====<br />
<br />
* {{App|edumips64|Cross-platform educational MIPS64 CPU simulator.|https://edumips.org/|{{AUR|edumips64}}}}<br />
* {{App|Qiskit Aer|A high performance simulator for quantum circuits that includes noise models.|https://github.com/Qiskit/qiskit-aer|{{AUR|python-qiskit-aer-gpu}}}}<br />
* {{App|QtMips|MIPS CPU simulator for education purposes with pipeline and cache visualization.|https://github.com/cvut/QtMips|{{AUR|qtmips}}}}<br />
* {{App|QtRvSim|RISC-V CPU simulator for education purposes.|https://github.com/cvut/qtrvsim|{{AUR|qtrvsim}}}}<br />
<br />
==== Artificial intelligence ====<br />
<br />
See also [[Wikipedia:Comparison of deep learning software]].<br />
<br />
* {{App|[[Wikipedia:Fast Artificial Neural Network|Fast Artificial Neural Network]]|Library for developing feedforward Artificial Neural Networks.|http://leenissen.dk/fann/wp/|{{AUR|fann}}}}<br />
* {{App|[[Wikipedia:Mycroft (software)|Mycroft]]|Intelligent personal assistant and knowledge navigator with speech recognition.|https://mycroft.ai/|{{AUR|mycroft-core}}}}<br />
* {{App|[[Wikipedia:Orange (software)|Orange]]|Data visualization, machine learning and data mining toolkit, accessible via visual programming and Python.|https://orange.biolab.si/|{{AUR|python-orange}}}}<br />
* {{App|[[Wikipedia:Torch (machine learning)|Torch]]|Machine learning library, scientific computing framework, and script language based on LuaJIT.|http://torch.ch/|{{AUR|torch7-git}}}}<br />
* {{App|[[Wikipedia:X Neural Switcher|X Neural Switcher]]|Automatic (intelligent) keyboard layout adaption.|https://xneur.ru/|{{AUR|xneur-devel-git}}, {{AUR|gxneur}}}}<br />
* {{App|[[Wikipedia:Tensorflow|Tensorflow]]|An end-to-end open source machine learning platform.|https://www.tensorflow.org/ |{{Pkg|python-tensorflow}}, with non x86-64 CPU optimization {{Pkg|python-tensorflow-opt}}, with CUDA {{Pkg|python-tensorflow-cuda}}, with CUDA and with non x86-64 CPU optimizations {{Pkg|python-tensorflow-opt-cuda}}}}<br />
* {{App|[[Wikipedia:PyTorch|PyTorch]]|An open source machine learning framework that accelerates the path from research prototyping to production deployment.|https://pytorch.org/|{{Pkg|python-pytorch}}, with CUDA {{Pkg|python-pytorch-cuda}}}}<br />
* {{App|[[Wikipedia:Theano (software)|Theano]]|Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently.|http://deeplearning.net/software/theano/|{{AUR|python-theano}}}}<br />
<br />
==== Distributed systems ====<br />
<br />
* {{App|[[Wikipedia:SimGrid|SimGrid]]|A scientific instrument to study large-scale distributed systems.|https://simgrid.org/|{{AUR|simgrid}}}}<br />
* {{App|Shadow|An open-source distributed system/network simulator/emulator hybrid (e.g. for [[Tor]] and [[Bitcoin]]).|https://shadow.github.io/|{{AUR|tor-shadow}}}}<br />
<br />
==== Networking ====<br />
<br />
* {{App|CORE|Common Open Research Emulator.|https://www.nrl.navy.mil/Our-Work/Areas-of-Research/Information-Technology/NCS/CORE/|{{AUR|core}}}}<br />
* {{App|IMUNES|Integrated Multiprotocol Network Emulator/Simulator.|http://imunes.net/|{{AUR|imunes}}}}<br />
* {{App|[[Wikipedia:Graphical Network Simulator-3|GNS3]]|Network software emulator using a combination of virtual and real devices to simulate complex networks.|https://gns3.com/|{{AUR|gns3-gui}} (graphical user interface package), {{AUR|gns3-server}} (server package)}}<br />
* {{App|[[Wikipedia:Ns (simulator)|ns-2]]|Discrete event simulator targeted at networking research.|https://www.isi.edu/nsnam/ns/|{{AUR|ns}}}}<br />
* {{App|[[Wikipedia:Ns (simulator)|ns-3]]|Discrete-event network simulator for Internet systems.|https://www.nsnam.org/|{{AUR|ns3}}}}<br />
* {{App|[[Wikipedia:OMNeT++|OMNeT++]]|Component-based simulation package designed for modeling communication networks.|https://omnetpp.org/|{{AUR|omnetpp}}}}<br />
<br />
==== Photogrammetry ====<br />
<br />
See also [[Wikipedia:Comparison_of_photogrammetry_software]].<br />
<br />
* {{App|OpenMVS|A library for computer-vision scientists and especially targeted to the Multi-View Stereo reconstruction community. |https://cdcseacave.github.io|{{AUR|openmvs}}}}<br />
* {{App|OpenMVG|OpenMVG provides an end-to-end 3D reconstruction from images framework compounded of libraries, binaries, and pipelines.|https://github.com/openMVG/openMVG|{{AUR|openmvg-git}}}}<br />
* {{App|AliceVision|Photogrammetric Computer Vision Framework|https://alicevision.org/|{{Pkg|alice-vision}}}}</div>Betseghttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=723083Arch is the best2022-03-15T15:32:38Z<p>Betseg: translation section was removed and the translation programs were discussed to be removed</p>
<hr />
<div>[[Category:About Arch]]<br />
[[ja:Arch は最高]]<br />
[[ru:Arch is the best]]<br />
[[zh-hans:Arch is the best]]<br />
The '''Arch is the best''' project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which gives proof of Arch's superiority.<br />
<br />
== History ==<br />
<br />
The visionary project was originally devised in April 2008 by long time Arch community member [https://bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". It was announced to the world with a [https://bbs.archlinux.org/viewtopic.php?id=47306 forum post], thus illuminating other people's minds, who immediately started porting it to multiple different languages, both programming and verbal, so that every human being on the planet could fully appreciate and benefit from this revolutionary discovery.<br />
<br />
== The code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
;1C&#58;Enterprise:A procedural domain-specific compiled dynamically-typed programming language mostly similar to VisualBasic which is used in "1C:Enterprise" products widespread in Russia and other CIS countries.<br />
<br />
Предупреждение("Arch is the best!");<br />
<br />
;ABAP: Advanced Business Application Programming language.<br />
<br />
REPORT zwhat_is_the_best.<br />
WRITE 'Arch is the best'.<br />
<br />
;Ada: A systems critical programming language.<br />
<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end ArchIsTheBest;<br />
<br />
;APL: A Programming Language.<br />
<br />
'Arch is the best!'<br />
<br />
;AppleScript: A scripting language created by Apple Inc. and built into the Classic Mac OS since System 7 and into all versions of macOS.<br />
<br />
display alert "Arch is the best!"<br />
say "Indeed, Arch is the best."<br />
<br />
;ArnoldC: Programming language based on the one-liners of Arnold Schwarzenegger.<br />
<br />
IT'S SHOWTIME<br />
TALK TO THE HAND "Arch is the best!"<br />
YOU HAVE BEEN TERMINATED<br />
<br />
;ATS: A functional programming language that uses dependent types to improve programs' reliability.<br />
<br />
implement main () = println! "Arch is the best!"<br />
<br />
;Awk: A data-driven programming language designed for processing text-based data.<br />
<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
;BASIC: A scripting language that one of the most commonly used computer programming languages in the 1960's, considered an easy step for students to learn before more powerful languages such as FORTRAN.<br />
<br />
10 PRINT "Arch is the best!"<br />
<br />
;Batch: A scripting language for Windows that can be used to automate tasks or just have some fun.<br />
<br />
@echo off<br />
echo Arch is the best!<br />
pause<br />
<br />
;Befunge: Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
; BIRL: Like ArnoldC, but for Bambam[https://www.youtube.com/watch?v=3_qEE2i6h5Q].<br />
<br />
HORA DO SHOW<br />
CE QUER VER ESSA PORRA? ("Arch is the best!\n");<br />
BORA CUMPADE 0;<br />
BIRL<br />
<br />
;Boo:A stablished object oriented statically typed programming language for .NET and Mono with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features such as macros and custom compilation pipelines.<br />
<br />
print "Arch is the best!"<br />
<br />
;Bourne shell: The original program, should be compatible with any shell.<br />
<br />
#!/bin/sh<br />
echo "Arch is the best!"<br />
<br />
;Bourne shell (Alternate):Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
<br />
#!/bin/sh<br />
yes Arch is the best!<br />
<br />
;brainfuck: Doesn't the language name explain it?<br />
<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
;C: Note the three space indenting used in this project, much like that used by other superior beings.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main(void)<br />
{<br />
puts("Arch is the best!");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;C#: Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
<br />
using System;<br />
Console.WriteLine ("Arch is the best!");<br />
<br />
;C++:Arch == Linux++<br />
<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;COBOL:A simple, lightweight programming language.<br />
<br />
IDENTIFICATION DIVISION.<br />
PROGRAM-ID. TheBest.<br />
<br />
PROCEDURE DIVISION.<br />
DISPLAY "Arch is the best!".<br />
STOP RUN.<br />
<br />
;CoffeeScript: A programming language that transcompiles to JavaScript.<br />
<br />
alert 'Arch is the best!'<br />
<br />
;Clojure: A Lisp dialect that runs on the JVM.<br />
<br />
(prn "Arch is the best!")<br />
<br />
;Common Lisp: A Lisp dialect<br />
<br />
(princ "Arch is the best!")<br />
<br />
;Crystal: An object-oriented, Ruby-like language.<br />
<br />
puts "Arch is the best!"<br />
<br />
;Crystal (through web server): For distributing the message to multiple friends at once.<br />
<br />
# For giving the message to your friends<br />
require "http/server"<br />
<br />
server = HTTP::Server.new(80) do |context|<br />
context.response.content_type = "text/plain"<br />
context.response.print "Arch is the best!"<br />
end<br />
<br />
puts "Listening."<br />
server.listen<br />
<br />
;csh: A C-like shell.<br />
<br />
#!/bin/csh<br />
echo "Arch is the best!"<br />
<br />
;CSS: A stylesheet language, heavily used for styling web pages.<br />
<br />
body * {<br />
display: none;<br />
}<br />
<br />
body::before {<br />
content: "Arch is the best!";<br />
font-family: monospace;<br />
font-size: 2.7rem;<br />
position: absolute;<br />
left: 50%;<br />
top: 50%;<br />
transform: translate(-50%, -50%);<br />
}<br />
<br />
;D: A C-style language. The benefits of hindsight, with modern conveniences.<br />
<br />
import std.stdio : writeln;<br />
void main()<br />
{<br />
writeln("Arch is the best");<br />
}<br />
<br />
;Dart: Google's javascript killer<br />
<br />
main(){<br />
print('Arch is the best');<br />
}<br />
<br />
;Dogescript: Doge-friendly JavaScript<br />
<br />
console.loge with ' So Arch'<br />
console.loge with ' Much Good'<br />
console.loge with ' Wow'<br />
<br />
;Ebuild: Gentoo's build script format.<br />
<br />
DESCRIPTION="Arch is the best!"<br />
SRC_URI="<nowiki>https://wiki.archlinux.org/index.php/Arch_is_the_best</nowiki>"<br />
<br />
LICENSE="GFDL_1.3"<br />
SLOT="0"<br />
KEYWORDS=""<br />
IUSE=""<br />
<br />
DEPEND=""<br />
RDEPEND=""<br />
<br />
src_compile() {<br />
einfo "Arch is the best!"<br />
}<br />
<br />
;Emacs Lisp: A dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors<br />
<br />
(message "Arch is the best!")<br />
<br />
;Emojicode: A delimiter-less, object oriented, imperative, high-level, hybrid language with emojis as fix points and methods.<br />
<br />
🏁 🍇<br />
😀 🔤Arch is the best!🔤❗️<br />
🍉<br />
<br />
;Elixir: A dynamic, functional language designed for building scalable and maintainable applications<br />
<br />
IO.puts "Arch is the best!"<br />
<br />
;Erlang: A concurrent, garbage-collected programming language and runtime system.<br />
<br />
-module(arch).<br />
-export([is_the_best/0]).<br />
is_the_best() -> io:fwrite("Arch is the best!\n").<br />
<br />
;Or using message passing between processes<br />
<br />
-module(arch).<br />
-export([ultimate_question/0,the_answer/0]).<br />
the_answer() -><br />
receive<br />
{Client,who_is_the_best} -><br />
Client ! {self(),"Arch is the best!"};<br />
{Client,_} -><br />
Client ! {self(),"Taco Taco Taco!"}<br />
end,<br />
the_answer().<br />
ultimate_question() -><br />
Pid = spawn(arch,the_answer,[]),<br />
Pid ! {self(),who_is_the_best},<br />
receive<br />
{Pid,Response} -> io:format("~s~n",[Response])<br />
end.<br />
<br />
;F#: A strongly-typed, functional-first programming language for writing simple code to solve complex problems.<br />
<br />
printfn "Arch is the best!"<br />
<br />
;Factor: High-level stack-based language.<br />
<br />
"Arch is the best" print<br />
<br />
;FIM++: A wordy, imperative, dynamically-typed, and interpreted language that can use Java classes.<br />
<br />
Dear Princess Celestia: Letter About Arch Linux.<br />
Today I learned:<br />
I wrote "Arch is the best!".<br />
Your faithful student, Twilight Sparkle<br />
<br />
;Fish: The user-friendly command line shell.<br />
<br />
function arch_is_the_best --on-event fish_prompt<br />
echo -ne "\e[94mArch is the best!\e[0m"<br />
end<br />
<br />
;Forth:Stack-based language.<br />
<br />
." Arch is the best" cr -- kiss way<br />
<br />
;Fortran95<br />
<br />
program arch<br />
print *,"Arch is the best!"<br />
end program arch<br />
<br />
;Genie: A new programming language, that allows for a more modern programming style while being able to effortlessly create and use GObjects natively.<br />
<br />
init<br />
print "Arch is the best"<br />
<br />
;Gjs: A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
;Gleam: A fast, friendly, and functional language for building type-safe, scalable systems.<br />
<br />
import gleam/io<br />
<br />
pub fn main() {<br />
io.println("Arch is the best!")<br />
}<br />
<br />
;Go: A language created by Google that's a love child between C, C++ and Python.<br />
<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() {<br />
fmt.Println("Arch is the best!")<br />
}<br />
<br />
;Groovy: An agile and dynamic language for the Java Virtual Machine.<br />
<br />
println 'Arch is the best!' <br />
<br />
;Haskell: The language where IO is easy and unproblematic.<br />
<br />
main = putStrLn "Arch is the best!"<br />
<br />
;HTML: A markup language used to create and define web pages and their content.<br />
<br />
{{bc|1=<br />
<!DOCTYPE html><br />
<html lang='en'><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
<p>Arch is the best!</p><br />
</body><br />
</html><br />
}}<br />
<br />
;Idris: A general purpose pure functional programming language with dependent types. Haskell, but crazier.<br />
<br />
module Main<br />
<br />
main : IO ()<br />
main = putStrLn "Arch is the best!"<br />
<br />
;INTERCAL: "Designed very early one May morning in 1972 by two hackers who are still trying to live it down."<br />
<br />
PLEASE NOTE THAT THIS WAS MADE FOR C-INTERCAL<br />
DO ,10 <- #18<br />
DO ,10SUB#1 <- #126<br />
DO ,10SUB#2 <- #52<br />
DO ,10SUB#3 <- #136<br />
PLEASE DO ,10SUB#4 <- #176<br />
DO ,10SUB#5 <- #18<br />
DO ,10SUB#6 <- #110<br />
DO ,10SUB#7 <- #200<br />
PLEASE DO ,10SUB#8 <- #202<br />
DO ,10SUB#9 <- #214<br />
DO ,10SUB#10 <- #24<br />
DO ,10SUB#11 <- #112<br />
PLEASE DO ,10SUB#12 <- #162<br />
DO ,10SUB#13 <- #190<br />
DO ,10SUB#14 <- #160<br />
PLEASE DO ,10SUB#15 <- #216<br />
DO ,10SUB#16 <- #160<br />
DO ,10SUB#17 <- #170<br />
PLEASE DO ,10SUB#18 <- #52<br />
DO READ OUT ,10<br />
DO GIVE UP<br />
<br />
Also a much larger [https://gist.github.com/ISSOtm/33a486dac52626160131d8daa7f16fc6 ASCII-transcoding version].<br />
<br />
(Non-portable C-INTERCAL I/O had to be used, since INTERCAL-72 does not allow arbitrary characters.)<br />
<br />
;Io: A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript.<br />
<br />
"Arch is the best!" println<br />
<br />
;Java: An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
;JavaScript: Also known as ECMAScript, a prototype-based object-oriented scripting language.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;JavaScript (in a web browser)<br />
<br />
alert('Arch is the best!');<br />
<br />
;Julia: A fresh approach to numerical computing.<br />
<br />
println("Arch is the best!")<br />
<br />
;Kotlin: JetBrains' attempt to get world domination.<br />
<br />
fun main() {<br />
println("Arch is the best!")<br />
}<br />
<br />
;LaTeX: A typesetting framework and ecosystem implemented on top of TeX (ironically, more famous than TeX). "The" framework for typesetting mathematical equations and diagrams.<br />
<br />
\documentclass{minimal}<br />
<br />
\begin{document}<br />
Arch is the best!<br />
\end{document}<br />
<br />
;LilyPond: A powerful music engraving program with an intuitive LaTeX-like input language.<br />
<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
;LOLCODE: Why not?<br />
<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
;Lua: A lightweight, extensible programming language.<br />
<br />
print "Arch is the best!"<br />
<br />
;Malbolge: A language created to make programming as hard as possible.<br />
<br />
bCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]<br />
\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9y16543210/.-,+*)('&}C#"!~}|{zyxwvu<br />
tsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK-CgGFEDCBA@?>=<;:98x6543210/<br />
.-,+*)('&%$#"!~}|u;yxwpun4rqpRhmf,jihgIe^$ba`_^]\[ZYXQVUTMqQPONMFjJI+A<br />
eEDC%A:^>=<|:981U54t21*/.-&Jk)('&}C#"!aw={z\xwvun4lqpi/mlkjiKaf_%p<br />
<br />
;Matlab: A proprietary programming language developed by MathWorks.<br />
<br />
disp('Arch is the best!');<br />
<br />
;Morpho: Morpho is a multi-paradigm programming language that supports procedural, object-oriented and functional programming.<br />
<br />
writeln("Arch is the best!");<br />
<br />
;Myrddin: A system programming language which aims for control and simplicity, featuring strong type checking, generics, type inference, closures, and traits.<br />
<br />
/* mbld -b aitb aitb.myr */<br />
use std<br />
const main = {<br />
std.put("Arch is the best!\n")<br />
}<br />
<br />
;NASM / Yasm (i686): Notice that the string is in the .text section, which feels superior.<br />
<br />
;nasm -f elf32 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
_start:<br />
mov edx,len<br />
mov ecx,msg<br />
mov ebx,1<br />
mov eax,4<br />
int 0x80<br />
xor ebx,ebx<br />
mov eax,1<br />
int 0x80<br />
msg: db "Arch is the best!",10<br />
len equ $-msg<br />
<br />
;NASM / Yasm (x86_64) :Featuring AMD's sexy new instruction, ''syscall''.<br />
<br />
;nasm -f elf64 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
s:<br />
db 'Arch is the best!',0ah<br />
l equ $-s<br />
_start:<br />
mov rax,1<br />
mov rdi,1<br />
mov rsi,s<br />
mov rdx,l<br />
syscall<br />
mov rax,60<br />
xor rdi,rdi<br />
syscall<br />
<br />
;Nim:Portable lightweight programming language.<br />
<br />
echo "Arch is the best!"<br />
<br />
;node.js: a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications, using an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;node.js (http server): A node.js program to beam the info that 'Arch is the best!' using HTTP<br />
<br />
require('http').createServer((req,res) => {res.writeHead(200, {'Content-Type': 'text/plain'});res.end('Arch is the best!');}).listen(80);<br />
<br />
;Objective-C: A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
<br />
NSLog(@"Arch is the best!");<br />
<br />
;OCaml: The main implementation of the Caml programming language.<br />
<br />
print_endline "Arch is the best!"<br />
<br />
;Octave: High-level interpreted language, primarily intended for numerical computations.<br />
<br />
printf("Arch is the best!\n")<br />
<br />
;Ook!: brainfuck, translated to Orangutan.<br />
<br />
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.<br />
<br />
;Pascal: An influential imperative and procedural programming language.<br />
<br />
program ArchIsTheBest;<br />
begin<br />
writeln('Arch is the best!');<br />
end.<br />
<br />
;PDF: A language used for talking to printers.<br />
<br />
%PDF-1.1<br />
<br />
1 0 obj<br />
<< /Type /Catalog<br />
/Pages 2 0 R<br />
>><br />
endobj<br />
<br />
2 0 obj<br />
<< /Type /Pages<br />
/Kids [3 0 R]<br />
/Count 1<br />
/MediaBox [0 0 595 842]<br />
>><br />
endobj<br />
<br />
3 0 obj<br />
<< /Type /Page<br />
/Parent 2 0 R<br />
/Resources<br />
<< /Font<br />
<< /F1<br />
<< /Type /Font<br />
/Subtype /Type1<br />
/BaseFont /Times-Roman<br />
>><br />
>><br />
>><br />
/Contents 4 0 R<br />
>><br />
endobj<br />
<br />
4 0 obj<br />
<< /Length 48 >><br />
stream<br />
BT<br />
/F1 72 Tf<br />
55 460 Td<br />
(Arch is the best!) Tj<br />
ET<br />
endstream<br />
endobj<br />
<br />
xref<br />
0 5<br />
0000000000 65535 f <br />
0000000016 00000 n <br />
0000000066 00000 n <br />
0000000148 00000 n <br />
0000000303 00000 n <br />
trailer<br />
<< /Root 1 0 R<br />
/Size 5<br />
>><br />
startxref<br />
402<br />
%%EOF<br />
<br />
;Perl: A high-level, general-purpose, interpreted, dynamic programming language.<br />
<br />
#!/usr/bin/env perl<br />
print "Arch is the best!\n";<br />
<br />
;Perl 6: The latest member of the Perl family.<br />
<br />
#!/usr/bin/env perl6<br />
say 'Arch is the best!';<br />
<br />
;PHP: A general-purpose scripting language.<br />
<br />
<?php<br />
echo "Arch is the best!\n";<br />
<br />
;Pixilang: Make me pixels.<br />
<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
;Pony:An object-oriented, actor-model, capabilities-secure, high performance programming language.<br />
<br />
actor Main<br />
new create(env: Env) =><br />
env.out.print("Arch is the best!")<br />
<br />
;Portable GNU assembler: {{ic|as -o arch.o arch.s && ld -o arch -O0 arch.o}}<br />
<br />
.section .data<br />
archIsBest:<br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax<br />
xorl %ebx, %ebx<br />
incl %ebx<br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx<br />
int $0x80<br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx<br />
int $0x80<br />
<br />
;PostScript: An older language used for talking to printers.<br />
<br />
%!PS<br />
/monospace 60 selectfont<br />
10 420 moveto<br />
(Arch is the best!) show<br />
showpage<br />
<br />
;Powershell: A task-based command-line shell and scripting language built on .NET.<br />
<br />
Write-Output "Arch is the best!"<br />
<br />
;Processing: An open source programming language and IDE built for the electronic arts and visual design.<br />
<br />
println("Arch is the best!");<br />
<br />
;Prolog: A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
<br />
format('Arch is the best~n',[]).<br />
<br />
;Python: A general-purpose high-level programming language.<br />
<br />
print('Arch is the best!')<br />
<br />
;QBASIC: An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
<br />
PRINT "Arch is the best!"<br />
<br />
;R: A language for statistical computing (and much more!).<br />
<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
;Racket: A general purpose, multi-paradigm programming language in the Lisp-Scheme family.<br />
<br />
#lang racket<br />
<br />
(let ([str "Arch is the best!\n"])<br />
(write-string str)<br />
(values))<br />
<br />
;Ruby: A dynamic, reflective, general purpose object-oriented programming language.<br />
<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
;Rust: Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.<br />
<br />
fn main() {<br />
println!("Arch is the best!");<br />
}<br />
<br />
;Salt: Salt is an automation framework<br />
<br />
salt '*' event.fire '{"data":"Arch Is the best!"}' 'arch/best'<br />
<br />
;Scala: A multi paradigm language that runs on the JVM.<br />
<br />
object ArchIsBest extends App {<br />
println("Arch is the best!")<br />
}<br />
<br />
;Scheme: A dialect of Lisp.<br />
<br />
(display "Arch is the best!\n")<br />
<br />
;Seed: A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
;Shakespeare Programming Language: Designed to "''make a language with beautiful source code'' [...]"<br />
<br />
Arch is the Best.<br />
<br />
Arthur, a young man who is the best.<br />
Isabella, a likewise young woman who be.<br />
The Ghost, an undead who is the article.<br />
Beatrice, a young woman who is an adjective.<br />
<br />
<br />
Act I: Setting of the Variables.<br />
<br />
Scene I: Setting of Isabella and Arthur.<br />
<br />
[Enter Arthur and Isabella]<br />
<br />
Arthur:<br />
You are as dirty as the square of the sum of a rotten smelly foul devil<br />
and a vile lie! You are as bold as the sum of yourself and an evil hog!<br />
<br />
Isabella:<br />
Thou art as big as the square of a cute fair sweet flower! You are as proud<br />
as the sum of thyself and a cow.<br />
<br />
[Exit Arthur]<br />
<br />
Scene II: Setting of The Ghost.<br />
<br />
[Enter The Ghost]<br />
<br />
Isabella:<br />
You art as loving as myself. Thou are as huge as the sum of yourself and twice<br />
a red old hair. You are as cowardly as the sum of yourself and a fat goat!<br />
<br />
[Exit Isabella]<br />
<br />
Scene III: Setting of Beatrice.<br />
<br />
[Enter Beatrice]<br />
<br />
The Ghost:<br />
Thou are as good as the sum of Isabella and a mighty fine rich noble King.<br />
<br />
[Exeunt The Ghost and Beatrice]<br />
<br />
Act II: Printing Arch is the Best.<br />
<br />
Scene I: Arch.<br />
<br />
[Enter Arthur and Beatrice]<br />
<br />
Beatrice:<br />
Speak thy mind! You art as peaceful as the quotient between thyself and the<br />
clearest Lord.<br />
<br />
Arthur:<br />
Speak your mind!<br />
<br />
[Exeunt Arthur and Beatrice]<br />
<br />
[Enter Isabella and The Ghost]<br />
<br />
The Ghost:<br />
Thou are as normal as the sum of thyself and a town. Speak thy mind!<br />
<br />
Isabella:<br />
Speak your mind!<br />
<br />
[Exit Isabella]<br />
<br />
[Enter Arthur]<br />
<br />
The Ghost:<br />
Speak thy mind!<br />
<br />
[Exit Arthur]<br />
<br />
Scene II: is.<br />
<br />
[Enter Beatrice]<br />
<br />
Beatrice:<br />
Thou are as old as the sum of yourself and a nose. Speak your mind!<br />
<br />
The Ghost:<br />
You art as pretty as the sum of thyself and a face. Speak your mind.<br />
<br />
[Exit The Ghost]<br />
<br />
[Enter Arthur]<br />
<br />
Beatrice:<br />
Speak thy mind.<br />
<br />
Scene III: the.<br />
<br />
Arthur:<br />
You are as blue as the sum of yourself and a hamster. Speak thy mind!<br />
<br />
[Exit Arthur]<br />
<br />
[Enter The Ghost]<br />
<br />
Beatrice:<br />
You are as prompt as the sum of thyself and a lie! Speak your mind.<br />
<br />
[Exit Beatrice]<br />
<br />
[Enter Isabella]<br />
<br />
The Ghost:<br />
You art as happy as the sum of thyself and a large moon. Speak thy mind!<br />
<br />
[Exit The Ghost]<br />
<br />
[Enter Arthur]<br />
<br />
Isabella:<br />
Speak thy mind.<br />
<br />
[Exit Arthur]<br />
<br />
Scene IV: Best.<br />
<br />
[Enter Beatrice]<br />
<br />
Beatrice:<br />
Thou are as blue as the sum of the sum of a curse and thyself and a bad<br />
codpiece. Speak your mind! You art as lovely as the sum of the sum of the<br />
happiness and yourself and a blossoming flower. Speak thy mind.<br />
<br />
Isabella:<br />
You are as healthy as the sum of yourself and a plague! Speak thy mind.<br />
Thou art as huge as the sum of thyself and a hero. Speak your mind!<br />
<br />
[Exit Beatrice]<br />
<br />
[Enter Arthur]<br />
<br />
Isabella:<br />
You art as green as the sum of thyself and a mother. Speak your mind.<br />
<br />
[Exeunt]<br />
<br />
;Shoes: A Ruby version using Shoes for a GUI.<br />
<br />
Shoes.app :width => 135, :height => 30 do<br />
para "Arch is the Best!"<br />
end<br />
<br />
;Smalltalk: Smalltalk is an object-oriented, dynamically typed, reflective programming language.<br />
<br />
Transcript show: 'Arch is the best!'.<br />
<br />
;Solidity: Object-oriented programming language for Ethereum smart contracts.<br />
<br />
pragma solidity ^0.6.0;<br />
<br />
contract ArchIsTheBest {<br />
function archIsTheBest() external pure returns (string memory) {<br />
return "Arch is the best!";<br />
}<br />
}<br />
<br />
;SQL: Structured Query Language, the query language for relational databases<br />
<br />
SELECT 'Arch is the best!';<br />
SELECT 'Arch is the best!' from dual; -- for Oracle DB<br />
<br />
;Standard ML: A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
<br />
print "Arch is the best!\n"<br />
<br />
;Swift: A general-purpose, multi-paradigm, compiled programming language developed by Apple Inc.<br />
<br />
print("Arch is the best!")<br />
<br />
;Tcl/Tk: A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
;TeX: A typesetting language aimed at scientific publishing. Famous for giving the ability to describe complicated equations in a plain text format. The basis for the more famous LaTeX.<br />
<br />
Arch is the best!<br />
\bye<br />
<br />
;TrumpScript: A scripting language based on President Trump's words.<br />
<br />
say it with me, "Arch is the best!";<br />
america is great.<br />
<br />
;UEFI: An extensible firmware framework<br />
<br />
#include <Uefi.h><br />
EFI_STATUS EFIAPI<br />
ArchIsTheBest (<br />
IN EFI_HANDLE ImageHandle,<br />
IN EFI_SYSTEM_TABLE *SystemTable<br />
)<br />
{<br />
SystemTable -> ConOut-> OutputString(SystemTable->ConOut, L"Arch is the best!\n"); <br />
return EFI_SUCCESS;<br />
}<br />
<br />
; V: Simple, fast, safe, compiled language for developing maintainable software.<br />
<br />
fn main() {<br />
println('Arch is the best!')<br />
}<br />
<br />
;Vala: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.<br />
<br />
void main(string[] args) {<br />
stdout.printf("\nArch is the best!\n\n");<br />
}<br />
<br />
; var'aq: [http://freshmeat.sourceforge.net/projects/varaq A warrior's programming language]<br />
"Arch is the best!" cha'<br />
<br />
; Verilog: A hardware description language, standardized as IEEE 1364<br />
module top;<br />
initial $display("Arch is the best!");<br />
endmodule<br />
<br />
; VHDL: VHSIC Hardware Description Language<br />
<br />
use std.textio.all;<br />
<br />
entity top is<br />
end top;<br />
<br />
architecture behaviour of top is begin<br />
process begin<br />
write (output, String'("Arch is the best!"));<br />
wait;<br />
end process;<br />
end behaviour;<br />
<br />
;VimScript: A scripting language for the Vim text editor.<br />
<br />
echo "Arch is the best!"<br />
<br />
;Visual Basic: A third-generation event-driven programming language and integrated development environment (IDE) from Microsoft for its Component Object Model (COM) programming model.<br />
<br />
Module Arch<br />
Sub Main()<br />
MsgBox("Arch is the best!")<br />
End Sub<br />
End Module<br />
<br />
;wenyan-lang: A programming language for the ancient Chinese.<br />
<br />
吾有一言。曰「「阿祺,盡善矣。」」。書之。<br />
<br />
; Wiring (Arduino):Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
}<br />
void loop()<br />
{<br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
; Wolfram: Proprietary programming language developed by Wolfram Inc which emphasizes symbolic computation, functional programming, and rule-based programming.<br />
<br />
Print["Arch is the best"]<br />
<br />
; X11: X11 is an architecture independent system for display of graphical user interfaces.<br />
{{ic|cc -lX11 arch.c}}<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
;Z3: A theorem prover from Microsoft Research<br />
<br />
(define-const arch String "Arch is the best")<br />
(simplify (str.++ arch))<br />
<br />
;Zig: A general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software. Intends to deprecate C.<br />
<br />
const std = @import("std");<br />
<br />
pub fn main() !void {<br />
std.debug.warn("Arch is the best!\n", .{});<br />
}<br />
<br />
;Zimbu: A fast, easy to learn, and JS-like programming language.<br />
<br />
FUNC Main() int<br />
IO.write("Arch is the best!")<br />
RETURN 0<br />
}<br />
<br />
;Zsh: A UNIX command interpreter (shell) closely resembling ksh, but includes many enhancements.<br />
<br />
#!/bin/zsh -f<br />
setopt extendedglob<br />
print -- $(echoti setaf 2) ${$(<<<${${${(@j: :)${(@s:_:)${:-What_Linux_is_the_best?}}}/* (#b)([A-Z]i)/Arch $match[1]}} tr '?' '!')} $terminfo[sgr0]</div>Betseghttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=723081Arch is the best2022-03-15T15:26:28Z<p>Betseg: /* The code */ removed version from language name</p>
<hr />
<div>[[Category:About Arch]]<br />
[[ja:Arch は最高]]<br />
[[ru:Arch is the best]]<br />
[[zh-hans:Arch is the best]]<br />
The '''Arch is the best''' project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which gives proof of Arch's superiority.<br />
<br />
== History ==<br />
<br />
The visionary project was originally devised in April 2008 by long time Arch community member [https://bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". It was announced to the world with a [https://bbs.archlinux.org/viewtopic.php?id=47306 forum post], thus illuminating other people's minds, who immediately started porting it to multiple different languages, both programming and verbal, so that every human being on the planet could fully appreciate and benefit from this revolutionary discovery.<br />
<br />
== The code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
;1C&#58;Enterprise:A procedural domain-specific compiled dynamically-typed programming language mostly similar to VisualBasic which is used in "1C:Enterprise" products widespread in Russia and other CIS countries.<br />
<br />
Предупреждение("Arch is the best!");<br />
<br />
;ABAP: Advanced Business Application Programming language.<br />
<br />
REPORT zwhat_is_the_best.<br />
WRITE 'Arch is the best'.<br />
<br />
;Ada: A systems critical programming language.<br />
<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end ArchIsTheBest;<br />
<br />
;APL: A Programming Language.<br />
<br />
'Arch is the best!'<br />
<br />
;AppleScript: A scripting language created by Apple Inc. and built into the Classic Mac OS since System 7 and into all versions of macOS.<br />
<br />
display alert "Arch is the best!"<br />
say "Indeed, Arch is the best."<br />
<br />
;ArnoldC: Programming language based on the one-liners of Arnold Schwarzenegger.<br />
<br />
IT'S SHOWTIME<br />
TALK TO THE HAND "Arch is the best!"<br />
YOU HAVE BEEN TERMINATED<br />
<br />
;ATS: A functional programming language that uses dependent types to improve programs' reliability.<br />
<br />
implement main () = println! "Arch is the best!"<br />
<br />
;Awk: A data-driven programming language designed for processing text-based data.<br />
<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
;BASIC: A scripting language that one of the most commonly used computer programming languages in the 1960's, considered an easy step for students to learn before more powerful languages such as FORTRAN.<br />
<br />
10 PRINT "Arch is the best!"<br />
<br />
;Batch: A scripting language for Windows that can be used to automate tasks or just have some fun.<br />
<br />
@echo off<br />
echo Arch is the best!<br />
pause<br />
<br />
;Befunge: Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
; BIRL: Like ArnoldC, but for Bambam[https://www.youtube.com/watch?v=3_qEE2i6h5Q].<br />
<br />
HORA DO SHOW<br />
CE QUER VER ESSA PORRA? ("Arch is the best!\n");<br />
BORA CUMPADE 0;<br />
BIRL<br />
<br />
;Boo:A stablished object oriented statically typed programming language for .NET and Mono with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features such as macros and custom compilation pipelines.<br />
<br />
print "Arch is the best!"<br />
<br />
;Bourne shell: The original program, should be compatible with any shell.<br />
<br />
#!/bin/sh<br />
echo "Arch is the best!"<br />
<br />
;Bourne shell (Alternate):Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
<br />
#!/bin/sh<br />
yes Arch is the best!<br />
<br />
;brainfuck: Doesn't the language name explain it?<br />
<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
;C: Note the three space indenting used in this project, much like that used by other superior beings.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main(void)<br />
{<br />
puts("Arch is the best!");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;C#: Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
<br />
using System;<br />
Console.WriteLine ("Arch is the best!");<br />
<br />
;C++:Arch == Linux++<br />
<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;COBOL:A simple, lightweight programming language.<br />
<br />
IDENTIFICATION DIVISION.<br />
PROGRAM-ID. TheBest.<br />
<br />
PROCEDURE DIVISION.<br />
DISPLAY "Arch is the best!".<br />
STOP RUN.<br />
<br />
;CoffeeScript: A programming language that transcompiles to JavaScript.<br />
<br />
alert 'Arch is the best!'<br />
<br />
;Clojure: A Lisp dialect that runs on the JVM.<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"})<br />
<br />
(defn read-choice []<br />
(println "\nAvailable languages: ")<br />
(doall (map #(println (key %)) translations))<br />
(print "Enter language or Ctrl-c: ") (flush)<br />
(translations (read-line) :badinput))<br />
<br />
(defn arch-is-the-best []<br />
(loop [choice (read-choice)]<br />
(case choice<br />
:badinput (do (print "\nBad input!\n")<br />
(recur (read-choice)))<br />
(do (print "\n" choice "\n")<br />
(recur (read-choice))))))<br />
<br />
;or<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"<br />
"street" "Arch iz da shizzle ma nizzle"})<br />
(while 1<br />
(println "\nPick a language:\n" (map #(key %) translations) "\n language: ")<br />
(println (translations (read-line) "Not a valid language")))<br />
<br />
;or<br />
<br />
(prn "Arch is the best!")<br />
<br />
;Common Lisp: Tested on SBCL, feel free to add more of the translations.<br />
<br />
#!/usr/bin/sbcl --script<br />
(defparameter *best-list* '((English "Arch is the best!")<br />
(Chinese "Arch, 她出类拔萃!")<br />
(German "Arch ist das Beste!")<br />
(Greek "Το Arch είναι το καλύτερο!")<br />
(Latin "Arch optimum est!")<br />
(French "Arch est le meilleur!")<br />
(Polish "Arch jest najlepszy!")))<br />
(defun aitb ()<br />
(format t "Available languages: ~{~{~@(~a~)~*~}~^, ~}.~%" *best-list*)<br />
(loop for input = (progn (format t "~&Input the desired language, (or 'quit'): ~%")<br />
(force-output)<br />
(read-line))<br />
if (string-equal input "quit")<br />
do (loop-finish)<br />
else<br />
do (let ((language-def<br />
(assoc input *best-list*<br />
:key (lambda (lang) (symbol-name lang))<br />
:test #'string-equal)))<br />
(if language-def<br />
(format t "~&~A~%" (second language-def))<br />
(format t "~&Invalid language.~%"))))<br />
(format t "~&May the Arch be with you!~%"))<br />
(aitb)<br />
<br />
;Common Lisp (Alternate): Should run on any implementation (Clisp, Allegro, SBCL...)<br />
<br />
(princ "Arch is the best!")<br />
<br />
;Crystal: An object-oriented, Ruby-like language.<br />
<br />
puts "Arch is the best!"<br />
<br />
;Crystal (through web server): For distributing the message to multiple friends at once.<br />
<br />
# For giving the message to your friends<br />
require "http/server"<br />
<br />
server = HTTP::Server.new(80) do |context|<br />
context.response.content_type = "text/plain"<br />
context.response.print "Arch is the best!"<br />
end<br />
<br />
puts "Listening."<br />
server.listen<br />
<br />
;csh: A C-like shell.<br />
<br />
#!/bin/csh<br />
echo "Arch is the best!"<br />
<br />
;CSS: A stylesheet language, heavily used for styling web pages.<br />
<br />
body * {<br />
display: none;<br />
}<br />
<br />
body::before {<br />
content: "Arch is the best!";<br />
font-family: monospace;<br />
font-size: 2.7rem;<br />
position: absolute;<br />
left: 50%;<br />
top: 50%;<br />
transform: translate(-50%, -50%);<br />
}<br />
<br />
;D: A C-style language. The benefits of hindsight, with modern conveniences.<br />
<br />
import std.stdio : writeln;<br />
void main()<br />
{<br />
writeln("Arch is the best");<br />
}<br />
<br />
;Dart: Google's javascript killer<br />
<br />
main(){<br />
print('Arch is the best');<br />
}<br />
<br />
;Dogescript: Doge-friendly JavaScript<br />
<br />
console.loge with ' So Arch'<br />
console.loge with ' Much Good'<br />
console.loge with ' Wow'<br />
<br />
;Ebuild: Gentoo's build script format.<br />
<br />
DESCRIPTION="Arch is the best!"<br />
SRC_URI="<nowiki>https://wiki.archlinux.org/index.php/Arch_is_the_best</nowiki>"<br />
<br />
LICENSE="GFDL_1.3"<br />
SLOT="0"<br />
KEYWORDS=""<br />
IUSE=""<br />
<br />
DEPEND=""<br />
RDEPEND=""<br />
<br />
src_compile() {<br />
einfo "Arch is the best!"<br />
}<br />
<br />
;Emacs Lisp: A dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors<br />
<br />
(message "Arch is the best!")<br />
<br />
;Emojicode: A delimiter-less, object oriented, imperative, high-level, hybrid language with emojis as fix points and methods.<br />
<br />
🏁 🍇<br />
😀 🔤Arch is the best!🔤❗️<br />
🍉<br />
<br />
;Elixir: A dynamic, functional language designed for building scalable and maintainable applications<br />
<br />
IO.puts "Arch is the best!"<br />
<br />
;Erlang: A concurrent, garbage-collected programming language and runtime system.<br />
<br />
-module(arch).<br />
-export([is_the_best/0]).<br />
is_the_best() -> io:fwrite("Arch is the best!\n").<br />
<br />
;Or using message passing between processes<br />
<br />
-module(arch).<br />
-export([ultimate_question/0,the_answer/0]).<br />
the_answer() -><br />
receive<br />
{Client,who_is_the_best} -><br />
Client ! {self(),"Arch is the best!"};<br />
{Client,_} -><br />
Client ! {self(),"Taco Taco Taco!"}<br />
end,<br />
the_answer().<br />
ultimate_question() -><br />
Pid = spawn(arch,the_answer,[]),<br />
Pid ! {self(),who_is_the_best},<br />
receive<br />
{Pid,Response} -> io:format("~s~n",[Response])<br />
end.<br />
<br />
;F#: A strongly-typed, functional-first programming language for writing simple code to solve complex problems.<br />
<br />
printfn "Arch is the best!"<br />
<br />
;Factor: High-level stack-based language.<br />
<br />
"Arch is the best" print<br />
<br />
;FIM++: A wordy, imperative, dynamically-typed, and interpreted language that can use Java classes.<br />
<br />
Dear Princess Celestia: Letter About Arch Linux.<br />
Today I learned:<br />
I wrote "Arch is the best!".<br />
Your faithful student, Twilight Sparkle<br />
<br />
;Fish: The user-friendly command line shell.<br />
<br />
function arch_is_the_best --on-event fish_prompt<br />
echo -ne "\e[94mArch is the best!\e[0m"<br />
end<br />
<br />
;Forth:Stack-based language.<br />
<br />
." Arch is the best" cr -- kiss way<br />
<br />
;Fortran95<br />
<br />
program arch<br />
print *,"Arch is the best!"<br />
end program arch<br />
<br />
;Genie: A new programming language, that allows for a more modern programming style while being able to effortlessly create and use GObjects natively.<br />
<br />
init<br />
print "Arch is the best"<br />
<br />
;Gjs: A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
;Gleam: A fast, friendly, and functional language for building type-safe, scalable systems.<br />
<br />
import gleam/io<br />
<br />
pub fn main() {<br />
io.println("Arch is the best!")<br />
}<br />
<br />
;Go: A language created by Google that's a love child between C, C++ and Python.<br />
<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() {<br />
fmt.Println("Arch is the best!")<br />
}<br />
<br />
;Groovy: An agile and dynamic language for the Java Virtual Machine.<br />
<br />
println 'Arch is the best!' <br />
<br />
;Haskell: The language where IO is easy and unproblematic.<br />
<br />
main = putStrLn "Arch is the best!"<br />
<br />
;HTML: A markup language used to create and define web pages and their content.<br />
<br />
{{bc|1=<br />
<!DOCTYPE html><br />
<html lang='en'><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
<p>Arch is the best!</p><br />
</body><br />
</html><br />
}}<br />
<br />
;Idris: A general purpose pure functional programming language with dependent types. Haskell, but crazier.<br />
<br />
module Main<br />
<br />
main : IO ()<br />
main = putStrLn "Arch is the best!"<br />
<br />
;INTERCAL: "Designed very early one May morning in 1972 by two hackers who are still trying to live it down."<br />
<br />
PLEASE NOTE THAT THIS WAS MADE FOR C-INTERCAL<br />
DO ,10 <- #18<br />
DO ,10SUB#1 <- #126<br />
DO ,10SUB#2 <- #52<br />
DO ,10SUB#3 <- #136<br />
PLEASE DO ,10SUB#4 <- #176<br />
DO ,10SUB#5 <- #18<br />
DO ,10SUB#6 <- #110<br />
DO ,10SUB#7 <- #200<br />
PLEASE DO ,10SUB#8 <- #202<br />
DO ,10SUB#9 <- #214<br />
DO ,10SUB#10 <- #24<br />
DO ,10SUB#11 <- #112<br />
PLEASE DO ,10SUB#12 <- #162<br />
DO ,10SUB#13 <- #190<br />
DO ,10SUB#14 <- #160<br />
PLEASE DO ,10SUB#15 <- #216<br />
DO ,10SUB#16 <- #160<br />
DO ,10SUB#17 <- #170<br />
PLEASE DO ,10SUB#18 <- #52<br />
DO READ OUT ,10<br />
DO GIVE UP<br />
<br />
Also a much larger [https://gist.github.com/ISSOtm/33a486dac52626160131d8daa7f16fc6 ASCII-transcoding version].<br />
<br />
(Non-portable C-INTERCAL I/O had to be used, since INTERCAL-72 does not allow arbitrary characters.)<br />
<br />
;Io: A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript.<br />
<br />
"Arch is the best!" println<br />
<br />
;Java: An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
;JavaScript: Also known as ECMAScript, a prototype-based object-oriented scripting language.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;JavaScript (in a web browser)<br />
<br />
alert('Arch is the best!');<br />
<br />
;Julia: A fresh approach to numerical computing.<br />
<br />
println("Arch is the best!")<br />
<br />
;Kotlin: JetBrains' attempt to get world domination.<br />
<br />
fun main() {<br />
println("Arch is the best!")<br />
}<br />
<br />
;LaTeX: A typesetting framework and ecosystem implemented on top of TeX (ironically, more famous than TeX). "The" framework for typesetting mathematical equations and diagrams.<br />
<br />
\documentclass{minimal}<br />
<br />
\begin{document}<br />
Arch is the best!<br />
\end{document}<br />
<br />
;LilyPond: A powerful music engraving program with an intuitive LaTeX-like input language.<br />
<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
;LOLCODE: Why not?<br />
<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
;Lua: A lightweight, extensible programming language.<br />
<br />
print "Arch is the best!"<br />
<br />
;Malbolge: A language created to make programming as hard as possible.<br />
<br />
bCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]<br />
\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9y16543210/.-,+*)('&}C#"!~}|{zyxwvu<br />
tsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK-CgGFEDCBA@?>=<;:98x6543210/<br />
.-,+*)('&%$#"!~}|u;yxwpun4rqpRhmf,jihgIe^$ba`_^]\[ZYXQVUTMqQPONMFjJI+A<br />
eEDC%A:^>=<|:981U54t21*/.-&Jk)('&}C#"!aw={z\xwvun4lqpi/mlkjiKaf_%p<br />
<br />
;Matlab: A proprietary programming language developed by MathWorks.<br />
<br />
disp('Arch is the best!');<br />
<br />
;Morpho: Morpho is a multi-paradigm programming language that supports procedural, object-oriented and functional programming.<br />
<br />
writeln("Arch is the best!");<br />
<br />
;Myrddin: A system programming language which aims for control and simplicity, featuring strong type checking, generics, type inference, closures, and traits.<br />
<br />
/* mbld -b aitb aitb.myr */<br />
use std<br />
const main = {<br />
std.put("Arch is the best!\n")<br />
}<br />
<br />
;NASM / Yasm (i686): Notice that the string is in the .text section, which feels superior.<br />
<br />
;nasm -f elf32 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
_start:<br />
mov edx,len<br />
mov ecx,msg<br />
mov ebx,1<br />
mov eax,4<br />
int 0x80<br />
xor ebx,ebx<br />
mov eax,1<br />
int 0x80<br />
msg: db "Arch is the best!",10<br />
len equ $-msg<br />
<br />
;NASM / Yasm (x86_64) :Featuring AMD's sexy new instruction, ''syscall''.<br />
<br />
;nasm -f elf64 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
s:<br />
db 'Arch is the best!',0ah<br />
l equ $-s<br />
_start:<br />
mov rax,1<br />
mov rdi,1<br />
mov rsi,s<br />
mov rdx,l<br />
syscall<br />
mov rax,60<br />
xor rdi,rdi<br />
syscall<br />
<br />
;Nim:Portable lightweight programming language.<br />
<br />
echo "Arch is the best!"<br />
<br />
;node.js: a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications, using an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;node.js (http server): A node.js program to beam the info that 'Arch is the best!' using HTTP<br />
<br />
require('http').createServer((req,res) => {res.writeHead(200, {'Content-Type': 'text/plain'});res.end('Arch is the best!');}).listen(80);<br />
<br />
;Objective-C: A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
<br />
NSLog(@"Arch is the best!");<br />
<br />
;OCaml: The main implementation of the Caml programming language.<br />
<br />
print_endline "Arch is the best!"<br />
<br />
;Octave: High-level interpreted language, primarily intended for numerical computations.<br />
<br />
printf("Arch is the best!\n")<br />
<br />
;Ook!: brainfuck, translated to Orangutan.<br />
<br />
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.<br />
<br />
;Pascal: An influential imperative and procedural programming language.<br />
<br />
program ArchIsTheBest;<br />
begin<br />
writeln('Arch is the best!');<br />
end.<br />
<br />
;PDF: A language used for talking to printers.<br />
<br />
%PDF-1.1<br />
<br />
1 0 obj<br />
<< /Type /Catalog<br />
/Pages 2 0 R<br />
>><br />
endobj<br />
<br />
2 0 obj<br />
<< /Type /Pages<br />
/Kids [3 0 R]<br />
/Count 1<br />
/MediaBox [0 0 595 842]<br />
>><br />
endobj<br />
<br />
3 0 obj<br />
<< /Type /Page<br />
/Parent 2 0 R<br />
/Resources<br />
<< /Font<br />
<< /F1<br />
<< /Type /Font<br />
/Subtype /Type1<br />
/BaseFont /Times-Roman<br />
>><br />
>><br />
>><br />
/Contents 4 0 R<br />
>><br />
endobj<br />
<br />
4 0 obj<br />
<< /Length 48 >><br />
stream<br />
BT<br />
/F1 72 Tf<br />
55 460 Td<br />
(Arch is the best!) Tj<br />
ET<br />
endstream<br />
endobj<br />
<br />
xref<br />
0 5<br />
0000000000 65535 f <br />
0000000016 00000 n <br />
0000000066 00000 n <br />
0000000148 00000 n <br />
0000000303 00000 n <br />
trailer<br />
<< /Root 1 0 R<br />
/Size 5<br />
>><br />
startxref<br />
402<br />
%%EOF<br />
<br />
;Perl: A high-level, general-purpose, interpreted, dynamic programming language.<br />
<br />
#!/usr/bin/env perl<br />
print "Arch is the best!\n";<br />
<br />
;Perl 6: The latest member of the Perl family.<br />
<br />
#!/usr/bin/env perl6<br />
say 'Arch is the best!';<br />
<br />
;PHP: A general-purpose scripting language.<br />
<br />
<?php<br />
echo "Arch is the best!\n";<br />
<br />
;Pixilang: Make me pixels.<br />
<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
;Pony:An object-oriented, actor-model, capabilities-secure, high performance programming language.<br />
<br />
actor Main<br />
new create(env: Env) =><br />
env.out.print("Arch is the best!")<br />
<br />
;Portable GNU assembler: {{ic|as -o arch.o arch.s && ld -o arch -O0 arch.o}}<br />
<br />
.section .data<br />
archIsBest:<br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax<br />
xorl %ebx, %ebx<br />
incl %ebx<br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx<br />
int $0x80<br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx<br />
int $0x80<br />
<br />
;PostScript: An older language used for talking to printers.<br />
<br />
%!PS<br />
/monospace 60 selectfont<br />
10 420 moveto<br />
(Arch is the best!) show<br />
showpage<br />
<br />
;Powershell: A task-based command-line shell and scripting language built on .NET.<br />
<br />
Write-Output "Arch is the best!"<br />
<br />
;Processing: An open source programming language and IDE built for the electronic arts and visual design.<br />
<br />
println("Arch is the best!");<br />
<br />
;Prolog: A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
<br />
format('Arch is the best~n',[]).<br />
<br />
;Python: A general-purpose high-level programming language.<br />
<br />
print('Arch is the best!')<br />
<br />
;QBASIC: An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
<br />
PRINT "Arch is the best!"<br />
<br />
;R: A language for statistical computing (and much more!).<br />
<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
;Racket: A general purpose, multi-paradigm programming language in the Lisp-Scheme family.<br />
<br />
#lang racket<br />
<br />
(let ([str "Arch is the best!\n"])<br />
(write-string str)<br />
(values))<br />
<br />
;Ruby: A dynamic, reflective, general purpose object-oriented programming language.<br />
<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
;Rust: Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.<br />
<br />
fn main() {<br />
println!("Arch is the best!");<br />
}<br />
<br />
;Salt: Salt is an automation framework<br />
<br />
salt '*' event.fire '{"data":"Arch Is the best!"}' 'arch/best'<br />
<br />
;Scala: A multi paradigm language that runs on the JVM.<br />
<br />
object ArchIsBest extends App {<br />
println("Arch is the best!")<br />
}<br />
<br />
;Scheme: A dialect of Lisp.<br />
<br />
(display "Arch is the best!\n")<br />
<br />
;Seed: A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
;Shakespeare Programming Language: Designed to "''make a language with beautiful source code'' [...]"<br />
<br />
Arch is the Best.<br />
<br />
Arthur, a young man who is the best.<br />
Isabella, a likewise young woman who be.<br />
The Ghost, an undead who is the article.<br />
Beatrice, a young woman who is an adjective.<br />
<br />
<br />
Act I: Setting of the Variables.<br />
<br />
Scene I: Setting of Isabella and Arthur.<br />
<br />
[Enter Arthur and Isabella]<br />
<br />
Arthur:<br />
You are as dirty as the square of the sum of a rotten smelly foul devil<br />
and a vile lie! You are as bold as the sum of yourself and an evil hog!<br />
<br />
Isabella:<br />
Thou art as big as the square of a cute fair sweet flower! You are as proud<br />
as the sum of thyself and a cow.<br />
<br />
[Exit Arthur]<br />
<br />
Scene II: Setting of The Ghost.<br />
<br />
[Enter The Ghost]<br />
<br />
Isabella:<br />
You art as loving as myself. Thou are as huge as the sum of yourself and twice<br />
a red old hair. You are as cowardly as the sum of yourself and a fat goat!<br />
<br />
[Exit Isabella]<br />
<br />
Scene III: Setting of Beatrice.<br />
<br />
[Enter Beatrice]<br />
<br />
The Ghost:<br />
Thou are as good as the sum of Isabella and a mighty fine rich noble King.<br />
<br />
[Exeunt The Ghost and Beatrice]<br />
<br />
Act II: Printing Arch is the Best.<br />
<br />
Scene I: Arch.<br />
<br />
[Enter Arthur and Beatrice]<br />
<br />
Beatrice:<br />
Speak thy mind! You art as peaceful as the quotient between thyself and the<br />
clearest Lord.<br />
<br />
Arthur:<br />
Speak your mind!<br />
<br />
[Exeunt Arthur and Beatrice]<br />
<br />
[Enter Isabella and The Ghost]<br />
<br />
The Ghost:<br />
Thou are as normal as the sum of thyself and a town. Speak thy mind!<br />
<br />
Isabella:<br />
Speak your mind!<br />
<br />
[Exit Isabella]<br />
<br />
[Enter Arthur]<br />
<br />
The Ghost:<br />
Speak thy mind!<br />
<br />
[Exit Arthur]<br />
<br />
Scene II: is.<br />
<br />
[Enter Beatrice]<br />
<br />
Beatrice:<br />
Thou are as old as the sum of yourself and a nose. Speak your mind!<br />
<br />
The Ghost:<br />
You art as pretty as the sum of thyself and a face. Speak your mind.<br />
<br />
[Exit The Ghost]<br />
<br />
[Enter Arthur]<br />
<br />
Beatrice:<br />
Speak thy mind.<br />
<br />
Scene III: the.<br />
<br />
Arthur:<br />
You are as blue as the sum of yourself and a hamster. Speak thy mind!<br />
<br />
[Exit Arthur]<br />
<br />
[Enter The Ghost]<br />
<br />
Beatrice:<br />
You are as prompt as the sum of thyself and a lie! Speak your mind.<br />
<br />
[Exit Beatrice]<br />
<br />
[Enter Isabella]<br />
<br />
The Ghost:<br />
You art as happy as the sum of thyself and a large moon. Speak thy mind!<br />
<br />
[Exit The Ghost]<br />
<br />
[Enter Arthur]<br />
<br />
Isabella:<br />
Speak thy mind.<br />
<br />
[Exit Arthur]<br />
<br />
Scene IV: Best.<br />
<br />
[Enter Beatrice]<br />
<br />
Beatrice:<br />
Thou are as blue as the sum of the sum of a curse and thyself and a bad<br />
codpiece. Speak your mind! You art as lovely as the sum of the sum of the<br />
happiness and yourself and a blossoming flower. Speak thy mind.<br />
<br />
Isabella:<br />
You are as healthy as the sum of yourself and a plague! Speak thy mind.<br />
Thou art as huge as the sum of thyself and a hero. Speak your mind!<br />
<br />
[Exit Beatrice]<br />
<br />
[Enter Arthur]<br />
<br />
Isabella:<br />
You art as green as the sum of thyself and a mother. Speak your mind.<br />
<br />
[Exeunt]<br />
<br />
;Shoes: A Ruby version using Shoes for a GUI.<br />
<br />
Shoes.app :width => 135, :height => 30 do<br />
para "Arch is the Best!"<br />
end<br />
<br />
;Smalltalk: Smalltalk is an object-oriented, dynamically typed, reflective programming language.<br />
<br />
Transcript show: 'Arch is the best!'.<br />
<br />
;Solidity: Object-oriented programming language for Ethereum smart contracts.<br />
<br />
pragma solidity ^0.6.0;<br />
<br />
contract ArchIsTheBest {<br />
function archIsTheBest() external pure returns (string memory) {<br />
return "Arch is the best!";<br />
}<br />
}<br />
<br />
;SQL: Structured Query Language, the query language for relational databases<br />
<br />
SELECT 'Arch is the best!';<br />
SELECT 'Arch is the best!' from dual; -- for Oracle DB<br />
<br />
;Standard ML: A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
<br />
print "Arch is the best!\n"<br />
<br />
;Swift: A general-purpose, multi-paradigm, compiled programming language developed by Apple Inc.<br />
<br />
print("Arch is the best!")<br />
<br />
;Tcl/Tk: A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
;TeX: A typesetting language aimed at scientific publishing. Famous for giving the ability to describe complicated equations in a plain text format. The basis for the more famous LaTeX.<br />
<br />
Arch is the best!<br />
\bye<br />
<br />
;TrumpScript: A scripting language based on President Trump's words.<br />
<br />
say it with me, "Arch is the best!";<br />
america is great.<br />
<br />
;UEFI: An extensible firmware framework<br />
<br />
#include <Uefi.h><br />
EFI_STATUS EFIAPI<br />
ArchIsTheBest (<br />
IN EFI_HANDLE ImageHandle,<br />
IN EFI_SYSTEM_TABLE *SystemTable<br />
)<br />
{<br />
SystemTable -> ConOut-> OutputString(SystemTable->ConOut, L"Arch is the best!\n"); <br />
return EFI_SUCCESS;<br />
}<br />
<br />
; V: Simple, fast, safe, compiled language for developing maintainable software.<br />
<br />
fn main() {<br />
println('Arch is the best!')<br />
}<br />
<br />
;Vala: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.<br />
<br />
void main(string[] args) {<br />
stdout.printf("\nArch is the best!\n\n");<br />
}<br />
<br />
; var'aq: [http://freshmeat.sourceforge.net/projects/varaq A warrior's programming language]<br />
"Arch is the best!" cha'<br />
<br />
; Verilog: A hardware description language, standardized as IEEE 1364<br />
module top;<br />
initial $display("Arch is the best!");<br />
endmodule<br />
<br />
; VHDL: VHSIC Hardware Description Language<br />
<br />
use std.textio.all;<br />
<br />
entity top is<br />
end top;<br />
<br />
architecture behaviour of top is begin<br />
process begin<br />
write (output, String'("Arch is the best!"));<br />
wait;<br />
end process;<br />
end behaviour;<br />
<br />
;VimScript: A scripting language for the Vim text editor.<br />
<br />
echo "Arch is the best!"<br />
<br />
;Visual Basic: A third-generation event-driven programming language and integrated development environment (IDE) from Microsoft for its Component Object Model (COM) programming model.<br />
<br />
Module Arch<br />
Sub Main()<br />
MsgBox("Arch is the best!")<br />
End Sub<br />
End Module<br />
<br />
;wenyan-lang: A programming language for the ancient Chinese.<br />
<br />
吾有一言。曰「「阿祺,盡善矣。」」。書之。<br />
<br />
; Wiring (Arduino):Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
}<br />
void loop()<br />
{<br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
; Wolfram: Proprietary programming language developed by Wolfram Inc which emphasizes symbolic computation, functional programming, and rule-based programming.<br />
<br />
Print["Arch is the best"]<br />
<br />
; X11: X11 is an architecture independent system for display of graphical user interfaces.<br />
{{ic|cc -lX11 arch.c}}<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
;Z3: A theorem prover from Microsoft Research<br />
<br />
(define-const arch String "Arch is the best")<br />
(simplify (str.++ arch))<br />
<br />
;Zig: A general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software. Intends to deprecate C.<br />
<br />
const std = @import("std");<br />
<br />
pub fn main() !void {<br />
std.debug.warn("Arch is the best!\n", .{});<br />
}<br />
<br />
;Zimbu: A fast, easy to learn, and JS-like programming language.<br />
<br />
FUNC Main() int<br />
IO.write("Arch is the best!")<br />
RETURN 0<br />
}<br />
<br />
;Zsh: A UNIX command interpreter (shell) closely resembling ksh, but includes many enhancements.<br />
<br />
#!/bin/zsh -f<br />
setopt extendedglob<br />
print -- $(echoti setaf 2) ${$(<<<${${${(@j: :)${(@s:_:)${:-What_Linux_is_the_best?}}}/* (#b)([A-Z]i)/Arch $match[1]}} tr '?' '!')} $terminfo[sgr0]</div>Betseghttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=723080Arch is the best2022-03-15T15:24:31Z<p>Betseg: let's not add this Undo revision 604207 by Nawordar (talk)</p>
<hr />
<div>[[Category:About Arch]]<br />
[[ja:Arch は最高]]<br />
[[ru:Arch is the best]]<br />
[[zh-hans:Arch is the best]]<br />
The '''Arch is the best''' project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which gives proof of Arch's superiority.<br />
<br />
== History ==<br />
<br />
The visionary project was originally devised in April 2008 by long time Arch community member [https://bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". It was announced to the world with a [https://bbs.archlinux.org/viewtopic.php?id=47306 forum post], thus illuminating other people's minds, who immediately started porting it to multiple different languages, both programming and verbal, so that every human being on the planet could fully appreciate and benefit from this revolutionary discovery.<br />
<br />
== The code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
;1C&#58;Enterprise 7.7/8/8.1/8.2:A procedural domain-specific compiled dynamically-typed programming language mostly similar to VisualBasic which is used in "1C:Enterprise" products widespread in Russia and other CIS countries.<br />
<br />
Предупреждение("Arch is the best!");<br />
<br />
;ABAP: Advanced Business Application Programming language.<br />
<br />
REPORT zwhat_is_the_best.<br />
WRITE 'Arch is the best'.<br />
<br />
;Ada: A systems critical programming language.<br />
<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end ArchIsTheBest;<br />
<br />
;APL: A Programming Language.<br />
<br />
'Arch is the best!'<br />
<br />
;AppleScript: A scripting language created by Apple Inc. and built into the Classic Mac OS since System 7 and into all versions of macOS.<br />
<br />
display alert "Arch is the best!"<br />
say "Indeed, Arch is the best."<br />
<br />
;ArnoldC: Programming language based on the one-liners of Arnold Schwarzenegger.<br />
<br />
IT'S SHOWTIME<br />
TALK TO THE HAND "Arch is the best!"<br />
YOU HAVE BEEN TERMINATED<br />
<br />
;ATS: A functional programming language that uses dependent types to improve programs' reliability.<br />
<br />
implement main () = println! "Arch is the best!"<br />
<br />
;Awk: A data-driven programming language designed for processing text-based data.<br />
<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
;BASIC: A scripting language that one of the most commonly used computer programming languages in the 1960's, considered an easy step for students to learn before more powerful languages such as FORTRAN.<br />
<br />
10 PRINT "Arch is the best!"<br />
<br />
;Batch: A scripting language for Windows that can be used to automate tasks or just have some fun.<br />
<br />
@echo off<br />
echo Arch is the best!<br />
pause<br />
<br />
;Befunge: Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
; BIRL: Like ArnoldC, but for Bambam[https://www.youtube.com/watch?v=3_qEE2i6h5Q].<br />
<br />
HORA DO SHOW<br />
CE QUER VER ESSA PORRA? ("Arch is the best!\n");<br />
BORA CUMPADE 0;<br />
BIRL<br />
<br />
;Boo:A stablished object oriented statically typed programming language for .NET and Mono with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features such as macros and custom compilation pipelines.<br />
<br />
print "Arch is the best!"<br />
<br />
;Bourne shell: The original program, should be compatible with any shell.<br />
<br />
#!/bin/sh<br />
echo "Arch is the best!"<br />
<br />
;Bourne shell (Alternate):Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
<br />
#!/bin/sh<br />
yes Arch is the best!<br />
<br />
;brainfuck: Doesn't the language name explain it?<br />
<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
;C: Note the three space indenting used in this project, much like that used by other superior beings.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main(void)<br />
{<br />
puts("Arch is the best!");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;C#: Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
<br />
using System;<br />
Console.WriteLine ("Arch is the best!");<br />
<br />
;C++:Arch == Linux++<br />
<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;COBOL:A simple, lightweight programming language.<br />
<br />
IDENTIFICATION DIVISION.<br />
PROGRAM-ID. TheBest.<br />
<br />
PROCEDURE DIVISION.<br />
DISPLAY "Arch is the best!".<br />
STOP RUN.<br />
<br />
;CoffeeScript: A programming language that transcompiles to JavaScript.<br />
<br />
alert 'Arch is the best!'<br />
<br />
;Clojure: A Lisp dialect that runs on the JVM.<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"})<br />
<br />
(defn read-choice []<br />
(println "\nAvailable languages: ")<br />
(doall (map #(println (key %)) translations))<br />
(print "Enter language or Ctrl-c: ") (flush)<br />
(translations (read-line) :badinput))<br />
<br />
(defn arch-is-the-best []<br />
(loop [choice (read-choice)]<br />
(case choice<br />
:badinput (do (print "\nBad input!\n")<br />
(recur (read-choice)))<br />
(do (print "\n" choice "\n")<br />
(recur (read-choice))))))<br />
<br />
;or<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"<br />
"street" "Arch iz da shizzle ma nizzle"})<br />
(while 1<br />
(println "\nPick a language:\n" (map #(key %) translations) "\n language: ")<br />
(println (translations (read-line) "Not a valid language")))<br />
<br />
;or<br />
<br />
(prn "Arch is the best!")<br />
<br />
;Common Lisp: Tested on SBCL, feel free to add more of the translations.<br />
<br />
#!/usr/bin/sbcl --script<br />
(defparameter *best-list* '((English "Arch is the best!")<br />
(Chinese "Arch, 她出类拔萃!")<br />
(German "Arch ist das Beste!")<br />
(Greek "Το Arch είναι το καλύτερο!")<br />
(Latin "Arch optimum est!")<br />
(French "Arch est le meilleur!")<br />
(Polish "Arch jest najlepszy!")))<br />
(defun aitb ()<br />
(format t "Available languages: ~{~{~@(~a~)~*~}~^, ~}.~%" *best-list*)<br />
(loop for input = (progn (format t "~&Input the desired language, (or 'quit'): ~%")<br />
(force-output)<br />
(read-line))<br />
if (string-equal input "quit")<br />
do (loop-finish)<br />
else<br />
do (let ((language-def<br />
(assoc input *best-list*<br />
:key (lambda (lang) (symbol-name lang))<br />
:test #'string-equal)))<br />
(if language-def<br />
(format t "~&~A~%" (second language-def))<br />
(format t "~&Invalid language.~%"))))<br />
(format t "~&May the Arch be with you!~%"))<br />
(aitb)<br />
<br />
;Common Lisp (Alternate): Should run on any implementation (Clisp, Allegro, SBCL...)<br />
<br />
(princ "Arch is the best!")<br />
<br />
;Crystal: An object-oriented, Ruby-like language.<br />
<br />
puts "Arch is the best!"<br />
<br />
;Crystal (through web server): For distributing the message to multiple friends at once.<br />
<br />
# For giving the message to your friends<br />
require "http/server"<br />
<br />
server = HTTP::Server.new(80) do |context|<br />
context.response.content_type = "text/plain"<br />
context.response.print "Arch is the best!"<br />
end<br />
<br />
puts "Listening."<br />
server.listen<br />
<br />
;csh: A C-like shell.<br />
<br />
#!/bin/csh<br />
echo "Arch is the best!"<br />
<br />
;CSS: A stylesheet language, heavily used for styling web pages.<br />
<br />
body * {<br />
display: none;<br />
}<br />
<br />
body::before {<br />
content: "Arch is the best!";<br />
font-family: monospace;<br />
font-size: 2.7rem;<br />
position: absolute;<br />
left: 50%;<br />
top: 50%;<br />
transform: translate(-50%, -50%);<br />
}<br />
<br />
;D: A C-style language. The benefits of hindsight, with modern conveniences.<br />
<br />
import std.stdio : writeln;<br />
void main()<br />
{<br />
writeln("Arch is the best");<br />
}<br />
<br />
;Dart: Google's javascript killer<br />
<br />
main(){<br />
print('Arch is the best');<br />
}<br />
<br />
;Dogescript: Doge-friendly JavaScript<br />
<br />
console.loge with ' So Arch'<br />
console.loge with ' Much Good'<br />
console.loge with ' Wow'<br />
<br />
;Ebuild: Gentoo's build script format.<br />
<br />
DESCRIPTION="Arch is the best!"<br />
SRC_URI="<nowiki>https://wiki.archlinux.org/index.php/Arch_is_the_best</nowiki>"<br />
<br />
LICENSE="GFDL_1.3"<br />
SLOT="0"<br />
KEYWORDS=""<br />
IUSE=""<br />
<br />
DEPEND=""<br />
RDEPEND=""<br />
<br />
src_compile() {<br />
einfo "Arch is the best!"<br />
}<br />
<br />
;Emacs Lisp: A dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors<br />
<br />
(message "Arch is the best!")<br />
<br />
;Emojicode: A delimiter-less, object oriented, imperative, high-level, hybrid language with emojis as fix points and methods.<br />
<br />
🏁 🍇<br />
😀 🔤Arch is the best!🔤❗️<br />
🍉<br />
<br />
;Elixir: A dynamic, functional language designed for building scalable and maintainable applications<br />
<br />
IO.puts "Arch is the best!"<br />
<br />
;Erlang: A concurrent, garbage-collected programming language and runtime system.<br />
<br />
-module(arch).<br />
-export([is_the_best/0]).<br />
is_the_best() -> io:fwrite("Arch is the best!\n").<br />
<br />
;Or using message passing between processes<br />
<br />
-module(arch).<br />
-export([ultimate_question/0,the_answer/0]).<br />
the_answer() -><br />
receive<br />
{Client,who_is_the_best} -><br />
Client ! {self(),"Arch is the best!"};<br />
{Client,_} -><br />
Client ! {self(),"Taco Taco Taco!"}<br />
end,<br />
the_answer().<br />
ultimate_question() -><br />
Pid = spawn(arch,the_answer,[]),<br />
Pid ! {self(),who_is_the_best},<br />
receive<br />
{Pid,Response} -> io:format("~s~n",[Response])<br />
end.<br />
<br />
;F#: A strongly-typed, functional-first programming language for writing simple code to solve complex problems.<br />
<br />
printfn "Arch is the best!"<br />
<br />
;Factor: High-level stack-based language.<br />
<br />
"Arch is the best" print<br />
<br />
;FIM++: A wordy, imperative, dynamically-typed, and interpreted language that can use Java classes.<br />
<br />
Dear Princess Celestia: Letter About Arch Linux.<br />
Today I learned:<br />
I wrote "Arch is the best!".<br />
Your faithful student, Twilight Sparkle<br />
<br />
;Fish: The user-friendly command line shell.<br />
<br />
function arch_is_the_best --on-event fish_prompt<br />
echo -ne "\e[94mArch is the best!\e[0m"<br />
end<br />
<br />
;Forth:Stack-based language.<br />
<br />
." Arch is the best" cr -- kiss way<br />
<br />
;Fortran95<br />
<br />
program arch<br />
print *,"Arch is the best!"<br />
end program arch<br />
<br />
;Genie: A new programming language, that allows for a more modern programming style while being able to effortlessly create and use GObjects natively.<br />
<br />
init<br />
print "Arch is the best"<br />
<br />
;Gjs: A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
;Gleam: A fast, friendly, and functional language for building type-safe, scalable systems.<br />
<br />
import gleam/io<br />
<br />
pub fn main() {<br />
io.println("Arch is the best!")<br />
}<br />
<br />
;Go: A language created by Google that's a love child between C, C++ and Python.<br />
<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() {<br />
fmt.Println("Arch is the best!")<br />
}<br />
<br />
;Groovy: An agile and dynamic language for the Java Virtual Machine.<br />
<br />
println 'Arch is the best!' <br />
<br />
;Haskell: The language where IO is easy and unproblematic.<br />
<br />
main = putStrLn "Arch is the best!"<br />
<br />
;HTML: A markup language used to create and define web pages and their content.<br />
<br />
{{bc|1=<br />
<!DOCTYPE html><br />
<html lang='en'><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
<p>Arch is the best!</p><br />
</body><br />
</html><br />
}}<br />
<br />
;Idris: A general purpose pure functional programming language with dependent types. Haskell, but crazier.<br />
<br />
module Main<br />
<br />
main : IO ()<br />
main = putStrLn "Arch is the best!"<br />
<br />
;INTERCAL: "Designed very early one May morning in 1972 by two hackers who are still trying to live it down."<br />
<br />
PLEASE NOTE THAT THIS WAS MADE FOR C-INTERCAL<br />
DO ,10 <- #18<br />
DO ,10SUB#1 <- #126<br />
DO ,10SUB#2 <- #52<br />
DO ,10SUB#3 <- #136<br />
PLEASE DO ,10SUB#4 <- #176<br />
DO ,10SUB#5 <- #18<br />
DO ,10SUB#6 <- #110<br />
DO ,10SUB#7 <- #200<br />
PLEASE DO ,10SUB#8 <- #202<br />
DO ,10SUB#9 <- #214<br />
DO ,10SUB#10 <- #24<br />
DO ,10SUB#11 <- #112<br />
PLEASE DO ,10SUB#12 <- #162<br />
DO ,10SUB#13 <- #190<br />
DO ,10SUB#14 <- #160<br />
PLEASE DO ,10SUB#15 <- #216<br />
DO ,10SUB#16 <- #160<br />
DO ,10SUB#17 <- #170<br />
PLEASE DO ,10SUB#18 <- #52<br />
DO READ OUT ,10<br />
DO GIVE UP<br />
<br />
Also a much larger [https://gist.github.com/ISSOtm/33a486dac52626160131d8daa7f16fc6 ASCII-transcoding version].<br />
<br />
(Non-portable C-INTERCAL I/O had to be used, since INTERCAL-72 does not allow arbitrary characters.)<br />
<br />
;Io: A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript.<br />
<br />
"Arch is the best!" println<br />
<br />
;Java: An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
;JavaScript: Also known as ECMAScript, a prototype-based object-oriented scripting language.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;JavaScript (in a web browser)<br />
<br />
alert('Arch is the best!');<br />
<br />
;Julia: A fresh approach to numerical computing.<br />
<br />
println("Arch is the best!")<br />
<br />
;Kotlin: JetBrains' attempt to get world domination.<br />
<br />
fun main() {<br />
println("Arch is the best!")<br />
}<br />
<br />
;LaTeX: A typesetting framework and ecosystem implemented on top of TeX (ironically, more famous than TeX). "The" framework for typesetting mathematical equations and diagrams.<br />
<br />
\documentclass{minimal}<br />
<br />
\begin{document}<br />
Arch is the best!<br />
\end{document}<br />
<br />
;LilyPond: A powerful music engraving program with an intuitive LaTeX-like input language.<br />
<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
;LOLCODE: Why not?<br />
<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
;Lua: A lightweight, extensible programming language.<br />
<br />
print "Arch is the best!"<br />
<br />
;Malbolge: A language created to make programming as hard as possible.<br />
<br />
bCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]<br />
\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9y16543210/.-,+*)('&}C#"!~}|{zyxwvu<br />
tsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK-CgGFEDCBA@?>=<;:98x6543210/<br />
.-,+*)('&%$#"!~}|u;yxwpun4rqpRhmf,jihgIe^$ba`_^]\[ZYXQVUTMqQPONMFjJI+A<br />
eEDC%A:^>=<|:981U54t21*/.-&Jk)('&}C#"!aw={z\xwvun4lqpi/mlkjiKaf_%p<br />
<br />
;Matlab: A proprietary programming language developed by MathWorks.<br />
<br />
disp('Arch is the best!');<br />
<br />
;Morpho: Morpho is a multi-paradigm programming language that supports procedural, object-oriented and functional programming.<br />
<br />
writeln("Arch is the best!");<br />
<br />
;Myrddin: A system programming language which aims for control and simplicity, featuring strong type checking, generics, type inference, closures, and traits.<br />
<br />
/* mbld -b aitb aitb.myr */<br />
use std<br />
const main = {<br />
std.put("Arch is the best!\n")<br />
}<br />
<br />
;NASM / Yasm (i686): Notice that the string is in the .text section, which feels superior.<br />
<br />
;nasm -f elf32 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
_start:<br />
mov edx,len<br />
mov ecx,msg<br />
mov ebx,1<br />
mov eax,4<br />
int 0x80<br />
xor ebx,ebx<br />
mov eax,1<br />
int 0x80<br />
msg: db "Arch is the best!",10<br />
len equ $-msg<br />
<br />
;NASM / Yasm (x86_64) :Featuring AMD's sexy new instruction, ''syscall''.<br />
<br />
;nasm -f elf64 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
s:<br />
db 'Arch is the best!',0ah<br />
l equ $-s<br />
_start:<br />
mov rax,1<br />
mov rdi,1<br />
mov rsi,s<br />
mov rdx,l<br />
syscall<br />
mov rax,60<br />
xor rdi,rdi<br />
syscall<br />
<br />
;Nim:Portable lightweight programming language.<br />
<br />
echo "Arch is the best!"<br />
<br />
;node.js: a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications, using an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;node.js (http server): A node.js program to beam the info that 'Arch is the best!' using HTTP<br />
<br />
require('http').createServer((req,res) => {res.writeHead(200, {'Content-Type': 'text/plain'});res.end('Arch is the best!');}).listen(80);<br />
<br />
;Objective-C: A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
<br />
NSLog(@"Arch is the best!");<br />
<br />
;OCaml: The main implementation of the Caml programming language.<br />
<br />
print_endline "Arch is the best!"<br />
<br />
;Octave: High-level interpreted language, primarily intended for numerical computations.<br />
<br />
printf("Arch is the best!\n")<br />
<br />
;Ook!: brainfuck, translated to Orangutan.<br />
<br />
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.<br />
<br />
;Pascal: An influential imperative and procedural programming language.<br />
<br />
program ArchIsTheBest;<br />
begin<br />
writeln('Arch is the best!');<br />
end.<br />
<br />
;PDF: A language used for talking to printers.<br />
<br />
%PDF-1.1<br />
<br />
1 0 obj<br />
<< /Type /Catalog<br />
/Pages 2 0 R<br />
>><br />
endobj<br />
<br />
2 0 obj<br />
<< /Type /Pages<br />
/Kids [3 0 R]<br />
/Count 1<br />
/MediaBox [0 0 595 842]<br />
>><br />
endobj<br />
<br />
3 0 obj<br />
<< /Type /Page<br />
/Parent 2 0 R<br />
/Resources<br />
<< /Font<br />
<< /F1<br />
<< /Type /Font<br />
/Subtype /Type1<br />
/BaseFont /Times-Roman<br />
>><br />
>><br />
>><br />
/Contents 4 0 R<br />
>><br />
endobj<br />
<br />
4 0 obj<br />
<< /Length 48 >><br />
stream<br />
BT<br />
/F1 72 Tf<br />
55 460 Td<br />
(Arch is the best!) Tj<br />
ET<br />
endstream<br />
endobj<br />
<br />
xref<br />
0 5<br />
0000000000 65535 f <br />
0000000016 00000 n <br />
0000000066 00000 n <br />
0000000148 00000 n <br />
0000000303 00000 n <br />
trailer<br />
<< /Root 1 0 R<br />
/Size 5<br />
>><br />
startxref<br />
402<br />
%%EOF<br />
<br />
;Perl: A high-level, general-purpose, interpreted, dynamic programming language.<br />
<br />
#!/usr/bin/env perl<br />
print "Arch is the best!\n";<br />
<br />
;Perl 6: The latest member of the Perl family.<br />
<br />
#!/usr/bin/env perl6<br />
say 'Arch is the best!';<br />
<br />
;PHP: A general-purpose scripting language.<br />
<br />
<?php<br />
echo "Arch is the best!\n";<br />
<br />
;Pixilang: Make me pixels.<br />
<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
;Pony:An object-oriented, actor-model, capabilities-secure, high performance programming language.<br />
<br />
actor Main<br />
new create(env: Env) =><br />
env.out.print("Arch is the best!")<br />
<br />
;Portable GNU assembler: {{ic|as -o arch.o arch.s && ld -o arch -O0 arch.o}}<br />
<br />
.section .data<br />
archIsBest:<br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax<br />
xorl %ebx, %ebx<br />
incl %ebx<br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx<br />
int $0x80<br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx<br />
int $0x80<br />
<br />
;PostScript: An older language used for talking to printers.<br />
<br />
%!PS<br />
/monospace 60 selectfont<br />
10 420 moveto<br />
(Arch is the best!) show<br />
showpage<br />
<br />
;Powershell: A task-based command-line shell and scripting language built on .NET.<br />
<br />
Write-Output "Arch is the best!"<br />
<br />
;Processing: An open source programming language and IDE built for the electronic arts and visual design.<br />
<br />
println("Arch is the best!");<br />
<br />
;Prolog: A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
<br />
format('Arch is the best~n',[]).<br />
<br />
;Python: A general-purpose high-level programming language.<br />
<br />
print('Arch is the best!')<br />
<br />
;QBASIC: An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
<br />
PRINT "Arch is the best!"<br />
<br />
;R: A language for statistical computing (and much more!).<br />
<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
;Racket: A general purpose, multi-paradigm programming language in the Lisp-Scheme family.<br />
<br />
#lang racket<br />
<br />
(let ([str "Arch is the best!\n"])<br />
(write-string str)<br />
(values))<br />
<br />
;Ruby: A dynamic, reflective, general purpose object-oriented programming language.<br />
<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
;Rust: Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.<br />
<br />
fn main() {<br />
println!("Arch is the best!");<br />
}<br />
<br />
;Salt: Salt is an automation framework<br />
<br />
salt '*' event.fire '{"data":"Arch Is the best!"}' 'arch/best'<br />
<br />
;Scala: A multi paradigm language that runs on the JVM.<br />
<br />
object ArchIsBest extends App {<br />
println("Arch is the best!")<br />
}<br />
<br />
;Scheme: A dialect of Lisp.<br />
<br />
(display "Arch is the best!\n")<br />
<br />
;Seed: A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
;Shakespeare Programming Language: Designed to "''make a language with beautiful source code'' [...]"<br />
<br />
Arch is the Best.<br />
<br />
Arthur, a young man who is the best.<br />
Isabella, a likewise young woman who be.<br />
The Ghost, an undead who is the article.<br />
Beatrice, a young woman who is an adjective.<br />
<br />
<br />
Act I: Setting of the Variables.<br />
<br />
Scene I: Setting of Isabella and Arthur.<br />
<br />
[Enter Arthur and Isabella]<br />
<br />
Arthur:<br />
You are as dirty as the square of the sum of a rotten smelly foul devil<br />
and a vile lie! You are as bold as the sum of yourself and an evil hog!<br />
<br />
Isabella:<br />
Thou art as big as the square of a cute fair sweet flower! You are as proud<br />
as the sum of thyself and a cow.<br />
<br />
[Exit Arthur]<br />
<br />
Scene II: Setting of The Ghost.<br />
<br />
[Enter The Ghost]<br />
<br />
Isabella:<br />
You art as loving as myself. Thou are as huge as the sum of yourself and twice<br />
a red old hair. You are as cowardly as the sum of yourself and a fat goat!<br />
<br />
[Exit Isabella]<br />
<br />
Scene III: Setting of Beatrice.<br />
<br />
[Enter Beatrice]<br />
<br />
The Ghost:<br />
Thou are as good as the sum of Isabella and a mighty fine rich noble King.<br />
<br />
[Exeunt The Ghost and Beatrice]<br />
<br />
Act II: Printing Arch is the Best.<br />
<br />
Scene I: Arch.<br />
<br />
[Enter Arthur and Beatrice]<br />
<br />
Beatrice:<br />
Speak thy mind! You art as peaceful as the quotient between thyself and the<br />
clearest Lord.<br />
<br />
Arthur:<br />
Speak your mind!<br />
<br />
[Exeunt Arthur and Beatrice]<br />
<br />
[Enter Isabella and The Ghost]<br />
<br />
The Ghost:<br />
Thou are as normal as the sum of thyself and a town. Speak thy mind!<br />
<br />
Isabella:<br />
Speak your mind!<br />
<br />
[Exit Isabella]<br />
<br />
[Enter Arthur]<br />
<br />
The Ghost:<br />
Speak thy mind!<br />
<br />
[Exit Arthur]<br />
<br />
Scene II: is.<br />
<br />
[Enter Beatrice]<br />
<br />
Beatrice:<br />
Thou are as old as the sum of yourself and a nose. Speak your mind!<br />
<br />
The Ghost:<br />
You art as pretty as the sum of thyself and a face. Speak your mind.<br />
<br />
[Exit The Ghost]<br />
<br />
[Enter Arthur]<br />
<br />
Beatrice:<br />
Speak thy mind.<br />
<br />
Scene III: the.<br />
<br />
Arthur:<br />
You are as blue as the sum of yourself and a hamster. Speak thy mind!<br />
<br />
[Exit Arthur]<br />
<br />
[Enter The Ghost]<br />
<br />
Beatrice:<br />
You are as prompt as the sum of thyself and a lie! Speak your mind.<br />
<br />
[Exit Beatrice]<br />
<br />
[Enter Isabella]<br />
<br />
The Ghost:<br />
You art as happy as the sum of thyself and a large moon. Speak thy mind!<br />
<br />
[Exit The Ghost]<br />
<br />
[Enter Arthur]<br />
<br />
Isabella:<br />
Speak thy mind.<br />
<br />
[Exit Arthur]<br />
<br />
Scene IV: Best.<br />
<br />
[Enter Beatrice]<br />
<br />
Beatrice:<br />
Thou are as blue as the sum of the sum of a curse and thyself and a bad<br />
codpiece. Speak your mind! You art as lovely as the sum of the sum of the<br />
happiness and yourself and a blossoming flower. Speak thy mind.<br />
<br />
Isabella:<br />
You are as healthy as the sum of yourself and a plague! Speak thy mind.<br />
Thou art as huge as the sum of thyself and a hero. Speak your mind!<br />
<br />
[Exit Beatrice]<br />
<br />
[Enter Arthur]<br />
<br />
Isabella:<br />
You art as green as the sum of thyself and a mother. Speak your mind.<br />
<br />
[Exeunt]<br />
<br />
;Shoes: A Ruby version using Shoes for a GUI.<br />
<br />
Shoes.app :width => 135, :height => 30 do<br />
para "Arch is the Best!"<br />
end<br />
<br />
;Smalltalk: Smalltalk is an object-oriented, dynamically typed, reflective programming language.<br />
<br />
Transcript show: 'Arch is the best!'.<br />
<br />
;Solidity: Object-oriented programming language for Ethereum smart contracts.<br />
<br />
pragma solidity ^0.6.0;<br />
<br />
contract ArchIsTheBest {<br />
function archIsTheBest() external pure returns (string memory) {<br />
return "Arch is the best!";<br />
}<br />
}<br />
<br />
;SQL: Structured Query Language, the query language for relational databases<br />
<br />
SELECT 'Arch is the best!';<br />
SELECT 'Arch is the best!' from dual; -- for Oracle DB<br />
<br />
;Standard ML: A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
<br />
print "Arch is the best!\n"<br />
<br />
;Swift: A general-purpose, multi-paradigm, compiled programming language developed by Apple Inc.<br />
<br />
print("Arch is the best!")<br />
<br />
;Tcl/Tk: A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
;TeX: A typesetting language aimed at scientific publishing. Famous for giving the ability to describe complicated equations in a plain text format. The basis for the more famous LaTeX.<br />
<br />
Arch is the best!<br />
\bye<br />
<br />
;TrumpScript: A scripting language based on President Trump's words.<br />
<br />
say it with me, "Arch is the best!";<br />
america is great.<br />
<br />
;UEFI: An extensible firmware framework<br />
<br />
#include <Uefi.h><br />
EFI_STATUS EFIAPI<br />
ArchIsTheBest (<br />
IN EFI_HANDLE ImageHandle,<br />
IN EFI_SYSTEM_TABLE *SystemTable<br />
)<br />
{<br />
SystemTable -> ConOut-> OutputString(SystemTable->ConOut, L"Arch is the best!\n"); <br />
return EFI_SUCCESS;<br />
}<br />
<br />
; V: Simple, fast, safe, compiled language for developing maintainable software.<br />
<br />
fn main() {<br />
println('Arch is the best!')<br />
}<br />
<br />
;Vala: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.<br />
<br />
void main(string[] args) {<br />
stdout.printf("\nArch is the best!\n\n");<br />
}<br />
<br />
; var'aq: [http://freshmeat.sourceforge.net/projects/varaq A warrior's programming language]<br />
"Arch is the best!" cha'<br />
<br />
; Verilog: A hardware description language, standardized as IEEE 1364<br />
module top;<br />
initial $display("Arch is the best!");<br />
endmodule<br />
<br />
; VHDL: VHSIC Hardware Description Language<br />
<br />
use std.textio.all;<br />
<br />
entity top is<br />
end top;<br />
<br />
architecture behaviour of top is begin<br />
process begin<br />
write (output, String'("Arch is the best!"));<br />
wait;<br />
end process;<br />
end behaviour;<br />
<br />
;VimScript: A scripting language for the Vim text editor.<br />
<br />
echo "Arch is the best!"<br />
<br />
;Visual Basic: A third-generation event-driven programming language and integrated development environment (IDE) from Microsoft for its Component Object Model (COM) programming model.<br />
<br />
Module Arch<br />
Sub Main()<br />
MsgBox("Arch is the best!")<br />
End Sub<br />
End Module<br />
<br />
;wenyan-lang: A programming language for the ancient Chinese.<br />
<br />
吾有一言。曰「「阿祺,盡善矣。」」。書之。<br />
<br />
; Wiring (Arduino):Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
}<br />
void loop()<br />
{<br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
; Wolfram: Proprietary programming language developed by Wolfram Inc which emphasizes symbolic computation, functional programming, and rule-based programming.<br />
<br />
Print["Arch is the best"]<br />
<br />
; X11: X11 is an architecture independent system for display of graphical user interfaces.<br />
{{ic|cc -lX11 arch.c}}<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
;Z3: A theorem prover from Microsoft Research<br />
<br />
(define-const arch String "Arch is the best")<br />
(simplify (str.++ arch))<br />
<br />
;Zig: A general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software. Intends to deprecate C.<br />
<br />
const std = @import("std");<br />
<br />
pub fn main() !void {<br />
std.debug.warn("Arch is the best!\n", .{});<br />
}<br />
<br />
;Zimbu: A fast, easy to learn, and JS-like programming language.<br />
<br />
FUNC Main() int<br />
IO.write("Arch is the best!")<br />
RETURN 0<br />
}<br />
<br />
;Zsh: A UNIX command interpreter (shell) closely resembling ksh, but includes many enhancements.<br />
<br />
#!/bin/zsh -f<br />
setopt extendedglob<br />
print -- $(echoti setaf 2) ${$(<<<${${${(@j: :)${(@s:_:)${:-What_Linux_is_the_best?}}}/* (#b)([A-Z]i)/Arch $match[1]}} tr '?' '!')} $terminfo[sgr0]</div>Betseghttps://wiki.archlinux.org/index.php?title=GTK&diff=647233GTK2020-12-26T22:49:50Z<p>Betseg: /* Installation */ added gtk4</p>
<hr />
<div>[[Category:Widget toolkits]]<br />
[[cs:GTK]]<br />
[[es:GTK]]<br />
[[it:GTK]]<br />
[[ja:GTK]]<br />
[[pl:GTK]]<br />
[[pt:GTK]]<br />
[[ru:GTK]]<br />
[[zh-hans:GTK]]<br />
{{Related articles start}}<br />
{{Related|Uniform look for Qt and GTK applications}}<br />
{{Related|Qt}}<br />
{{Related|GNU Project}}<br />
{{Related|GTK/Development}}<br />
{{Related articles end}}<br />
From the [https://www.gtk.org/ GTK website]:<br />
:GTK, or the GIMP Toolkit, is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK is suitable for projects ranging from small one-off tools to complete application suites.<br />
<br />
GTK, The GIMP Toolkit, was initially made by the [[GNU Project]] for [[GIMP]], but it is now a very popular toolkit with bindings for many languages. This article will explore the tools used to configure the GTK theme, style, icon, font and font size, and also detail manual configuration.<br />
<br />
== Installation ==<br />
<br />
Two versions of GTK are currently available in the [[official repositories]]. They can be [[install]]ed with the following packages:<br />
* '''GTK 3.x''' is available with the {{Pkg|gtk3}} package.<br />
* '''GTK 2.x''' is available with the {{Pkg|gtk2}} package.<br />
<br />
*'''GTK 1.x''' is available with the {{AUR|gtk}} package.<br />
*'''GTK 4''' is available with the {{AUR|gtk4}} package.<br />
<br />
== Themes ==<br />
<br />
In GTK 2, the default theme is Raleigh, but Arch Linux has a custom configuration file at {{ic|/usr/share/gtk-2.0/gtkrc}}, which sets the default theme to Adwaita. In GTK 3, the default theme is Adwaita, but HighContrast, HighContrastInverse and Raleigh themes are also included.<br />
<br />
To force a specific theme, set the following [[environment variables]]:<br />
<br />
* For GTK 2, use {{ic|GTK2_RC_FILES}}. For example to launch [[GIMP]] with the theme Raleigh:<br />
<br />
$ GTK2_RC_FILES=/usr/share/themes/Raleigh/gtk-2.0/gtkrc gimp<br />
<br />
{{tip|{{ic|gtkrc}} can also be a custom file in your home directory created by any of the [[#Configuration tools]]. See [[#Examples]].}}<br />
<br />
* For GTK 3, use {{ic|GTK_THEME}}. For example to launch GNOME Calculator with the dark variant of Adwaita:<br />
<br />
$ GTK_THEME=Adwaita:dark gnome-calculator<br />
<br />
{{Note|To apply the above to desktop shortcuts (or launchers) see [[Desktop entries#Modify environment variables]].}}<br />
<br />
More themes can be installed from the official repositories or the [[AUR]]. Manually extracted themes go in {{ic|~/.themes/}} or {{ic|~/.local/share/themes/}} directory.<br />
<br />
'''GTK 2 and GTK 3.20 or newer are supported:'''<br />
<br />
* {{App|Adapta| An adaptive GTK theme based on Material Design Guidelines. Includes: Adapta, Adapta-Eta, Adapta-Nokto, Adapta-Nokto-Eta|https://github.com/tista500/Adapta|{{Pkg|adapta-gtk-theme}}}}<br />
* {{App|Arc|A flat theme with a modern look and transparent elements. Includes: Arc, Arc-Dark, Arc-Darker|https://github.com/jnsh/arc-theme|with transparency: {{Pkg|arc-gtk-theme}}, without transparency: {{Pkg|arc-solid-gtk-theme}}}}<br />
* {{App|Bluebird|Blue Desktop Suite for Xfce.|https://github.com/shimmerproject/Bluebird|{{AUR|xfce-theme-bluebird}}}}<br />
* {{App|Breeze|GTK version of KDE's default widget theme. Includes: Breeze, Breeze-Dark|https://invent.kde.org/plasma/breeze-gtk|{{Pkg|breeze-gtk}}}}<br />
* {{App|Deepin|Default theme for the Deepin desktop. Includes: deepin, deepin-dark|https://github.com/linuxdeepin/deepin-gtk-theme|{{Pkg|deepin-gtk-theme}}}}<br />
* {{App|GNOME Extra Themes|Extra themes for the GNOME desktop. Includes: Adwaita, Adwaita-dark, HighContrast|https://gitlab.gnome.org/GNOME/gnome-themes-extra|{{Pkg|gnome-themes-extra}}}}<br />
* {{App|Greybird|A grey and blue Xfce theme, used by default in Xubuntu 12.04.|https://github.com/shimmerproject/Greybird|{{AUR|xfce-theme-greybird}}}}<br />
* {{App|Materia|A Material Design-like flat theme for GTK3, GTK2, and GNOME-Shell.|https://github.com/nana-4/materia-theme|{{Pkg|materia-gtk-theme}}}}<br />
* {{App|MATE Themes|Default themes for the MATE desktop. Includes: BlackMATE, Blue-Submarine, BlueMenta, ContrastHighInverse, Green-Submarine, GreenLaguna, Menta, TraditionalGreen, TraditionalOk|https://github.com/mate-desktop/mate-themes|{{Pkg|mate-themes}}}}<br />
* {{App|Numix|A flat and light theme with a modern look (GNOME, Openbox, Unity, Xfce). Includes: Numix|https://github.com/numixproject/numix-gtk-theme|{{AUR|numix-gtk-theme-git}}}}<br />
* {{App|Vertex|Theme for GTK 3, GTK 2, Gnome-Shell and Cinnamon.|https://github.com/horst3180/vertex-theme|{{AUR|vertex-themes}}}}<br />
* {{App|Zuki|Themes for GTK, gnome-shell and more.|https://github.com/lassekongo83/zuki-themes|{{AUR|zuki-themes}}}}<br />
<br />
There are a number of additional GTK themes in the AUR, example: [https://aur.archlinux.org/packages.php?K=gtk-theme search for gtk-theme].<br />
<br />
=== GTK and Qt ===<br />
<br />
If you have GTK and Qt (KDE) applications on your desktop then you know that their looks do not blend well. If you wish to make your GTK styles match your Qt styles please read [[Uniform look for Qt and GTK applications]].<br />
<br />
== Configuration tools ==<br />
<br />
Most major [[desktop environments]] provide tools to configure the GTK theme, icons, font and font size, and manage these settings via [https://specifications.freedesktop.org/xsettings-spec/xsettings-spec-0.5.html XSettings]{{Dead link|2020|03|29|status=404}}:<br />
* If you use [[Cinnamon]], use Themes tool (''cinnamon-settings themes''): go to ''System Settings > Themes''.<br />
* If you use [[Enlightenment]]: go to ''Settings > All > Look > Application Theme''.<br />
* If you use [[GNOME]], use GNOME Tweaks (''gnome-tweaks''): install {{Pkg|gnome-tweaks}}.<br />
* If you use [[MATE]], use the Appearance Preferences tool (''mate-appearance-properties''): go to ''System > Settings > Appearance''.<br />
* If you use [[Xfce]], use the Appearance tool: go to ''Settings > Appearance''.<br />
<br />
Other GUI tools generally overwrite the [[#Configuration|configuration files]].<br />
<br />
'''Both GTK 2 and GTK 3 are supported:'''<br />
* {{App|KDE GTK Configurator|Application that allows you to change style and font of GTK 2 and GTK 3 applications.|https://invent.kde.org/plasma/kde-gtk-config|{{Pkg|kde-gtk-config}}}}<br />
:After installation, {{ic|kde-gtk-config}} can also be found in ''System Settings > Application Style > GNOME/GTK Application Style''.<br />
* {{App|LXAppearance|Desktop independent GTK 2 and GTK 3 style configuration tool from the LXDE project (it does not require other parts of the LXDE desktop).|http://wiki.lxde.org/en/LXAppearance|{{Pkg|lxappearance-gtk3}}}}<br />
* {{App|Oo-mox| Graphical application for generating different color variations of Numix and Flat-Plat themes (GTK 2 and 3), Archdroid and Gnome-Colors icon themes. Also allows generating pre-scaled GTK 2 themes for HiDPI displays. |https://github.com/actionless/oomox|{{AUR|oomox}}}}<br />
<br />
'''Only GTK 2 is supported:'''<br />
* {{App|GTK Change Theme|Little program that lets you change your GTK 2.0 theme (considered a better alternative to ''switch2'').|http://plasmasturm.org/code/gtk-chtheme/|{{Pkg|gtk-chtheme}}}}<br />
* {{App|GTK Preference Tool|GTK theme selector and font switcher.|http://gtk-win.sourceforge.net/home/index.php/Main/GTKPreferenceTool|{{AUR|gtk2_prefs}}}}<br />
* {{App|GTK Theme Switch|Simple GTK theme switcher.|http://muhri.net/nav.php3?node&#61;gts|{{AUR|gtk-theme-switch2}}}}<br />
<br />
== Configuration ==<br />
<br />
GTK settings can be specified manually in configuration files, but desktop environments and applications can override these settings. Depending on GTK version, these files are located at:<br />
* GTK 2 user specific: {{ic|~/.gtkrc-2.0}}<br />
* GTK 2 system wide: {{ic|/etc/gtk-2.0/gtkrc}}<br />
* GTK 3 user specific: {{ic|$XDG_CONFIG_HOME/gtk-3.0/settings.ini}}, or {{ic|$HOME/.config/gtk-3.0/settings.ini}} if {{ic|$XDG_CONFIG_HOME}} is not set<br />
* GTK 3 system wide: {{ic|/etc/gtk-3.0/settings.ini}}<br />
<br />
{{Note|<br />
*See the [https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings.properties GTK 3 ''GtkSettings'' properties] (and [https://developer.gnome.org/gtk2/stable/GtkSettings.html#GtkSettings.properties GTK 2 properties]) in the GTK programming reference manual for the full list of currently supported GTK configuration options.<br />
*Some of the settings described below (such as {{ic|gtk-icon-sizes}}) are deprecated and ignored since GTK 3.10.<br />
*If you edit your GTK configuration files, only newly started applications will display the changes.}}<br />
<br />
=== Basic theme configuration ===<br />
<br />
To manually change the GTK theme, icons, font and font size, add the following to the configuration files, for example:<br />
<br />
* GTK 2:<br />
{{hc|~/.gtkrc-2.0|2=<br />
gtk-icon-theme-name = "Adwaita"<br />
gtk-theme-name = "Adwaita"<br />
gtk-font-name = "DejaVu Sans 11"<br />
}}<br />
<br />
* GTK 3:<br />
{{hc|$XDG_CONFIG_HOME/gtk-3.0/settings.ini|2=<br />
[Settings]<br />
gtk-icon-theme-name = Adwaita<br />
gtk-theme-name = Adwaita<br />
gtk-font-name = DejaVu Sans 11<br />
}}<br />
<br />
If the theme is not applied for GTK 3, use {{ic|gsettings}} in addition:<br />
<br />
$ gsettings set org.gnome.desktop.interface gtk-theme Pop<br />
<br />
{{Note|The icon theme name is the name of its directory, ''not'' the name property in its {{ic|index.theme}}.}}<br />
<br />
=== Dark theme variant ===<br />
<br />
Some GTK 3 themes contain a dark theme variant, but it's only used by default when the application requests it explicitly. To use dark theme variant with all GTK 3 applications, set:<br />
<br />
gtk-application-prefer-dark-theme = true<br />
<br />
=== Keyboard shortcuts ===<br />
<br />
Keyboard shortcuts (otherwise known as ''accelerators'' in GTK) may be changed by hovering the mouse over the respective menu item, and pressing the desired key combination. To enable this feature, set:<br />
<br />
gtk-can-change-accels = 1<br />
<br />
==== Emacs key bindings ====<br />
<br />
To have Emacs-like key bindings in GTK applications add the following:<br />
<br />
{{hc|1=~/.gtkrc-2.0|2=<br />
gtk-key-theme-name = "Emacs"<br />
}}<br />
<br />
{{hc|1=~/.config/gtk-3.0/settings.ini|2=<br />
[Settings]<br />
gtk-key-theme-name = Emacs<br />
}}<br />
<br />
For GTK3 also run:<br />
<br />
$ gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"<br />
<br />
XFCE has a similar setting:<br />
<br />
$ xfconf-query -c xsettings -p /Gtk/KeyThemeName -s Emacs<br />
<br />
The config files in {{ic|/usr/share/themes/Emacs/}} determine what the Emacs bindings are, and can be changed. Copying sections to the users {{ic|~/.gtkrc-2.0}} file allows for changes on a per user basis.<br />
<br />
=== GNOME menu delay ===<br />
<br />
This setting controls the delay between pointing the mouse at a menu and that menu opening. This delay is measured in milliseconds.<br />
<br />
gtk-menu-popup-delay = 0<br />
<br />
=== Reduce widget sizes ===<br />
<br />
If you have a small screen or you just do not like big icons and widgets, you can resize things easily. <br />
<br />
To have icons without text in toolbars ([https://developer.gnome.org/gtk3/stable/gtk3-Standard-Enumerations.html#GtkToolbarStyle valid values]), use<br />
<br />
gtk-toolbar-style = GTK_TOOLBAR_ICONS<br />
<br />
To use smaller icons, use a line like this:<br />
<br />
gtk-icon-sizes = "panel-menu=16,16:panel=16,16:gtk-menu=16,16:gtk-large-toolbar=16,16\<br />
:gtk-small-toolbar=16,16:gtk-button=16,16"<br />
<br />
Or to remove icons from buttons completely:<br />
<br />
gtk-button-images = 0<br />
<br />
You can also remove icons from menus:<br />
<br />
gtk-menu-images = 0<br />
<br />
See also [http://martin.ankerl.com/2008/10/10/how-to-make-a-compact-gnome-theme/]{{Dead link|2020|03|29|status=404}} and [http://gnome-look.org/content/show.php/Simple+eGTK?content=119812].<br />
<br />
=== Hide CSD buttons ===<br />
<br />
To remove the minimize and maximize buttons from ''gtk3'' windows:<br />
<br />
gtk-decoration-layout=menu:close<br />
<br />
See [https://developer.gnome.org/gtk3/3.22/GtkSettings.html#GtkSettings--gtk-decoration-layout].<br />
<br />
=== Disable mouse paste ===<br />
<br />
To turn off pasting on middle mouse button click (aka PRIMARY):<br />
<br />
gtk-enable-primary-paste=false<br />
<br />
=== File-chooser start-up location ===<br />
<br />
Open the file-chooser within the '''current working directory''' and not the '''recent''' location. Normally the '''current working directory''' is the ''Home'' directory.<br />
<br />
'''GTK 3'''<br />
<br />
Change [[GNOME#Configuration|setting]] with the following command:<br />
<br />
$ gsettings set org.gtk.Settings.FileChooser startup-mode cwd<br />
<br />
'''GTK 2'''<br />
<br />
Add the following to {{ic|~/.config/gtk-2.0/gtkfilechooser.ini}}:<br />
<br />
StartupMode&#61;cwd<br />
<br />
=== Legacy scrolling behavior ===<br />
<br />
{{Note|This setting is not obeyed by all GTK applications.}}<br />
{{Tip|Legacy scrolling behaviour can be achieved reliably simply by using right click instead of left click.}}<br />
<br />
Prior to GTK 3.6, clicking on either side of the slider in the scrollbar would move the scrollbar in the direction of the click by approximately one page. Since GTK 3.6, the slider will move directly to the position of the click. This behaviour can be reverted in some applications by creating the file with the content below:<br />
<br />
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki><br />
[Settings]<br />
gtk-primary-button-warps-slider = false<br />
</nowiki>}}<br />
<br />
=== Disable overlay scrollbars ===<br />
<br />
Since GTK 3.15, overlay scrollbars are enabled by default, meaning that scrollbars will be shown only on mouseover in GTK 3 applications. This behavior can be reverted by setting the following environment variable: {{ic|1=GTK_OVERLAY_SCROLLING=0}}. See [[Environment variables#Graphical environment]].<br />
<br />
GTK 4 will no longer support {{ic|1=GTK_OVERLAY_SCROLLING}}. It has already been [https://github.com/GNOME/gtk/commit/e49615184a9d85bb0bb4e289b3ee8252adee3813#diff-3cf94c6e1eb009e20985034bc2210bfd dropped] from master. As of GTK 4, the overlay nature of the scrollbars is part of the toolkit. The blanket toggle has been removed to prevent developers from breaking applications that haven't been tested with both combinations. To allow application developers to decide what their applications should look like, the toolkit instead provides a mechanism to opt-out or add a setting for users. The function [https://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html#gtk-scrolled-window-set-overlay-scrolling gtk_scrolled_window_set_overlay_scrolling()] can be used to enable/disable overlay scrolling on a ''per-application'' basis. Application developers can optionally use [https://blog.gtk.org/2017/05/01/first-steps-with-gsettings/ GSettings] to have a user setting bound to the property.<br />
<br />
==== Remove overlay scroll indicators ====<br />
<br />
The positions of the overlay scrollbars are indicated by thin dashed lines in the application window. These dashed lines will be present even when overlay scrolling is disabled using the environment variable discussed in the section above. To remove the indicator lines, create the following file:<br />
<br />
{{hc|~/.config/gtk-3.0/gtk.css|<br />
/* Remove dotted lines from GTK 3 applications */<br />
undershoot.top, undershoot.right, undershoot.bottom, undershoot.left { background-image: none; }<br />
}}<br />
<br />
=== Examples ===<br />
<br />
GTK example configurations:<br />
<br />
{{Note|May be ignored by some [[desktop environments]] (e.g. [[GNOME]]).}}<br />
<br />
{{hc|~/.gtkrc-2.0|2=<br />
gtk-theme-name="Arc-Dark"<br />
gtk-icon-theme-name="breeze-dark"<br />
gtk-font-name="Sans 11"<br />
gtk-cursor-theme-name="Breeze_Amber"<br />
gtk-cursor-theme-size=0<br />
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ<br />
gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR<br />
gtk-button-images=0<br />
gtk-menu-images=0<br />
gtk-enable-event-sounds=0<br />
gtk-enable-input-feedback-sounds=0<br />
gtk-xft-antialias=1<br />
gtk-xft-hinting=1<br />
gtk-xft-hintstyle="hintslight"<br />
gtk-xft-rgba="rgb"<br />
}}<br />
<br />
{{hc|~/.config/gtk-3.0/settings.ini|2=<br />
[Settings]<br />
gtk-theme-name=Arc-Dark<br />
gtk-icon-theme-name=breeze-dark<br />
gtk-font-name=Sans 11<br />
gtk-cursor-theme-name=Breeze_Amber<br />
gtk-cursor-theme-size=0<br />
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ<br />
gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR<br />
gtk-button-images=0<br />
gtk-menu-images=0<br />
gtk-enable-event-sounds=0<br />
gtk-enable-input-feedback-sounds=0<br />
gtk-xft-antialias=1<br />
gtk-xft-hinting=1<br />
gtk-xft-hintstyle=hintslight<br />
gtk-xft-rgba=rgb<br />
# gtk-decoration-layout=menu:close<br />
# gtk-application-prefer-dark-theme=1<br />
}}<br />
<br />
== GDK backends ==<br />
<br />
GDK (the underlying abstraction layer of GTK) supports multiple backends to display GTK applications.<br />
<br />
=== Wayland backend ===<br />
<br />
The GDK [[Wayland]] backend is supported only by {{Pkg|gtk3}} and is the default backend when using [[Wayland]] display server. <br />
<br />
Applications that use versions of GTK prior to {{Pkg|gtk3}} don't have wayland support, and need to use Xwayland in order to run on a wayland session using the ''X11'' backend.<br />
<br />
{{Tip|To disable GTK window decorations in Wayland, [[install]] the {{AUR|gtk3-optional-csd}}{{Broken package link|package not found}} package and set the environment variable {{ic|1=GTK_CSD=0}}.}}<br />
<br />
=== Xorg backend ===<br />
<br />
If [[Xorg]] display server is in use, the backend defaults to ''x11'' automatically.<br />
<br />
It is possible to force GTK3 applications running on a wayland session to use the ''X11'' backend through Xwayland by setting the environment variable {{ic|GDK_BACKEND&#61;x11}}.<br />
<br />
=== Broadway backend ===<br />
<br />
The GDK Broadway backend provides support for displaying GTK applications in a web browser, using HTML5 and web sockets. <br />
[https://developer.gnome.org/gtk3/3.8/gtk-broadway.html]<br />
<br />
When using ''broadwayd'', specify the display number to use, prefixed with a colon, similar to X. The default display number is 0 (zero).<br />
<br />
$ display_number&#61;:5<br />
Start it.<br />
$ broadwayd $display_number <br />
<br />
Port used by default<br />
port &#61; 8080 + $display_number<br />
<br />
Point your browser to http://127.0.0.1:port<br />
<br />
To Start apps<br />
<br />
$ GDK_BACKEND&#61;broadway BROADWAY_DISPLAY&#61;$display_number ''<<app>>''<br />
<br />
Alternatively can set address and port<br />
<br />
$ broadwayd --port $port_number --address $address $display_number<br />
<br />
== Troubleshooting ==<br />
<br />
=== Different themes between GTK 2 and GTK 3 applications ===<br />
<br />
In general, if a selected theme has support for both GTK 2 and GTK 3, the theme will be applied to all GTK 2 and GTK 3 applications. If a selected theme has support for only GTK 2, it will be used for GTK 2 applications and the default GTK theme will be used for GTK 3 applications. If the selected theme has support for only GTK 3, it will be used for GTK 3 applications and the default GTK theme will be used for GTK 2 applications. Thus for application theme consistency, it is best to use a theme which has support for both GTK 2 and GTK 3.<br />
<br />
You could find what themes installed on your system have both an GTK 2 and GTK 3 version by using this command (does not work with names containing spaces):<br />
find $(find ~/.themes /usr/share/themes/ -wholename "*/gtk-3.0" | sed -e "s/^\(.*\)\/gtk-3.0$/\1/") -wholename "*/gtk-2.0" | sed -e "s/.*\/\(.*\)\/gtk-2.0/\1"/<br />
<br />
=== Theme not applied to root applications ===<br />
<br />
As user theme files ({{ic|$XDG_CONFIG_HOME/gtk-3.0/settings.ini}}, {{ic|~/.gtkrc-2.0}}) are not read by other accounts, the selected theme will not apply to [[Running_X_apps_as_root|X applications run as root]]. Possible solutions include:<br />
<br />
* Create symlinks, e.g<br />
# ln -s /home/[username]/.gtkrc-2.0 /etc/gtk-2.0/gtkrc<br />
# ln -s /home/[username]/.config/gtk-3.0/settings.ini /etc/gtk-3.0/settings.ini<br />
* Configure system-wide theme files: {{ic|/etc/gtk-3.0/settings.ini}} (GTK 3) or {{ic|/etc/gtk-2.0/gtkrc}} (GTK 2)<br />
* Adjust the theme as root<br />
# lxappearance<br />
* Use a settings daemon (this is what most desktop environments do). A desktop-agnostic variant using [https://specifications.freedesktop.org/xsettings-spec/xsettings-spec-0.5.html XSettings]{{Dead link|2020|03|29|status=404}} is available in the [[AUR]] under {{aur|xsettingsd-git}}.<br />
<br />
=== Client-side decorations ===<br />
<br />
GTK 3.12 introduced [https://blogs.gnome.org/mclasen/2013/12/05/client-side-decorations-in-themes/ client-side decorations], which move the title-bar away from the window manager. This may present issues such as [http://redmine.audacious-media-player.org/boards/1/topics/1135 double title-bars], no title-bar at all or [https://github.com/chjj/compton/issues/189 double shadows] with compositing enabled.<br />
<br />
To remove the shadow and gap around windows (for example in combination with a tiling window manager), create the following file:<br />
<br />
{{hc|~/.config/gtk-3.0/gtk.css|<nowiki>.window-frame, .window-frame:backdrop {<br />
box-shadow: 0 0 0 black;<br />
border-style: none;<br />
margin: 0;<br />
border-radius: 0;<br />
}<br />
<br />
.titlebar {<br />
border-radius: 0;<br />
}<br />
<br />
.window-frame.csd.popup {<br />
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.13);<br />
}<br />
<br />
.header-bar {<br />
background-image: none;<br />
background-color: #ededed;<br />
box-shadow: none;<br />
}<br />
/* You may want to use this if you don't like the double title.<br />
GtkLabel.title {<br />
opacity: 0;<br />
}*/<br />
</nowiki>}}<br />
<br />
To adjust the buttons in the header bar, use the {{ic|gtk-decoration-layout}} setting. [https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings--gtk-decoration-layout] The below examples removes all buttons:<br />
<br />
{{hc|~/.config/gtk-3.0/settings.ini|2=<br />
gtk-decoration-layout=menu:<br />
}}<br />
<br />
=== cedilla ç/Ç instead of ć/Ć ===<br />
<br />
See [https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/518056], and [https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/518056/comments/37] for a workaround using Xcompose (US international layout).<br />
<br />
===Suppress warning about accessibility bus===<br />
<br />
If you do not use any [https://wiki.gnome.org/Accessibility Gnome Accessibility] features, you may receive warnings like:<br />
<br />
WARNING **: Couldn't connect to accessibility bus:<br />
<br />
To suppress these warnings, execute programs with {{ic|1=NO_AT_BRIDGE=1}} or set that as a global [[environment variable]].<br />
<br />
=== Titlebar background color mismatch ===<br />
<br />
If you are using a [[window manager]] which uses a window decoration theme that mimics the GTK theme background color, you may find that the titlebar color no longer completely matches the application color in some GTK 3 applications. As a workaround, create the following file:<br />
{{hc|~/.config/gtk-3.0/gtk.css|<br />
/* Always use background color */<br />
GtkWindow {<br />
background-color: @theme_bg_color;<br />
}<br />
<br />
/* Fix tooltip background override */<br />
.tooltip {<br />
background-color: rgba(0, 0, 0, 0.8);<br />
}<br />
<br />
.tooltip * {<br />
background-color: transparent;<br />
}<br />
<br />
/* Fix Nautilus desktop window background override */<br />
NautilusWindow {<br />
background-color: transparent; <br />
}<br />
}}<br />
<br />
=== Wrong focus events with tiling window managers ===<br />
<br />
{{Note|1=This disables smooth scrolling and touchscreen support for GTK3 applications. [https://bugzilla.gnome.org/show_bug.cgi?id=677329#c14]}}<br />
<br />
[[Define]] {{ic|1=GDK_CORE_DEVICE_EVENTS=1}} to use GTK2 style input, instead of xinput2. [https://bugzilla.gnome.org/show_bug.cgi?id=677329#c10]<br />
<br />
=== Thumbnail support for GTK file dialog ===<br />
<br />
Install {{AUR|gtk2-patched-filechooser-icon-view}} and {{AUR|gtk3-patched-filechooser-icon-view}} to have the option to view files as thumbnails instead of list in the GTK file chooser.<br />
<br />
=== Button and menu icons ===<br />
{{Accuracy|Explain what the issue is. GNOME ignores {{ic|settings.ini}} if GDM is used.}}<br />
For some applications in GNOME's Wayland session. Your {{ic|~/.config/gtk-3.0/settings.ini}} file is misconfigured. This can happen if you try other GTK based desktop environments. These are the offending values:<br />
<br />
{{hc|~/.config/gtk-3.0/settings.ini|<nowiki>[Settings]<br />
gtk-button-images=1<br />
gtk-menu-images=1</nowiki>}}<br />
<br />
Simply set them to 0 or remove the whole file to use GNOME defaults.<br />
<br />
=== GTK 3 without polkit ===<br />
<br />
GTK3 depends on polkit through colord, which is required for printing. However printing works fine without polkit installed; at least with a monochrome printer and package versions gtk3-print-backends=3.22.19-2 and colord=1.4.1-1.<br />
<br />
=== Some GTK 2 themes only change the UI color palette ===<br />
<br />
Depending on the theme of choice's support for GTK 2, UI controls may still have the default Raleigh appearance, possibly with a different color palette. This is due to these themes requiring the GTK 2 Murrine engine, which is missing (GTK 2 programs should complain about it on their standard error output). Install the {{Pkg|gtk-engine-murrine}} package.<br />
<br />
=== Patching GTK file chooser to use regular type ahead ===<br />
<br />
GTK file chooser uses the same type-ahead-find feature as [[GNOME/Files]]. This can be very jarring and doesn't fit in very well with other desktop enviroments.<br />
<br />
Some applications support XDG-desktop-portal which allows application to use the native file chooser. If that doesn't work you can restore type-ahead functionality by using a patched GTK, for example {{aur|gtk3-mushrooms}}.<br />
<br />
== See also ==<br />
<br />
* [https://www.gtk.org/ The official GTK website]<br />
* [[Wikipedia:GTK|Wikipedia article about GTK]]</div>Betseghttps://wiki.archlinux.org/index.php?title=Talk:Installation_guide&diff=640574Talk:Installation guide2020-11-04T10:26:55Z<p>Betseg: /* accessibility options */</p>
<hr />
<div>== Read this first before adding new suggestions ==<br />
<br />
* systemd tools such as ''hostnamectl'', ''timedatectl'' and ''localectl'' [https://github.com/systemd/systemd/issues/798#issuecomment-126568596 do not work] in the installation chroot environment, so please do not propose to use them in the guide unless you can prove that they have been made to work also in that case. See [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=388727#General_problems], [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=404695#Replace_commands_with_their_systemd_equivalents], [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=418662#Utilizing_systemd_tools] and [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=434985#change_configuration_system_from_old_way_to_new_way.28using_systemd_commands.29] for some past discussions about this issue.<br />
* {{ic|localectl list-keymaps}} does not work due to bug {{Bug|46725}}. For the chosen replacement command, see [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=435044#localectl].<br />
* {{ic|localhost}} must be set explicitely in {{ic|/etc/hosts}}, as it is otherwise resolved over the network. See {{Bug|56684}}.<br />
-- [[ArchWiki:Administrators|The ArchWiki Administrators]] 22:17, 2 September 2016 (UTC)<br />
__TOC__<br />
<br />
== Link to the German version ==<br />
<br />
Instead of [[de:Arch Install Scripts]] you could choose [[de:Anleitung für Einsteiger]] it means "Beginner's Guid" and is a very <br />
detailed artikel for very new arch users and the future experts.<br />
<br />
:Thank you, [https://wiki.archlinux.org/index.php?title=Installation_guide&type=revision&diff=509961&oldid=508505 done]. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 16:31, 6 February 2018 (UTC)<br />
<br />
::This was already proposed last year and rejected: [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=466950#Suggesting_different_page_for_German_translation]. I don't see what has changed since then. If someone adds me as admin to the german wiki or changes the protection settings, I can update [[de:Arch Install Scripts]] as required. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:13, 6 February 2018 (UTC)<br />
<br />
:::I see, I didn't remember that discussion so I've reverted the change, hopefully you'll make it to update the translation, let's leave this open until the problem is solved, otherwise this kind of suggestion will keep appearing recurrently. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:53, 7 February 2018 (UTC)<br />
<br />
== Why should a static IP be preferred over 127.0.1.1 in /etc/hosts? ==<br />
<br />
"If the system has a permanent IP address, it should be used instead of 127.0.1.1."<br />
<br />
I think the ArchWiki should not just say do X but also why. [[User:Alad|Alad]] as you added this, perhaps you can explain?--[[User:Larivact|Larivact]] ([[User talk:Larivact|talk]]) 15:14, 21 May 2018 (UTC)<br />
<br />
:In [[Network_configuration#Local hostname resolution]]: "For a system with a permanent IP address, that permanent IP address should be used instead of 127.0.1.1." -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 06:48, 22 May 2018 (UTC)<br />
<br />
::[https://wiki.archlinux.org/index.php?title=Network_configuration&diff=340138&oldid=333485 First] appearance in our wiki, cited [https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_the_hostname_resolution source], also [https://wiki.archlinux.org/index.php?title=Talk:Network_configuration&oldid=360328#Hostname_resolution discussion]. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 10:26, 22 May 2018 (UTC)<br />
<br />
:::Clear enough, close. -- [[User:Blackteahamburger|Blackteahamburger]] ([[User talk:Blackteahamburger|talk]]) 01:58, 10 August 2020 (UTC)<br />
<br />
::::This should be explained in the guide or at least in [[Network_configuration#Local hostname resolution]]. Explaining stuff in the edit summary or on talk pages is not enough. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 09:43, 10 August 2020 (UTC)<br />
<br />
== Wording in example layout table and size of EFI partition ==<br />
<br />
=== Formatting the ESP ===<br />
<br />
I believe myself that the partition table should be modified. When Going through the install, it was confusing how swap was the last partition, usually suppose to be the partition before Root, as if the computer loads up swap before user login. Didn't realize that a GPT disk needed to be formatted until reading this guide: https://wiki.archlinux.org/index.php/EFI_system_partition . Would recommend at least linking to this section of the document or even input Format partition section within the Wiki. [[User:Shaggy|Shaggy]] ([[User talk:Shaggy|talk]]) 20:15, 29 June 2020 (UTC)Shaggy<br />
<br />
:The order of partitions is irrelevant and it has (mostly) no effect on booting. The fact that the [[ESP]] needs to formatted after its creation cannot be simply stated, as it could be misinterpreted as requiring to always format it, even if is an existing partition that already has a file system.<br />
:After reading [https://bbs.archlinux.org/viewtopic.php?pid=1912222#p1912222 an anecdote], I think moving swap before root should be considered :D<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:39, 1 July 2020 (UTC)<br />
<br />
:I've been thinking, how about placing the {{ic|mkfs.fat -F32 /dev/sdxY}} command in [[Installation guide#Format the partitions]]. [[EFI system partition#Format the partition]] could instead be modified to omit the FAT type (i.e {{ic|mkfs.fat /dev/sdxY}}). FAT32 is a recommendation, but not mandatory, thus it's more appropriate for the [[Installation guide]], and this would allow to document the 2 MiB FAT12 formatted ESP, used by [[User:Eschwartz]] and others, in the [[EFI system partition]] article. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:14, 13 August 2020 (UTC)<br />
<br />
== HiDPI on the console ==<br />
<br />
With an ever increasing number of [[HiDPI]] displays, including at the begging of the article a section about adjusting the scaling factor or changing the font can be helpful, see [[HiDPI#Linux_console]]. [[User:Goetzc|Goetzc]] ([[User talk:Goetzc|talk]]) 02:21, 8 August 2019 (UTC)<br />
<br />
:It could be added as an example for {{ic|setfont}} in [[Installation_guide#Set_the_keyboard_layout]]. The issue I have is that [[HiDPI#Linux_console]] mentions that {{ic|tty2-6}} may be unusable, while the Installation guide specifically instructs to change ttys as required in [[Installation_guide#Boot_the_live_environment]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:07, 7 September 2019 (UTC)<br />
<br />
::May be as an example for the line "See README.bootparams for a list of boot parameters" [[Installation_guide#Boot_the_live_environment]], it could be specified to hit {{ic|e}} button to edit the boot entry and add the following parameters to the boot line, like {{ic|1=video=1920x1080}} if you have HiDPI display. -- [[User:Xzorg6|Xzorg6]] ([[User talk:Xzorg6|talk]]) 22:41, 15 December 2019 (UTC)<br />
<br />
:::{{ic|1=video=}} will just change the resolution. To get a bigger font on the console, you need {{ic|1=CONFIG_FONT_TER16x32=y}} in the kernel config and {{ic|1=fbcon=font:TER16x32}} in the kernel command line. Since the official kernels don't enable {{ic|CONFIG_FONT_TER16x32}}, someone will need to open a bug report asking for it. After that, the instructions for setting the {{ic|1=fbcon=font:TER16x32}} [[kernel parameter]] could be added to the wiki. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:52, 16 December 2019 (UTC)<br />
<br />
::::{{Pkg|linux}} 5.5.6.arch1-1 <s>(currently in testing)</s> has {{ic|1=CONFIG_FONT_TER16x32=y}} ({{Bug|64861}}). <s>If if gets move to core before March, then</s> the March iso will have it. It's probably a good idea to start drafting a [[Template:Tip|tip]] to place in [[Installation guide#Boot the live environment]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:12, 26 February 2020 (UTC)<br />
<br />
::::And just after I wrote this, the package was moved to core. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:27, 26 February 2020 (UTC)<br />
<br />
:::::I'm seeing multiple claims[https://bbs.archlinux.org/viewtopic.php?id=253319][https://www.reddit.com/r/archlinux/comments/fbi4vx/text_size_during_boot_changed_since_my_last/][https://www.reddit.com/r/archlinux/comments/fgct3t/how_to_get_currently_loaded_console_font_of_the/] that people with HiDPI screens are getting the TER16x32 font. I was not aware that the kernel chooses a font depending on screen size. Can anyone confirm that this really is the case? If it really works that way and unless {{Bug|65680}} messes this up, then there's nothing to add to the Installation guide about this topic. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:02, 11 March 2020 (UTC)<br />
<br />
::::::As per https://lkml.org/lkml/2019/6/18/966 the decision to use ter16x32 is not based on screen size but only resolution.So even though a 1080p screen may be hidpi it does not use ter16x32 [[User:M.Srikanth|M.Srikanth]] ([[User talk:M.Srikanth|talk]]) 10:17, 11 May 2020 (UTC)<br />
<br />
:::::::At least that part is now clear, thanks. The first step should be to get [[HiDPI#Linux console]] up to date. After that, as I've said before, a tip for the installation guide can be drafted. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:04, 11 May 2020 (UTC)<br />
<br />
:::::::: I fixed the page and removed the template [[User:M.Srikanth|M.Srikanth]] ([[User talk:M.Srikanth|talk]]) 12:25, 11 May 2020 (UTC)<br />
<br />
== First mention of /mnt in example partition layout ==<br />
<br />
{{ic|/mnt}} is mentioned at mount point in [[Installation_guide#Partition_the_disks]], while {{ic|/mnt}} is made explicit two sections later in [[Installation_guide#Mount_the_file_systems]]. As I recall it, this was changed because some users blindly copy pasted commands and mounted /boot on the live system, instead of /mnt/boot. Some options:<br />
<br />
* Introduce another column describing the mount point on the installed system. <br />
* Actually explain /mnt early.<br />
* Revert the "mount point" to not include /mnt.<br />
<br />
-- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:03, 7 September 2019 (UTC)<br />
<br />
:I don't understand what's the actual problem here... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 09:36, 8 September 2019 (UTC)<br />
<br />
::From what I read on [[ArchWiki:IRC|#archlinux-wiki]], this comes from https://www.reddit.com/r/archlinux/comments/d0v0j3/is_it_just_me_or_is_the_prospect_of_installing/ where the user was confused by the lack of root mountpoint (i.e. {{ic|/mnt}} vs {{ic|/}}). A question could be raised, if we should concern ourselves with users who have strong opinions about the wiki content yet can't be bothered to propose improvements in the talk pages...<br />
::About Alad's proposed options: I disagree with the first option, I think it will just complicate things even further. I support the third option and maybe adjusting the column header like in [[Special:Diff/581800]].<br />
::I'd actually would like to go even further and change the commands run from outside chroot to be visually distinct, e.g.: {{bc|1=<span style="color: #ff0000;">root@archiso #</span> mount /dev/sd''X1'' /mnt}}<br />
::I think it would better solve the underlying issue. <br />
:: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:26, 8 September 2019 (UTC)<br />
<br />
:::I'm not overly fond of the longer column name. For the last proposed option, I may agree if this is formalized in [[Help:Style]], so that it is not specfic to the [[Installation guide]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:20, 10 September 2019 (UTC)<br />
<br />
::::Adding it [[Help:Style]] was my intention, since other articles, too, will need to use that style for some commands. I'm thinking of creating a template for it: [[Special:Permalink/581945]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:19, 11 September 2019 (UTC)<br />
<br />
:::::Sounds good to me, I'd just prefer the regular (non-bold) font for the prompt as above. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 21:54, 13 September 2019 (UTC)<br />
<br />
::::::[[Special:Permalink/582327]]. Are there any other opinions about creating such a template? Or should I take this discussion to [[Help talk:Template]] per [[Help:Template#Creation]]? -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 18:31, 14 September 2019 (UTC)<br />
<br />
:::::::# How are you going to call the template? This template would probably add to the [[Help:Template#Code formatting templates]] series, should it be named in a consistent fashion?<br />
:::::::# Should this template support custom prompts, and if so, should it be called "pc" (from "(custom) prompted" code)?<br />
:::::::# I don't like the red color too much, if bold is not an option maybe we can go green|purple|blue, something that recalls less a warning of some kind? Or can we just leave it with the default font color? Or a slightly fainter black?<br />
:::::::# I haven't looked well into it, but maybe we can instead add an optional argument to [[Template:bc]] and [[Template:hc]] that prefixes a custom (colored) prompt? I wouldn't see a problem with repeating "root@archiso #" in every instance, or we may derive the new template from those two at that point.<br />
:::::::# The template should probably be derived from [[Template:bc]] in any case, for simpler code, see [[User:Kynikos/Template:Sandbox2]].<br />
:::::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:36, 16 September 2019 (UTC)<br />
<br />
::::::::# Initially I was going to call it [[Template:Archiso]] since it would be [[Archiso]]-specific, but I'm starting to think that creating a more general-purpose template would be better. It could then be used in [[PostgreSQL]] and the {{ic|[postgres]$}} convention would get formalized in [[Help:Style]]. Now the issue is the {{ic|[user@peer-a]#}} in [[Template:hc]] used in [[WireGuard]]. I'd rather not create two new templates, but I'm having trouble getting [[Template:Sandbox]] to work :(<br />
::::::::# I like your "[[Template:pc]]" suggestion.<br />
::::::::# Be glad I didn't post my first draft that was ''slightly more'' colorful. From your offered colors, I'd choose purple.<br />
::::::::# I'd rather not mess with the established templates just for this change, so I'd prefer creating a new template.<br />
::::::::# I didn't even think about using [[Template:bc]]. Is it a good idea to do that? The new template might need to be updated if [[Template:bc]] is ever changed in an incompatible way.<br />
:::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:33, 17 September 2019 (UTC)<br />
<br />
:::::::::Yeah, after viewing your attempts and looking into it myself, I think modifying bc/hc is out of discussion, it would add too much code/style for so little use.<br />
:::::::::Thinking about this again one day after, I feel I'm realizing that my concerns in general may descend from the fact that we're going to create a template to represent (block) code, even though we already have 2 which basically do the same thing, including allowing to include a prompt; the only addition of this "Archiso" or "pc" template would be the formatting around the prompt, so why not keep it simple (I know, "simplicity" is often subjective and controversial) and instead either make a [[Template:Archiso]] to be used like {{ic|<nowiki>{{bc|{{Archiso}} mount /dev/sdX1 /mnt}}</nowiki>}} or [[Template:ps]] (or [[Template:PS]]) to be used like {{ic|<nowiki>{{hc|{{ps|root@archiso #}} mount /dev/sdX1 /mnt}}</nowiki>}}? They also work with [[Template:hc]] and space-prefixed code blocks!<br />
:::::::::Putting the choice of color aside, if the above idea of a standalone prompt template isn't welcome, I think my second choice would be to make two [[Template:pbc]] and [[Template:phc]] that work like {{ic|<nowiki>{{pbc|$|ls}}</nowiki>}} and {{ic|<nowiki>{{phc|$|ls|...}}</nowiki>}}, with the style rule to use them only in case of complex prompts. I'd still derive them from bc/hc to inherit any changes that we'd decide to make to them, and avoid repeating that ugly &lt;pre> hack even more.<br />
:::::::::Otherwise I give up and accept the [[Template:Archiso]] that works like {{ic|<nowiki>{{Archiso|mount /dev/sdX1 /mnt}}</nowiki>}}, in the hope that one day we won't need an analogous "hc" version.<br />
:::::::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:24, 17 September 2019 (UTC)<br />
<br />
::::::::::I can't say I really like the idea of {{ic|<nowiki>{{bc|{{Archiso}} mount /dev/sdX1 /mnt}}</nowiki>}} or {{ic|<nowiki>{{hc|{{ps|root@archiso #}} mount /dev/sdX1 /mnt}}</nowiki>}}. I'd prefer creating [[Template:pbc]] and [[Template:phc]].<br />
::::::::::I still don't get what's wrong with [[Template:Sandbox]]. It should just work:<br />
<br />
<pre<noinclude></noinclude> {{#if: code|style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"}}>prompt # command</pre<noinclude></noinclude>><noinclude><!-- The &lt;noinclude>&lt;/noinclude> hack is needed to allow wiki markup inside the pre tags; reference: http://www.gossamer-threads.com/lists/wiki/mediawiki/118688#118688 --><br />
{{#if: code|<pre<noinclude></noinclude> style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">code</pre<noinclude></noinclude>>}}<br />
<br />
:::::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 04:43, 18 September 2019 (UTC)<br />
<br />
:::::::::::FWIW (and a bit of fun) I've fixed [[Template:Sandbox]], although I'm not sure if we really need that level of automation ^^ I stick to my position above, is there a third (or more) opinion? -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:48, 18 September 2019 (UTC)<br />
<br />
:::::::::I think you like the [https://wiki.archlinux.org/index.php?title=User_talk:Nl6720&diff=447834&oldid=447833 #800080] shade of purple, right? ;-) [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 11:39, 21 September 2019 (UTC)<br />
<br />
::::::::::Yes, I do like that one :D but I think it would be too bright for this template. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:52, 21 September 2019 (UTC)<br />
<br />
== Changes for the base package ==<br />
<br />
=== Installations without base ===<br />
<br />
The base group was replaced with the base package: [https://www.archlinux.org/news/base-group-replaced-by-mandatory-base-package-manual-intervention-required/] This change was reflected in [[Installation_guide#Install_the_base_packages]] with [https://wiki.archlinux.org/index.php?title=Installation_guide&diff=584504&oldid=582205] <br />
<br />
With [https://wiki.archlinux.org/index.php?title=Installation_guide&diff=584505&oldid=584504], I removed the sentence "We only officially support installations that have the {{Pkg|base}} package installed." because it opens a new rabbit-hole when something is "officially supported" in the installation guide, is not. With this sentence included, pretty much anything (including "installations" that are not, or only partially, followed from the [[Installation guide]]) may be supported merely from having the {{Pkg|base}} package installed.<br />
<br />
On the other hand, some notion that removing the {{Pkg|base}} package results in an installation that is "not Arch" makes sense, but we should discuss on the best approach on doing this. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:22, 6 October 2019 (UTC)<br />
<br />
== Buggy graphics driver ==<br />
<br />
Can there be a hint that nomodeset parameter could be used if the graphics driver is buggy (I've heard nouveau may be buggy sometimes)<br />
[[User:M.Srikanth|M.Srikanth]] ([[User talk:M.Srikanth|talk]]) 04:47, 12 May 2020 (UTC)<br />
<br />
== Add a reference in <#Partition the disks> to EFI formatting ==<br />
<br />
As is, there's no hint as to how to format the EFI partition in this section or in the links, so I suggest we add that this line,<br />
See [[EFI system partition#Format the partition]].<br />
{{Unsigned|07:03, 15 May 2020 UTC|Ttoirrah}}<br />
<br />
:[[Installation guide#Partition the disks]] has two links to the [[EFI system partition]] article. Did you perhaps mean [[Installation guide#Format the partitions]]? -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:42, 15 May 2020 (UTC)<br />
<br />
== Add a reference to btrfs snapshots in <#Partition the disks>==<br />
<br />
new users may be unfamiliar with subvolumes, providing links to [[ btrfs ]] and [[snapper]] will point them in the right direction. <br />
<br />
this is important because moving to btrfs snapshots afterwards will involve reformatting. <br />
<br />
https://wiki.archlinux.org/index.php/Installation_guide#Partition_the_disks<br />
<br />
{{unsigned|02:12, 4 July 2020|Edgeworth}}<br />
<br />
:All file systems, including [[btrfs]] and its subvolumes, are unrelated to partitioning. The example layouts in the installation guide cover only swap [+ ESP] + the root partition, so if you decide later that you want to use a btrfs subvolume for e.g. {{ic|/var}}, there is no need to change the partitions. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:39, 4 July 2020 (UTC)<br />
<br />
but what if you wanted to have <tt>/</tt> be a subvolume? So a use case i could envision is:<br />
<br />
* creating a snapshot called <tt>@</tt> and mounting it at <tt>/</tt><br />
* another called <tt>@home</tt> and mounting that at <tt>/home</tt> <br />
* Another called <tt>@snapshots</tt> and mounting that at <tt>/.snapshots</tt><br />
<br />
this way you could use ‘’Timeshift’’ and ‘’Snapper’’<br />
<br />
but, I may be mistaken, wouldn’t this be significantly easier to do before hand rather than after the fact? Maybe just a little bubble pointing users in the right direction, I say this because I only recently discovered btrfs and timeshift and I just never stumbled accross it, so making it more visible would have been very helpful.<br />
<br />
[[User:Edgeworth|Edgeworth]] ([[User talk:Edgeworth|talk]]) 01:38, 5 July 2020 (UTC)Edgeworth<br />
<br />
:Btrfs subvolumes are created after formatting the file system not during disk partitioning. "[[Installation guide#Format the partitions]]" links to "[[File systems]]" which has a link to "[[Btrfs]]". If you want to recommend using subvolumes, add a tip to [[Btrfs#File system creation]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:09, 5 July 2020 (UTC)<br />
<br />
:: ok that stands to reason, but the example in "[[Installation guide#Format the partitions]]" is <tt>ext4</tt> and if a new user just has no idea about COW file systems like btrfs/zfs there’s a good chance that they will never discover it, atleast until after they’ve installed the system. <br />
::Perhaps a tip box near that example to suggest researching btrfs subvolumes and snapshots could be helpful? ideally with a link to [[Snapper#Suggested_filesystem_layout]].<br />
::Snapshots are really helpful with a rolling release so i’d argue they should be encouraged.<br />
::[[User:Edgeworth|Edgeworth]] ([[User talk:Edgeworth|talk]]) 01:02, 6 July 2020 (UTC)Edgeworth<br />
<br />
:::If the new user has no idea about COW file systems, there is a good chance that they have no idea about any type of file systems, so they should review the [[File systems]] page (which is linked from the section before showing the example with ext4) and select the file system they like. Adding file system-specific notes or even recommendations to the installation guide does not make sense - they should be placed in sections related to the subject, so that users of other file systems are not bothered with them. As noted, that's [[Btrfs#File system creation]] in this case - everybody who had initially no idea about COW file systems and who decides to use [[Btrfs]] must go through that section before installing their system. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:27, 6 July 2020 (UTC)<br />
<br />
:::: I agree that the bulk of the material should be on a dedicated page but there are many pages to read and only so much time in the day, perhaps a stronger recommendation to review the file system page then? perhaps saying something to the effect of “file systems such as ext4, btrfs, zfs and so on have various strengths and weaknesses, users are advised to read the [[file systems]] page before proceeding.”<br />
<br />
:::: the idea being that users new to linux, or just arch, get exposed to as many helpful things as possible just by going through the installation guide<br />
<br />
:::: Im sure there are users who know enough to get going that simply don’t realise that snapshots are a thing (i.e. there not on windows), but I wouldn’t say it’s fair to suggest they don’t know anything about file systems either. <br />
<br />
::::: anecdotally ive been using linux for nearly 10 years (arch for 3) and btrfs just never really came up on my radar until last year, i’m not a computer scientist so i never really went looking because I didn’t know it bought anything to the table and so if the installation guide pushed me in that direction I could have avoided a lot of grief by using snapshots.<br />
<br />
:::: [[User:Edgeworth|Edgeworth]] ([[User talk:Edgeworth|talk]]) 07:41, 6 July 2020 (UTC)Edgeworth<br />
<br />
== GitLab blobs in Lynx ==<br />
<br />
Links to files (blobs) on gitlab.archlinux.org are not readable in Lynx (or any other console web browser); see https://gitlab.com/gitlab-org/gitlab/-/issues/26567.<br />
<br />
Should the Installation guide link to raw files instead?<br />
<br />
-- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 12:29, 4 August 2020 (UTC)<br />
<br />
:Maybe you could ask svenstaro to add it to https://gitlab.com/gitlab-org/gitlab/-/issues/232073... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 12:36, 4 August 2020 (UTC)<br />
<br />
::It has been filed under [https://gitlab.com/gitlab-org/gitlab/-/issues/232073#nice-to-have nice to have]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:19, 4 August 2020 (UTC)<br />
<br />
== RAM usage ==<br />
<br />
Attempting to boot the ISO with 532MB RAM (VM) and it hangs at attempting to mount the ISO.<br />
Changing RAM to 544MB allows the Arch ISO to boot, so I suspect the amount of RAM needed on the page isn't accurate. [[User:Beepboo|Beepboo]] ([[User talk:Beepboo|talk]]) 14:11, 17 August 2020 (UTC)<br />
<br />
<br />
:[https://wiki.archlinux.org/index.php?title=Installation_guide&diff=632251&oldid=631819 Updated again]. Note that after installation the system can still easily get under 512 MB. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 14:05, 17 August 2020 (UTC)<br />
<br />
:: Lahwaacz, it's missing fullstop "{{ic|.}}" in the end of this sentence. -- [[User:Josephgbr|Josephgbr]] ([[User talk:Josephgbr|talk]]) 23:49, 17 August 2020 (UTC)<br />
<br />
::: Actually not missing (found it just now), but should it be after the reference link? -- [[User:Josephgbr|Josephgbr]] ([[User talk:Josephgbr|talk]]) 23:51, 17 August 2020 (UTC)<br />
<br />
::::It's used the same way also in [[Installation guide#Select the mirrors]]. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:01, 18 August 2020 (UTC)<br />
<br />
:::::From what I've seen, most wiki pages use it the same way. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:52, 19 August 2020 (UTC)<br />
<br />
::::::There is actually an open discussion about this: [[Help talk:Style/Formatting and punctuation#Reference links before or after punctuation marks?]] -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:05, 19 August 2020 (UTC)<br />
<br />
== Adjust Networking "Works out of the Box" Guidance ==<br />
<br />
Hello, I installed Arch and had some trouble with the networking. I wrote an article about it:<br />
<br />
https://ae1020.github.io/arch-linux-network-after-boot/<br />
<br />
The thing that tripped me up is that the networking from the LiveCD worked, and it had registered on me that networking should "work out of the box". When I did the `arch-chroot` it still worked. It didn't stop working until the reboot, and by then it was a Catch-22 to fix...and forced sifting through advice that was hard to interpret (and hard to test). I feel some changes to the wording and emphasis could greatly reduce potential problems.<br />
<br />
For instance, where it says '''Connect to the Internet''' at the beginning, this could be more explicit as '''Check the LiveCD Internet Connection'''. The first sentences after that could be something like:<br />
<br />
''"A connection is required to download the base system. So the LiveCD is configured to try common network connections with `systemd`'s networking, which might work automatically. '''But please note that later in the process, you will have to *manually* set up the network on your new installation partition--which does not come configured in the base system.'''"''<br />
<br />
That would set expectations. In the later step that says '''Network Configuration''', it currently starts by having you edit `/etc/hostname` and `/etc/hosts`. I think this minimizes the most important aspects of the step--because booting into a system with no network is kind of falling off a cliff in the process. Seems it would be better to open with something like:<br />
<br />
''"The network connectivity being used for installation so far is only configured on the LiveCD, not the new base system on your partition. '''This means that if you do not right now install ''and'' configure [[network management]] software, you will have NO network connectivity when you boot into your system.''' You'll be unable to get files to solve the lack of connectivity with `pacman`, so you will have to reboot into the LiveCD again and `arch-chroot` to bring you back to this point to try again."''<br />
<br />
Networking is a crucial-enough ability that I think it would be worth it to have this section take a more active hand in guiding to making sure it works on that first reboot. (Or if it doesn't work, at least people know to snap back into the LiveCD with a mount and a chroot.) Helping people know what the actual next step is in the Network Configuration section seems important, and I don't think the current links give any sense of what that step should be. So expanding the section to summarize the user's obligations and anything they can do to confirm they've done it right before rebooting would help tremendously. [[User:AE1020|AE1020]] ([[User talk:AE1020|talk]]) 02:31, 19 August 2020 (UTC)<br />
<br />
:There is no need to be this verbose, the installation guide is not a blog. The sentence "Complete the network configuration for the newly installed environment, that includes installing your preferred network management software." in [[Installation guide#Network configuration]] and the note in [[Installation guide#Connect to the internet]] are already pretty clear. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 06:57, 19 August 2020 (UTC)<br />
<br />
::I'm sure it could be less verbose. But even the minor tweaks I suggest like changing the section name to "Check the LiveCD Internet Connection" and removing the "should work out of the box" phrasing would aid in comprehension of the process as a whole. This reinforces to user they are not now done with "configure the internet" that "worked out of the box". I believe other adjustments could help without increasing the length...if that is a requirement. [[User:AE1020|AE1020]] ([[User talk:AE1020|talk]]) 08:32, 19 August 2020 (UTC)<br />
<br />
:::The guide does not use "LiveCD" anywhere, so why should it be in the title? Note that there is no "CD" anywhere, unless you actually burned the image on a CD, but that may not be the case for others. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:44, 19 August 2020 (UTC)<br />
<br />
::::I see the phrase "live environment" is used, so it could be "check the live environment's net connection". [[User:AE1020|AE1020]] ([[User talk:AE1020|talk]]) 08:52, 19 August 2020 (UTC)<br />
<br />
:::::I think [[Special:Diff/633954]] should be enough for a clarification. Any more would be too excessive. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:36, 1 September 2020 (UTC)<br />
<br />
== Alter the test for Internet Connection ==<br />
<br />
In the section "Boot the live environment", a note is mentioned about using ping to test an internet connection.<br />
During my first installation, I followed the guide and found trouble upon reaching the "Connect to the internet subsection".<br />
<br />
I had tried three different connections; two different ethernet interfaces and one wireless interface.<br />
All three appeared to be working with each interface showing a state of "UP", being assigned an IP by DHCP, and drivers showing as loaded.<br />
<br />
Though, upon issuing "ping 8.8.8.8", no packets were received.<br />
After spending hours looking through the forum, wiki articles and various websites and even altering the machine I intended to install to; I decided to try to ping a website from a machine that I knew had internet access. Still, neither ping nor traceroute would work.<br />
This indicates ICMP Packets are blocked by my router.<br />
I then ran the "Installation_guide" script and found that my Arch Iso indeed had an internet connection after all.<br />
<br />
I think it would be a good idea to suggest accessing the Installation guide from the live iso rather than using ping.<br />
ICMP Packets are blocked by default on many consumer grade routers, and certainly on almost every enterprise network.<br />
It is far less likely that an HTTP request would be blocked, so I think this is a far better test for internet connection.<br />
<br />
-[[User:Sunny73cr|Sunny73cr]] ([[User talk:Sunny73cr|talk]]) 10:58, 1 September 2020 (UTC)<br />
<br />
:Blocking incoming ICMP echo requests and unsolicited ICMP echo replies may be common, but blocking ICMP in general is not. That kind of connection may as well be considered broken. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]])<br />
<br />
== Boot issues faced when installing on modern machines. ==<br />
<br />
One may encounter "Invalid signature" when trying to boot from the installation media on a machine with secure boot on and keys not cleared. <br />
<br />
Also, after installing on a NVME SSD, one need to set the drive to AHCI mode instead of Intel Optimized (in bios configuring panel), otherwise you just can't boot into the system.<br />
<br />
[[User:Sffred|Sffred]] ([[User talk:Sffred|talk]]) 00:05, 24 September 2020 (UTC) Sffred 1600905886<br />
<br />
:AHCI is a SATA controller operation mode, it shouldn't have anything to do with NVMe. You can add a section to [[Partitioning#Troubleshooting]] about changing the SATA mode if Linux doesn't see SATA disks, but make sure you're using the correct terms. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:27, 25 September 2020 (UTC)<br />
<br />
::Some motherboards support SATA over the [[w:M.2|M.2]] port, which may be the source of this confusion. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:33, 25 September 2020 (UTC)<br />
<br />
:::[[w:M.2#Storage interfaces]] lists "PCI Express using AHCI" as an option, but it's unclear if such a mode is actually implemented by any firmware, and even if it was, it should not be recommended as it would drastically reduce the drive's speed. From what I could find[https://forums.anandtech.com/threads/nvme-drive-booting-in-ahci-mode.2500796/post-39852218][https://lore.kernel.org/linux-pci/20190620061038.GA20564@lst.de/T/][https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aecec8b60422118b52e3347430ba9382e57d6d76], it looks like manufacturers simply interpret "SATA mode" being set to "AHCI" on NVMe controllers to mean "use native operating mode without firmware RAID". -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 08:33, 25 September 2020 (UTC)<br />
<br />
:::While on the topic of SATA (and non-SATA) operating modes, any thoughts about the backup GPT header corruption warning in [[GPT fdisk#Convert between MBR and GPT]]? -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 08:37, 25 September 2020 (UTC)<br />
<br />
::::Sorry, I have no idea... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 10:57, 26 September 2020 (UTC)<br />
<br />
:I added a note about [[Secure Boot]] to [[Installation guide#Boot the live environment]]. If anyone's wondering why it says "installation image'''s'''" then that's because of {{ic|ipxe.efi}} (the EFI binary for [[Netboot]]). -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:52, 28 September 2020 (UTC)<br />
<br />
== Accessibility options ==<br />
<br />
I think those should be mentioned in the intro. --[[User:Betseg|Betseg]] ([[User talk:Betseg|talk]]) 07:43, 4 November 2020 (UTC)<br />
<br />
:Indeed, do you have a suggestion for the note? -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:32, 4 November 2020 (UTC)<br />
::No, sorry. --[[User:Betseg|Betseg]] ([[User talk:Betseg|talk]]) 10:26, 4 November 2020 (UTC)</div>Betseghttps://wiki.archlinux.org/index.php?title=Talk:Installation_guide&diff=640532Talk:Installation guide2020-11-04T07:43:06Z<p>Betseg: /* accessibility options */ new section</p>
<hr />
<div>== Read this first before adding new suggestions ==<br />
<br />
* systemd tools such as ''hostnamectl'', ''timedatectl'' and ''localectl'' [https://github.com/systemd/systemd/issues/798#issuecomment-126568596 do not work] in the installation chroot environment, so please do not propose to use them in the guide unless you can prove that they have been made to work also in that case. See [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=388727#General_problems], [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=404695#Replace_commands_with_their_systemd_equivalents], [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=418662#Utilizing_systemd_tools] and [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=434985#change_configuration_system_from_old_way_to_new_way.28using_systemd_commands.29] for some past discussions about this issue.<br />
* {{ic|localectl list-keymaps}} does not work due to bug {{Bug|46725}}. For the chosen replacement command, see [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=435044#localectl].<br />
* {{ic|localhost}} must be set explicitely in {{ic|/etc/hosts}}, as it is otherwise resolved over the network. See {{Bug|56684}}.<br />
-- [[ArchWiki:Administrators|The ArchWiki Administrators]] 22:17, 2 September 2016 (UTC)<br />
__TOC__<br />
<br />
== Link to the German version ==<br />
<br />
Instead of [[de:Arch Install Scripts]] you could choose [[de:Anleitung für Einsteiger]] it means "Beginner's Guid" and is a very <br />
detailed artikel for very new arch users and the future experts.<br />
<br />
:Thank you, [https://wiki.archlinux.org/index.php?title=Installation_guide&type=revision&diff=509961&oldid=508505 done]. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 16:31, 6 February 2018 (UTC)<br />
<br />
::This was already proposed last year and rejected: [https://wiki.archlinux.org/index.php?title=Talk:Installation_guide&oldid=466950#Suggesting_different_page_for_German_translation]. I don't see what has changed since then. If someone adds me as admin to the german wiki or changes the protection settings, I can update [[de:Arch Install Scripts]] as required. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:13, 6 February 2018 (UTC)<br />
<br />
:::I see, I didn't remember that discussion so I've reverted the change, hopefully you'll make it to update the translation, let's leave this open until the problem is solved, otherwise this kind of suggestion will keep appearing recurrently. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:53, 7 February 2018 (UTC)<br />
<br />
== Why should a static IP be preferred over 127.0.1.1 in /etc/hosts? ==<br />
<br />
"If the system has a permanent IP address, it should be used instead of 127.0.1.1."<br />
<br />
I think the ArchWiki should not just say do X but also why. [[User:Alad|Alad]] as you added this, perhaps you can explain?--[[User:Larivact|Larivact]] ([[User talk:Larivact|talk]]) 15:14, 21 May 2018 (UTC)<br />
<br />
:In [[Network_configuration#Local hostname resolution]]: "For a system with a permanent IP address, that permanent IP address should be used instead of 127.0.1.1." -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 06:48, 22 May 2018 (UTC)<br />
<br />
::[https://wiki.archlinux.org/index.php?title=Network_configuration&diff=340138&oldid=333485 First] appearance in our wiki, cited [https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_the_hostname_resolution source], also [https://wiki.archlinux.org/index.php?title=Talk:Network_configuration&oldid=360328#Hostname_resolution discussion]. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 10:26, 22 May 2018 (UTC)<br />
<br />
:::Clear enough, close. -- [[User:Blackteahamburger|Blackteahamburger]] ([[User talk:Blackteahamburger|talk]]) 01:58, 10 August 2020 (UTC)<br />
<br />
::::This should be explained in the guide or at least in [[Network_configuration#Local hostname resolution]]. Explaining stuff in the edit summary or on talk pages is not enough. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 09:43, 10 August 2020 (UTC)<br />
<br />
== Wording in example layout table and size of EFI partition ==<br />
<br />
=== Formatting the ESP ===<br />
<br />
I believe myself that the partition table should be modified. When Going through the install, it was confusing how swap was the last partition, usually suppose to be the partition before Root, as if the computer loads up swap before user login. Didn't realize that a GPT disk needed to be formatted until reading this guide: https://wiki.archlinux.org/index.php/EFI_system_partition . Would recommend at least linking to this section of the document or even input Format partition section within the Wiki. [[User:Shaggy|Shaggy]] ([[User talk:Shaggy|talk]]) 20:15, 29 June 2020 (UTC)Shaggy<br />
<br />
:The order of partitions is irrelevant and it has (mostly) no effect on booting. The fact that the [[ESP]] needs to formatted after its creation cannot be simply stated, as it could be misinterpreted as requiring to always format it, even if is an existing partition that already has a file system.<br />
:After reading [https://bbs.archlinux.org/viewtopic.php?pid=1912222#p1912222 an anecdote], I think moving swap before root should be considered :D<br />
: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:39, 1 July 2020 (UTC)<br />
<br />
:I've been thinking, how about placing the {{ic|mkfs.fat -F32 /dev/sdxY}} command in [[Installation guide#Format the partitions]]. [[EFI system partition#Format the partition]] could instead be modified to omit the FAT type (i.e {{ic|mkfs.fat /dev/sdxY}}). FAT32 is a recommendation, but not mandatory, thus it's more appropriate for the [[Installation guide]], and this would allow to document the 2 MiB FAT12 formatted ESP, used by [[User:Eschwartz]] and others, in the [[EFI system partition]] article. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:14, 13 August 2020 (UTC)<br />
<br />
== HiDPI on the console ==<br />
<br />
With an ever increasing number of [[HiDPI]] displays, including at the begging of the article a section about adjusting the scaling factor or changing the font can be helpful, see [[HiDPI#Linux_console]]. [[User:Goetzc|Goetzc]] ([[User talk:Goetzc|talk]]) 02:21, 8 August 2019 (UTC)<br />
<br />
:It could be added as an example for {{ic|setfont}} in [[Installation_guide#Set_the_keyboard_layout]]. The issue I have is that [[HiDPI#Linux_console]] mentions that {{ic|tty2-6}} may be unusable, while the Installation guide specifically instructs to change ttys as required in [[Installation_guide#Boot_the_live_environment]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:07, 7 September 2019 (UTC)<br />
<br />
::May be as an example for the line "See README.bootparams for a list of boot parameters" [[Installation_guide#Boot_the_live_environment]], it could be specified to hit {{ic|e}} button to edit the boot entry and add the following parameters to the boot line, like {{ic|1=video=1920x1080}} if you have HiDPI display. -- [[User:Xzorg6|Xzorg6]] ([[User talk:Xzorg6|talk]]) 22:41, 15 December 2019 (UTC)<br />
<br />
:::{{ic|1=video=}} will just change the resolution. To get a bigger font on the console, you need {{ic|1=CONFIG_FONT_TER16x32=y}} in the kernel config and {{ic|1=fbcon=font:TER16x32}} in the kernel command line. Since the official kernels don't enable {{ic|CONFIG_FONT_TER16x32}}, someone will need to open a bug report asking for it. After that, the instructions for setting the {{ic|1=fbcon=font:TER16x32}} [[kernel parameter]] could be added to the wiki. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:52, 16 December 2019 (UTC)<br />
<br />
::::{{Pkg|linux}} 5.5.6.arch1-1 <s>(currently in testing)</s> has {{ic|1=CONFIG_FONT_TER16x32=y}} ({{Bug|64861}}). <s>If if gets move to core before March, then</s> the March iso will have it. It's probably a good idea to start drafting a [[Template:Tip|tip]] to place in [[Installation guide#Boot the live environment]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:12, 26 February 2020 (UTC)<br />
<br />
::::And just after I wrote this, the package was moved to core. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:27, 26 February 2020 (UTC)<br />
<br />
:::::I'm seeing multiple claims[https://bbs.archlinux.org/viewtopic.php?id=253319][https://www.reddit.com/r/archlinux/comments/fbi4vx/text_size_during_boot_changed_since_my_last/][https://www.reddit.com/r/archlinux/comments/fgct3t/how_to_get_currently_loaded_console_font_of_the/] that people with HiDPI screens are getting the TER16x32 font. I was not aware that the kernel chooses a font depending on screen size. Can anyone confirm that this really is the case? If it really works that way and unless {{Bug|65680}} messes this up, then there's nothing to add to the Installation guide about this topic. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:02, 11 March 2020 (UTC)<br />
<br />
::::::As per https://lkml.org/lkml/2019/6/18/966 the decision to use ter16x32 is not based on screen size but only resolution.So even though a 1080p screen may be hidpi it does not use ter16x32 [[User:M.Srikanth|M.Srikanth]] ([[User talk:M.Srikanth|talk]]) 10:17, 11 May 2020 (UTC)<br />
<br />
:::::::At least that part is now clear, thanks. The first step should be to get [[HiDPI#Linux console]] up to date. After that, as I've said before, a tip for the installation guide can be drafted. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:04, 11 May 2020 (UTC)<br />
<br />
:::::::: I fixed the page and removed the template [[User:M.Srikanth|M.Srikanth]] ([[User talk:M.Srikanth|talk]]) 12:25, 11 May 2020 (UTC)<br />
<br />
== First mention of /mnt in example partition layout ==<br />
<br />
{{ic|/mnt}} is mentioned at mount point in [[Installation_guide#Partition_the_disks]], while {{ic|/mnt}} is made explicit two sections later in [[Installation_guide#Mount_the_file_systems]]. As I recall it, this was changed because some users blindly copy pasted commands and mounted /boot on the live system, instead of /mnt/boot. Some options:<br />
<br />
* Introduce another column describing the mount point on the installed system. <br />
* Actually explain /mnt early.<br />
* Revert the "mount point" to not include /mnt.<br />
<br />
-- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:03, 7 September 2019 (UTC)<br />
<br />
:I don't understand what's the actual problem here... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 09:36, 8 September 2019 (UTC)<br />
<br />
::From what I read on [[ArchWiki:IRC|#archlinux-wiki]], this comes from https://www.reddit.com/r/archlinux/comments/d0v0j3/is_it_just_me_or_is_the_prospect_of_installing/ where the user was confused by the lack of root mountpoint (i.e. {{ic|/mnt}} vs {{ic|/}}). A question could be raised, if we should concern ourselves with users who have strong opinions about the wiki content yet can't be bothered to propose improvements in the talk pages...<br />
::About Alad's proposed options: I disagree with the first option, I think it will just complicate things even further. I support the third option and maybe adjusting the column header like in [[Special:Diff/581800]].<br />
::I'd actually would like to go even further and change the commands run from outside chroot to be visually distinct, e.g.: {{bc|1=<span style="color: #ff0000;">root@archiso #</span> mount /dev/sd''X1'' /mnt}}<br />
::I think it would better solve the underlying issue. <br />
:: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 15:26, 8 September 2019 (UTC)<br />
<br />
:::I'm not overly fond of the longer column name. For the last proposed option, I may agree if this is formalized in [[Help:Style]], so that it is not specfic to the [[Installation guide]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 11:20, 10 September 2019 (UTC)<br />
<br />
::::Adding it [[Help:Style]] was my intention, since other articles, too, will need to use that style for some commands. I'm thinking of creating a template for it: [[Special:Permalink/581945]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:19, 11 September 2019 (UTC)<br />
<br />
:::::Sounds good to me, I'd just prefer the regular (non-bold) font for the prompt as above. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 21:54, 13 September 2019 (UTC)<br />
<br />
::::::[[Special:Permalink/582327]]. Are there any other opinions about creating such a template? Or should I take this discussion to [[Help talk:Template]] per [[Help:Template#Creation]]? -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 18:31, 14 September 2019 (UTC)<br />
<br />
:::::::# How are you going to call the template? This template would probably add to the [[Help:Template#Code formatting templates]] series, should it be named in a consistent fashion?<br />
:::::::# Should this template support custom prompts, and if so, should it be called "pc" (from "(custom) prompted" code)?<br />
:::::::# I don't like the red color too much, if bold is not an option maybe we can go green|purple|blue, something that recalls less a warning of some kind? Or can we just leave it with the default font color? Or a slightly fainter black?<br />
:::::::# I haven't looked well into it, but maybe we can instead add an optional argument to [[Template:bc]] and [[Template:hc]] that prefixes a custom (colored) prompt? I wouldn't see a problem with repeating "root@archiso #" in every instance, or we may derive the new template from those two at that point.<br />
:::::::# The template should probably be derived from [[Template:bc]] in any case, for simpler code, see [[User:Kynikos/Template:Sandbox2]].<br />
:::::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 17:36, 16 September 2019 (UTC)<br />
<br />
::::::::# Initially I was going to call it [[Template:Archiso]] since it would be [[Archiso]]-specific, but I'm starting to think that creating a more general-purpose template would be better. It could then be used in [[PostgreSQL]] and the {{ic|[postgres]$}} convention would get formalized in [[Help:Style]]. Now the issue is the {{ic|[user@peer-a]#}} in [[Template:hc]] used in [[WireGuard]]. I'd rather not create two new templates, but I'm having trouble getting [[Template:Sandbox]] to work :(<br />
::::::::# I like your "[[Template:pc]]" suggestion.<br />
::::::::# Be glad I didn't post my first draft that was ''slightly more'' colorful. From your offered colors, I'd choose purple.<br />
::::::::# I'd rather not mess with the established templates just for this change, so I'd prefer creating a new template.<br />
::::::::# I didn't even think about using [[Template:bc]]. Is it a good idea to do that? The new template might need to be updated if [[Template:bc]] is ever changed in an incompatible way.<br />
:::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:33, 17 September 2019 (UTC)<br />
<br />
:::::::::Yeah, after viewing your attempts and looking into it myself, I think modifying bc/hc is out of discussion, it would add too much code/style for so little use.<br />
:::::::::Thinking about this again one day after, I feel I'm realizing that my concerns in general may descend from the fact that we're going to create a template to represent (block) code, even though we already have 2 which basically do the same thing, including allowing to include a prompt; the only addition of this "Archiso" or "pc" template would be the formatting around the prompt, so why not keep it simple (I know, "simplicity" is often subjective and controversial) and instead either make a [[Template:Archiso]] to be used like {{ic|<nowiki>{{bc|{{Archiso}} mount /dev/sdX1 /mnt}}</nowiki>}} or [[Template:ps]] (or [[Template:PS]]) to be used like {{ic|<nowiki>{{hc|{{ps|root@archiso #}} mount /dev/sdX1 /mnt}}</nowiki>}}? They also work with [[Template:hc]] and space-prefixed code blocks!<br />
:::::::::Putting the choice of color aside, if the above idea of a standalone prompt template isn't welcome, I think my second choice would be to make two [[Template:pbc]] and [[Template:phc]] that work like {{ic|<nowiki>{{pbc|$|ls}}</nowiki>}} and {{ic|<nowiki>{{phc|$|ls|...}}</nowiki>}}, with the style rule to use them only in case of complex prompts. I'd still derive them from bc/hc to inherit any changes that we'd decide to make to them, and avoid repeating that ugly &lt;pre> hack even more.<br />
:::::::::Otherwise I give up and accept the [[Template:Archiso]] that works like {{ic|<nowiki>{{Archiso|mount /dev/sdX1 /mnt}}</nowiki>}}, in the hope that one day we won't need an analogous "hc" version.<br />
:::::::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:24, 17 September 2019 (UTC)<br />
<br />
::::::::::I can't say I really like the idea of {{ic|<nowiki>{{bc|{{Archiso}} mount /dev/sdX1 /mnt}}</nowiki>}} or {{ic|<nowiki>{{hc|{{ps|root@archiso #}} mount /dev/sdX1 /mnt}}</nowiki>}}. I'd prefer creating [[Template:pbc]] and [[Template:phc]].<br />
::::::::::I still don't get what's wrong with [[Template:Sandbox]]. It should just work:<br />
<br />
<pre<noinclude></noinclude> {{#if: code|style="margin-bottom: 0; border-bottom:none; padding-bottom:0.8em;"}}>prompt # command</pre<noinclude></noinclude>><noinclude><!-- The &lt;noinclude>&lt;/noinclude> hack is needed to allow wiki markup inside the pre tags; reference: http://www.gossamer-threads.com/lists/wiki/mediawiki/118688#118688 --><br />
{{#if: code|<pre<noinclude></noinclude> style="margin-top: 0; border-top-style:dashed; padding-top: 0.8em;">code</pre<noinclude></noinclude>>}}<br />
<br />
:::::::::: -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 04:43, 18 September 2019 (UTC)<br />
<br />
:::::::::::FWIW (and a bit of fun) I've fixed [[Template:Sandbox]], although I'm not sure if we really need that level of automation ^^ I stick to my position above, is there a third (or more) opinion? -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:48, 18 September 2019 (UTC)<br />
<br />
:::::::::I think you like the [https://wiki.archlinux.org/index.php?title=User_talk:Nl6720&diff=447834&oldid=447833 #800080] shade of purple, right? ;-) [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 11:39, 21 September 2019 (UTC)<br />
<br />
::::::::::Yes, I do like that one :D but I think it would be too bright for this template. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 11:52, 21 September 2019 (UTC)<br />
<br />
== Changes for the base package ==<br />
<br />
=== Installations without base ===<br />
<br />
The base group was replaced with the base package: [https://www.archlinux.org/news/base-group-replaced-by-mandatory-base-package-manual-intervention-required/] This change was reflected in [[Installation_guide#Install_the_base_packages]] with [https://wiki.archlinux.org/index.php?title=Installation_guide&diff=584504&oldid=582205] <br />
<br />
With [https://wiki.archlinux.org/index.php?title=Installation_guide&diff=584505&oldid=584504], I removed the sentence "We only officially support installations that have the {{Pkg|base}} package installed." because it opens a new rabbit-hole when something is "officially supported" in the installation guide, is not. With this sentence included, pretty much anything (including "installations" that are not, or only partially, followed from the [[Installation guide]]) may be supported merely from having the {{Pkg|base}} package installed.<br />
<br />
On the other hand, some notion that removing the {{Pkg|base}} package results in an installation that is "not Arch" makes sense, but we should discuss on the best approach on doing this. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:22, 6 October 2019 (UTC)<br />
<br />
== Buggy graphics driver ==<br />
<br />
Can there be a hint that nomodeset parameter could be used if the graphics driver is buggy (I've heard nouveau may be buggy sometimes)<br />
[[User:M.Srikanth|M.Srikanth]] ([[User talk:M.Srikanth|talk]]) 04:47, 12 May 2020 (UTC)<br />
<br />
== Add a reference in <#Partition the disks> to EFI formatting ==<br />
<br />
As is, there's no hint as to how to format the EFI partition in this section or in the links, so I suggest we add that this line,<br />
See [[EFI system partition#Format the partition]].<br />
{{Unsigned|07:03, 15 May 2020 UTC|Ttoirrah}}<br />
<br />
:[[Installation guide#Partition the disks]] has two links to the [[EFI system partition]] article. Did you perhaps mean [[Installation guide#Format the partitions]]? -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:42, 15 May 2020 (UTC)<br />
<br />
== Add a reference to btrfs snapshots in <#Partition the disks>==<br />
<br />
new users may be unfamiliar with subvolumes, providing links to [[ btrfs ]] and [[snapper]] will point them in the right direction. <br />
<br />
this is important because moving to btrfs snapshots afterwards will involve reformatting. <br />
<br />
https://wiki.archlinux.org/index.php/Installation_guide#Partition_the_disks<br />
<br />
{{unsigned|02:12, 4 July 2020|Edgeworth}}<br />
<br />
:All file systems, including [[btrfs]] and its subvolumes, are unrelated to partitioning. The example layouts in the installation guide cover only swap [+ ESP] + the root partition, so if you decide later that you want to use a btrfs subvolume for e.g. {{ic|/var}}, there is no need to change the partitions. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:39, 4 July 2020 (UTC)<br />
<br />
but what if you wanted to have <tt>/</tt> be a subvolume? So a use case i could envision is:<br />
<br />
* creating a snapshot called <tt>@</tt> and mounting it at <tt>/</tt><br />
* another called <tt>@home</tt> and mounting that at <tt>/home</tt> <br />
* Another called <tt>@snapshots</tt> and mounting that at <tt>/.snapshots</tt><br />
<br />
this way you could use ‘’Timeshift’’ and ‘’Snapper’’<br />
<br />
but, I may be mistaken, wouldn’t this be significantly easier to do before hand rather than after the fact? Maybe just a little bubble pointing users in the right direction, I say this because I only recently discovered btrfs and timeshift and I just never stumbled accross it, so making it more visible would have been very helpful.<br />
<br />
[[User:Edgeworth|Edgeworth]] ([[User talk:Edgeworth|talk]]) 01:38, 5 July 2020 (UTC)Edgeworth<br />
<br />
:Btrfs subvolumes are created after formatting the file system not during disk partitioning. "[[Installation guide#Format the partitions]]" links to "[[File systems]]" which has a link to "[[Btrfs]]". If you want to recommend using subvolumes, add a tip to [[Btrfs#File system creation]]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:09, 5 July 2020 (UTC)<br />
<br />
:: ok that stands to reason, but the example in "[[Installation guide#Format the partitions]]" is <tt>ext4</tt> and if a new user just has no idea about COW file systems like btrfs/zfs there’s a good chance that they will never discover it, atleast until after they’ve installed the system. <br />
::Perhaps a tip box near that example to suggest researching btrfs subvolumes and snapshots could be helpful? ideally with a link to [[Snapper#Suggested_filesystem_layout]].<br />
::Snapshots are really helpful with a rolling release so i’d argue they should be encouraged.<br />
::[[User:Edgeworth|Edgeworth]] ([[User talk:Edgeworth|talk]]) 01:02, 6 July 2020 (UTC)Edgeworth<br />
<br />
:::If the new user has no idea about COW file systems, there is a good chance that they have no idea about any type of file systems, so they should review the [[File systems]] page (which is linked from the section before showing the example with ext4) and select the file system they like. Adding file system-specific notes or even recommendations to the installation guide does not make sense - they should be placed in sections related to the subject, so that users of other file systems are not bothered with them. As noted, that's [[Btrfs#File system creation]] in this case - everybody who had initially no idea about COW file systems and who decides to use [[Btrfs]] must go through that section before installing their system. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:27, 6 July 2020 (UTC)<br />
<br />
:::: I agree that the bulk of the material should be on a dedicated page but there are many pages to read and only so much time in the day, perhaps a stronger recommendation to review the file system page then? perhaps saying something to the effect of “file systems such as ext4, btrfs, zfs and so on have various strengths and weaknesses, users are advised to read the [[file systems]] page before proceeding.”<br />
<br />
:::: the idea being that users new to linux, or just arch, get exposed to as many helpful things as possible just by going through the installation guide<br />
<br />
:::: Im sure there are users who know enough to get going that simply don’t realise that snapshots are a thing (i.e. there not on windows), but I wouldn’t say it’s fair to suggest they don’t know anything about file systems either. <br />
<br />
::::: anecdotally ive been using linux for nearly 10 years (arch for 3) and btrfs just never really came up on my radar until last year, i’m not a computer scientist so i never really went looking because I didn’t know it bought anything to the table and so if the installation guide pushed me in that direction I could have avoided a lot of grief by using snapshots.<br />
<br />
:::: [[User:Edgeworth|Edgeworth]] ([[User talk:Edgeworth|talk]]) 07:41, 6 July 2020 (UTC)Edgeworth<br />
<br />
== GitLab blobs in Lynx ==<br />
<br />
Links to files (blobs) on gitlab.archlinux.org are not readable in Lynx (or any other console web browser); see https://gitlab.com/gitlab-org/gitlab/-/issues/26567.<br />
<br />
Should the Installation guide link to raw files instead?<br />
<br />
-- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 12:29, 4 August 2020 (UTC)<br />
<br />
:Maybe you could ask svenstaro to add it to https://gitlab.com/gitlab-org/gitlab/-/issues/232073... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 12:36, 4 August 2020 (UTC)<br />
<br />
::It has been filed under [https://gitlab.com/gitlab-org/gitlab/-/issues/232073#nice-to-have nice to have]. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 17:19, 4 August 2020 (UTC)<br />
<br />
== RAM usage ==<br />
<br />
Attempting to boot the ISO with 532MB RAM (VM) and it hangs at attempting to mount the ISO.<br />
Changing RAM to 544MB allows the Arch ISO to boot, so I suspect the amount of RAM needed on the page isn't accurate. [[User:Beepboo|Beepboo]] ([[User talk:Beepboo|talk]]) 14:11, 17 August 2020 (UTC)<br />
<br />
<br />
:[https://wiki.archlinux.org/index.php?title=Installation_guide&diff=632251&oldid=631819 Updated again]. Note that after installation the system can still easily get under 512 MB. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 14:05, 17 August 2020 (UTC)<br />
<br />
:: Lahwaacz, it's missing fullstop "{{ic|.}}" in the end of this sentence. -- [[User:Josephgbr|Josephgbr]] ([[User talk:Josephgbr|talk]]) 23:49, 17 August 2020 (UTC)<br />
<br />
::: Actually not missing (found it just now), but should it be after the reference link? -- [[User:Josephgbr|Josephgbr]] ([[User talk:Josephgbr|talk]]) 23:51, 17 August 2020 (UTC)<br />
<br />
::::It's used the same way also in [[Installation guide#Select the mirrors]]. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:01, 18 August 2020 (UTC)<br />
<br />
:::::From what I've seen, most wiki pages use it the same way. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 07:52, 19 August 2020 (UTC)<br />
<br />
::::::There is actually an open discussion about this: [[Help talk:Style/Formatting and punctuation#Reference links before or after punctuation marks?]] -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:05, 19 August 2020 (UTC)<br />
<br />
== Adjust Networking "Works out of the Box" Guidance ==<br />
<br />
Hello, I installed Arch and had some trouble with the networking. I wrote an article about it:<br />
<br />
https://ae1020.github.io/arch-linux-network-after-boot/<br />
<br />
The thing that tripped me up is that the networking from the LiveCD worked, and it had registered on me that networking should "work out of the box". When I did the `arch-chroot` it still worked. It didn't stop working until the reboot, and by then it was a Catch-22 to fix...and forced sifting through advice that was hard to interpret (and hard to test). I feel some changes to the wording and emphasis could greatly reduce potential problems.<br />
<br />
For instance, where it says '''Connect to the Internet''' at the beginning, this could be more explicit as '''Check the LiveCD Internet Connection'''. The first sentences after that could be something like:<br />
<br />
''"A connection is required to download the base system. So the LiveCD is configured to try common network connections with `systemd`'s networking, which might work automatically. '''But please note that later in the process, you will have to *manually* set up the network on your new installation partition--which does not come configured in the base system.'''"''<br />
<br />
That would set expectations. In the later step that says '''Network Configuration''', it currently starts by having you edit `/etc/hostname` and `/etc/hosts`. I think this minimizes the most important aspects of the step--because booting into a system with no network is kind of falling off a cliff in the process. Seems it would be better to open with something like:<br />
<br />
''"The network connectivity being used for installation so far is only configured on the LiveCD, not the new base system on your partition. '''This means that if you do not right now install ''and'' configure [[network management]] software, you will have NO network connectivity when you boot into your system.''' You'll be unable to get files to solve the lack of connectivity with `pacman`, so you will have to reboot into the LiveCD again and `arch-chroot` to bring you back to this point to try again."''<br />
<br />
Networking is a crucial-enough ability that I think it would be worth it to have this section take a more active hand in guiding to making sure it works on that first reboot. (Or if it doesn't work, at least people know to snap back into the LiveCD with a mount and a chroot.) Helping people know what the actual next step is in the Network Configuration section seems important, and I don't think the current links give any sense of what that step should be. So expanding the section to summarize the user's obligations and anything they can do to confirm they've done it right before rebooting would help tremendously. [[User:AE1020|AE1020]] ([[User talk:AE1020|talk]]) 02:31, 19 August 2020 (UTC)<br />
<br />
:There is no need to be this verbose, the installation guide is not a blog. The sentence "Complete the network configuration for the newly installed environment, that includes installing your preferred network management software." in [[Installation guide#Network configuration]] and the note in [[Installation guide#Connect to the internet]] are already pretty clear. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 06:57, 19 August 2020 (UTC)<br />
<br />
::I'm sure it could be less verbose. But even the minor tweaks I suggest like changing the section name to "Check the LiveCD Internet Connection" and removing the "should work out of the box" phrasing would aid in comprehension of the process as a whole. This reinforces to user they are not now done with "configure the internet" that "worked out of the box". I believe other adjustments could help without increasing the length...if that is a requirement. [[User:AE1020|AE1020]] ([[User talk:AE1020|talk]]) 08:32, 19 August 2020 (UTC)<br />
<br />
:::The guide does not use "LiveCD" anywhere, so why should it be in the title? Note that there is no "CD" anywhere, unless you actually burned the image on a CD, but that may not be the case for others. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:44, 19 August 2020 (UTC)<br />
<br />
::::I see the phrase "live environment" is used, so it could be "check the live environment's net connection". [[User:AE1020|AE1020]] ([[User talk:AE1020|talk]]) 08:52, 19 August 2020 (UTC)<br />
<br />
:::::I think [[Special:Diff/633954]] should be enough for a clarification. Any more would be too excessive. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:36, 1 September 2020 (UTC)<br />
<br />
== Alter the test for Internet Connection ==<br />
<br />
In the section "Boot the live environment", a note is mentioned about using ping to test an internet connection.<br />
During my first installation, I followed the guide and found trouble upon reaching the "Connect to the internet subsection".<br />
<br />
I had tried three different connections; two different ethernet interfaces and one wireless interface.<br />
All three appeared to be working with each interface showing a state of "UP", being assigned an IP by DHCP, and drivers showing as loaded.<br />
<br />
Though, upon issuing "ping 8.8.8.8", no packets were received.<br />
After spending hours looking through the forum, wiki articles and various websites and even altering the machine I intended to install to; I decided to try to ping a website from a machine that I knew had internet access. Still, neither ping nor traceroute would work.<br />
This indicates ICMP Packets are blocked by my router.<br />
I then ran the "Installation_guide" script and found that my Arch Iso indeed had an internet connection after all.<br />
<br />
I think it would be a good idea to suggest accessing the Installation guide from the live iso rather than using ping.<br />
ICMP Packets are blocked by default on many consumer grade routers, and certainly on almost every enterprise network.<br />
It is far less likely that an HTTP request would be blocked, so I think this is a far better test for internet connection.<br />
<br />
-[[User:Sunny73cr|Sunny73cr]] ([[User talk:Sunny73cr|talk]]) 10:58, 1 September 2020 (UTC)<br />
<br />
:Blocking incoming ICMP echo requests and unsolicited ICMP echo replies may be common, but blocking ICMP in general is not. That kind of connection may as well be considered broken. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]])<br />
<br />
== Boot issues faced when installing on modern machines. ==<br />
<br />
One may encounter "Invalid signature" when trying to boot from the installation media on a machine with secure boot on and keys not cleared. <br />
<br />
Also, after installing on a NVME SSD, one need to set the drive to AHCI mode instead of Intel Optimized (in bios configuring panel), otherwise you just can't boot into the system.<br />
<br />
[[User:Sffred|Sffred]] ([[User talk:Sffred|talk]]) 00:05, 24 September 2020 (UTC) Sffred 1600905886<br />
<br />
:AHCI is a SATA controller operation mode, it shouldn't have anything to do with NVMe. You can add a section to [[Partitioning#Troubleshooting]] about changing the SATA mode if Linux doesn't see SATA disks, but make sure you're using the correct terms. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:27, 25 September 2020 (UTC)<br />
<br />
::Some motherboards support SATA over the [[w:M.2|M.2]] port, which may be the source of this confusion. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:33, 25 September 2020 (UTC)<br />
<br />
:::[[w:M.2#Storage interfaces]] lists "PCI Express using AHCI" as an option, but it's unclear if such a mode is actually implemented by any firmware, and even if it was, it should not be recommended as it would drastically reduce the drive's speed. From what I could find[https://forums.anandtech.com/threads/nvme-drive-booting-in-ahci-mode.2500796/post-39852218][https://lore.kernel.org/linux-pci/20190620061038.GA20564@lst.de/T/][https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aecec8b60422118b52e3347430ba9382e57d6d76], it looks like manufacturers simply interpret "SATA mode" being set to "AHCI" on NVMe controllers to mean "use native operating mode without firmware RAID". -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 08:33, 25 September 2020 (UTC)<br />
<br />
:::While on the topic of SATA (and non-SATA) operating modes, any thoughts about the backup GPT header corruption warning in [[GPT fdisk#Convert between MBR and GPT]]? -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 08:37, 25 September 2020 (UTC)<br />
<br />
::::Sorry, I have no idea... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 10:57, 26 September 2020 (UTC)<br />
<br />
:I added a note about [[Secure Boot]] to [[Installation guide#Boot the live environment]]. If anyone's wondering why it says "installation image'''s'''" then that's because of {{ic|ipxe.efi}} (the EFI binary for [[Netboot]]). -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 06:52, 28 September 2020 (UTC)<br />
<br />
== accessibility options ==<br />
<br />
i think those should be mentioned in the intro. --[[User:Betseg|Betseg]] ([[User talk:Betseg|talk]]) 07:43, 4 November 2020 (UTC)</div>Betseghttps://wiki.archlinux.org/index.php?title=Talk:AUR_helpers&diff=612593Talk:AUR helpers2020-05-13T01:42:47Z<p>Betseg: /* Discontinued helpers */</p>
<hr />
<div>== Discontinued helpers ==<br />
<br />
There are many discontinued helpers on the list that aren't listed as such, can someone with editing rights update those? --<span style="font-family:serif;">[[User:Betseg|<font color="#880">betseg</font>]]<font color="#888">|</font>[[User talk:Betseg|<font color="#440">g</font>]]</span> 04:41, 11 May 2020 (UTC)<br />
:I don't see any. Can you tell exactly which? -- [[User:Svito|Svito]] ([[User talk:Svito|talk]]) 14:25, 11 May 2020 (UTC)<br />
::I know pacaur is [https://bbs.archlinux.org/viewtopic.php?pid=1755144#p1755144 discontinued], and based on last commit dates of other helpers many seem to be abandoned. --<span style="font-family:serif;">[[User:Betseg|<font color="#880">betseg</font>]]<font color="#888">|</font>[[User talk:Betseg|<font color="#440">g</font>]]</span> 01:42, 13 May 2020 (UTC)</div>Betseghttps://wiki.archlinux.org/index.php?title=Talk:AUR_helpers&diff=612218Talk:AUR helpers2020-05-11T04:41:37Z<p>Betseg: /* Discontinued helpers */ new section</p>
<hr />
<div>== Discontinued helpers ==<br />
<br />
There are many discontinued helpers on the list that aren't listed as such, can someone with editing rights update those? --<span style="font-family:serif;">[[User:Betseg|<font color="#880">betseg</font>]]<font color="#888">|</font>[[User talk:Betseg|<font color="#440">g</font>]]</span> 04:41, 11 May 2020 (UTC)</div>Betseghttps://wiki.archlinux.org/index.php?title=Rust&diff=598193Rust2020-02-20T23:51:23Z<p>Betseg: /* Upstream installation script */</p>
<hr />
<div>[[Category:Programming languages]]<br />
[[ja:Rust]]<br />
[[ru:Rust]]<br />
{{Related articles start}}<br />
{{Related|Rust package guidelines}}<br />
{{Related articles end}}<br />
<br />
From [[Wikipedia:Rust (programming language)|Wikipedia]]:<br />
:[http://rust-lang.org/ Rust] is a general-purpose, multi-paradigm, compiled programming language sponsored by Mozilla Research. It is designed to be a "safe, concurrent, practical language", supporting pure-functional, imperative-procedural, and object-oriented styles. The goal of Rust is to be a good language for creating highly concurrent and highly safe systems, and programming in the large. This has led to a feature set with an emphasis on safety, control of memory layout, and concurrency. Performance of idiomatic Rust is comparable to the performance of idiomatic C++.<br />
<br />
== Core language ==<br />
=== Rust Core Library ===<br />
<br />
The [https://doc.rust-lang.org/core/ Rust Core Library] is the dependency-free foundation of the Rust Standard Library. It interfaces directly with LLVM primitives, which allows Rust to be platform and hardware-agnostic. It is this integration with LLVM that allows Rust to obtain greater performance than equivalent C applications compiled with Clang, making Rust software designed with libcore lower level than C. Developers looking to target software for embedded platforms may forego the standard library with {{ic|#![no_std]}} to exclusively use the no-batteries-included core library for smaller binary sizes and improved performance. However, using {{ic|#![no_std]}} limits the amount of software support that you can get from the larger Rust community as a majority of libraries require the standard library.<br />
<br />
=== Rust Standard Library ===<br />
<br />
The [http://doc.rust-lang.org/std/index.html Rust Standard Library] provides the convenient high level abstractions by which a majority of portable Rust software is created with. It features convenient features such as the {{ic|Vec}}, {{ic|Iterator}}, {{ic|Option}}, {{ic|Result}}, and {{ic|String}} types; a vast amount of methods for language primitives; a large number of standard macros; I/O and multithreading support; heap allocations with {{ic|Box}}; and many more high level features not available in the core library.<br />
<br />
=== Release cycle ===<br />
<br />
Rust follows a regular six week release cycle, similar to the release cycle of Firefox. With each new release, the core and standard libraries are improved to support more platforms, improve performance, and to stabilize new features for use with stable Rust.<br />
<br />
== Installation ==<br />
<br />
There are two choices for a rust installation, one is supported by Arch Linux, while the other is officially supported by Rust.<br />
<br />
=== Native installation ===<br />
<br />
To [[install]] the latest stable version of Rust from the official Arch Linux software repository, [[install]] the {{Pkg|rust}} package. This will install the {{ic|rustc}} compiler and [[#Cargo|Cargo]].<br />
<br />
There's also development version of the Rust compiler available from [[AUR]]. Use {{AUR|rust-nightly-bin}} for prebuilt generic binaries or {{AUR|rust-git}} to build the compiler with system libraries.<br />
<br />
=== Rustup ===<br />
<br />
The official and recommended method of installing Rust for the purpose of developing software is to use the [https://www.rustup.rs/ Rustup toolchain manager], written in Rust.<br />
<br />
The benefits to using the Rustup toolchain manager instead of the standalone prepackaged Rust in the software repository is the ability to install multiple toolchains (stable, beta, nightly) for multiple targets (windows, mac, android) and architectures (x86, x86_64, arm).<br />
<br />
==== Upstream installation script ====<br />
<br />
Download the file with {{ic|curl --proto '<nowiki>=</nowiki>https' --tlsv1.2 -sSf <nowiki>https://sh.rustup.rs</nowiki> > rust.sh}}, view it: {{ic|less ./rust.sh}}, and run the script {{ic|./rust.sh}} to start rustup installation. The script makes PATH changes only to login shell [[Bash#Invocation|configuration files]]. You need to {{ic|source ~/.cargo/env}} until you logout and login back into the system.<br />
To update rustup afterwards, run {{ic|rustup self update}}.<br />
<br />
The script installs and activates the default toolchain by default (the one used by the {{pkg|rust}} package, so there is no need to manually install it to start using Rust.<br />
<br />
{{Warning|Running {{ic|curl ''some-url'' {{!}} sh}}, as the Rust documentation suggests, is considered as a security risk, because it executes unknown code, that might even be corrupted during the download. Therefore it is recommended to manually download the script and check it, before executing it.}}<br />
<br />
{{Note|Please make sure that {{ic|~/.cargo/bin}} is in your {{ic|PATH}} when you run {{ic|rustup}}.}}<br />
<br />
==== Arch Linux package ====<br />
<br />
{{Pkg|rustup}} is also available on the Arch Linux software repository. Note that {{ic|rustup self update}} will '''not''' work when installed this way, the package needs to be updated by pacman.<br />
<br />
This package has the advantage that the various Rust executables live in {{ic|/usr/bin}}, instead of {{ic|~/.cargo/bin}}, removing the need to add another directory to your {{ic|PATH}}.<br />
<br />
{{note|The {{pkg|rustup}} package does '''not''' install a toolchain by default. It provides instead symlinks between {{ic|/usr/bin/rustup}} to the common binaries such as {{ic|/usr/bin/rustc}} and {{ic|/usr/bin/cargo}}. As stated above, The user still needs to install a toolchain manually, for these Rust commands to do anything.}}<br />
<br />
In order to install the toolchain, you need to tell rustup which version to use: {{ic|stable}} or {{ic|nightly}}.<br />
<br />
Example:<br />
{{bc|$ rustup default stable}}<br />
<br />
==== Usage ====<br />
<br />
You might need to manually install a toolchain, e.g. {{ic|stable}}, {{ic|beta}}, {{ic|nightly}} or {{ic|1.23.0}}. You also need to do this if you want to use/test another toolchain.<br />
$ rustup toolchain install ''toolchain''<br />
<br />
You can now run the Rust commands by running, {{ic|rustup run ''toolchain'' ''command''}}. However, to use these commands directly, you need to activate the toolchain: <br />
$ rustup default ''toolchain''<br />
<br />
Check the installed Rust version using {{ic|rustc -V}}:<br />
<br />
{{hc|$ rustc -V |<br />
rustc 1.26.0 (a77568041 2018-05-07)<br />
}}<br />
<br />
{{note|Rustup does not install some Rust commands that the {{pkg|rust}} package does include, such as {{ic|rustfmt}} and {{ic|rls}}. They are not included because this allows the Rust maintainers to ship a nightly of Rust with a broken {{ic|rustfmt}}/{{ic|rls}}. To install them, run {{ic|rustup component add rls}} and {{ic|rustup component add rustfmt}} respectively. This will also suspend updates of the nightly channel, if they break {{ic|rustfmt}}/{{ic|rls}}.<br />
}}<br />
<br />
{{note|Rust does not do its own linking, and so you’ll need to have a linker installed. You can use {{Pkg|gcc}}, otherwise Rust will generate the following {{ic| error: linker `cc` not found.}}<br />
}}<br />
<br />
=== Test your installation ===<br />
<br />
Check that Rust is installed correctly by building a simple program, as follows:<br />
{{hc|~/hello.rs|<br />
fn main() {<br />
println!("Hello, World!");<br />
}<br />
}}<br />
<br />
You can compile it with {{ic|rustc}}, then run it:<br />
{{hc|$ rustc hello.rs && ./hello|<br />
Hello, World!<br />
}}<br />
<br />
== Cross compiling ==<br />
<br />
=== Using rustup ===<br />
<br />
You can easily cross-compile using rustup. rustup supports many crosscompile targets. A full list can be found running {{ic|rustup target list}}.<br />
<br />
For instance, if you want to install rust using the stable channel for windows, using the gnu compiler, you will need to do : <br />
<br />
$ rustup toolchain install stable-x86_64-pc-windows-gnu<br />
<br />
This will only installs rust and its tools for your target architecture, but some additional tools might be needed for cross compiling.<br />
<br />
=== Windows ===<br />
<br />
In this section, {{ic|$ARCH}} is the target architecture (either {{ic|x86_64}} or {{ic|i686}}). It will explain how to cross compile using rustup.<br />
<br />
# [[Install]] {{AUR|mingw-w64-gcc-base}}<br />
# [[Install]] {{AUR|mingw-w64-gcc}} (select "y" to replace when conflict appears) and {{Pkg|wine}}<br />
# If you are using rustup, you can run {{ic|rustup toolchain install stable-$ARCH-pc-windows-gnu}} and {{ic|rustup target add $ARCH-pc-windows-gnu}} to install rust and rust standard library for your architecture. If you are not using rustup, install a copy of rust's standard library for windows in your rustlib directory ({{ic|/usr/local/lib/rustlib}} if you're using {{AUR|rust-nightly-bin}} and {{ic|/usr/lib/rustlib}} if you're using the official {{Pkg|rust}} package). The easiest way to do this is to download the rust installer for windows for your target architecture, install it under wine ({{ic|wine start my-rust-installer.msi}}) and copy {{ic|$INSTALL_DIR/lib/rustlib/$ARCH-pc-windows-gnu}} into your rustlib directory. <br />
# Finally, tell cargo where to find the MinGW-w64 gcc/ar by adding the following to your {{ic|~/.cargo/config}}:<br />
{{hc|~/.cargo/config|<nowiki><br />
[target.$ARCH-pc-windows-gnu]<br />
linker = "/usr/bin/$ARCH-w64-mingw32-gcc"<br />
ar = "/usr/$ARCH-w64-mingw32/bin/ar"<br />
</nowiki>}}<br />
<br />
Finally, you can cross compile for windows by passing the {{ic|--target $ARCH-pc-windows-gnu}} to cargo:<br />
<br />
$ # Build<br />
$ cargo build --release --target "$ARCH-pc-windows-gnu"<br />
$ # Run unit tests under wine<br />
$ cargo test --target "$ARCH-pc-windows-gnu"<br />
<br />
Currently building executables using MinGW 6 and the toolchains installed by rustup is broken. To fix it, execute<br />
<br />
for lib in crt2.o dllcrt2.o libmsvcrt.a; do cp -v /usr/x86_64-w64-mingw32/lib/$lib $HOME/.rustup/toolchains/$CHANNEL-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/; done<br />
<br />
where {{ic|CHANNEL}} is the update channel ({{ic|stable}}, {{ic|beta}} or {{ic|nightly}})<br />
<br />
=== Unofficial packages ===<br />
<br />
The [[Unofficial user repositories#archlinuxcn|unofficial repository archlinuxcn]] has rust-nightly and Rust std library for i686, ARM, ARMv7, Windows 32 and 64 so you can just install the one you want then enjoy cross compiling. However, you have to find an ARM toolchain by yourself. For Windows 32bit targets, you'll need to get a libgcc_s_dw2-1.dll to build and run.<br />
<br />
== Cargo ==<br />
<br />
[https://crates.io/ Cargo], Rust's package manager, is part of the {{Pkg|rust}} package. The nightly version is available in the AUR as {{AUR|cargo-nightly-bin}}. If you use {{Pkg|rustup}}, it already includes cargo.<br />
<br />
Cargo is a tool that allows Rust projects to declare their various dependencies, and ensure that you'll always get a repeatable build. You're encouraged to read the [http://doc.crates.io/guide.html official guide].<br />
<br />
=== Usage ===<br />
<br />
To create a new project using Cargo:<br />
<br />
$ cargo new hello_world <br />
<br />
This creates a directory with a default {{ic|Cargo.toml}} file, set to build an executable.<br />
<br />
{{Note|Cargo uses this {{ic|Cargo.toml}} as a manifest containing all of the metadata required to compile your project.<br />
{{hc|head=Cargo.toml|<br />
output=[package]<br />
name = "hello_world"<br />
version = "0.1.0"<br />
authors = ["Your Name <you@example.com>"]<br />
edition = "2018"<br />
<br />
[dependencies]<br />
}}<br />
}}<br />
<br />
=== Optimizing for native CPU platform ===<br />
<br />
In order to instruct Cargo to always compile optimal code for your CPU platform, you can achieve this by adding a flag to {{ic|~/.cargo/config}}. Please be aware that the resulting binaries can not be distributed for use on other computers, and might even fail on your own system if you decide to change your CPU in the future.<br />
<br />
Find out which target platform is used by default on your installation:<br />
{{hc|$ rustup toolchain list|<br />
stable-x86_64-unknown-linux-gnu (default)<br />
}}<br />
<br />
In this example we are using {{ic|stable}} rust on the {{ic|x86_64-unknown-linux-gnu}} platform.<br />
<br />
Instruct Cargo to always compile code optimized for the native CPU platform:<br />
{{hc|~/.cargo/config|<nowiki><br />
[target.x86_64-unknown-linux-gnu]<br />
rustflags = ["-Ctarget-cpu=native"]<br />
</nowiki>}}<br />
<br />
== IDE support ==<br />
<br />
=== Tools ===<br />
<br />
==== RLS ====<br />
<br />
[https://github.com/rust-lang/rls RLS] provides a [https://microsoft.github.io/language-server-protocol/ Language Server Protocol] implementation for Rust, providing IDEs, editors, and other tools with information about Rust programs. It supports functionality such as 'goto definition', symbol search, reformatting, and code completion, and enables renaming and refactorings.<br />
<br />
RLS is included in the {{pkg|rust}} package. To install RLS using rustup:<br />
<br />
$ rustup component add rls rust-analysis rust-src<br />
<br />
==== Racer ====<br />
<br />
[https://github.com/phildawes/racer Racer] provides code completion support for editors and IDEs. It has been superseded by RLS (which uses Racer as a fallback).<br />
<br />
It requires that you also install a copy of the Rust source code, which you can obtain in one of several ways:<br />
* With rustup: {{ic|rustup component add rust-src}}<br />
* From the AUR: {{Aur|rust-src}} or {{Aur|rust-nightly-src}}, in this case you must set the {{ic|RUST_SRC_PATH}} environment var.<br />
After installing the source code, you can either use {{ic|Cargo}} to install racer or obtain it from the repos ({{pkg|rust-racer}}).<br />
<br />
$ cargo +nightly install racer<br />
<br />
==== Clippy ====<br />
<br />
[https://github.com/rust-lang/rust-clippy Clippy] takes advantage of compiler plugin support to provide a large number of additional lints for detecting and warning about a larger variety of errors and non-idiomatic Rust. <br />
<br />
Clippy is included in the {{pkg|rust}} package. To install it with rustup use:<br />
<br />
$ rustup component add clippy<br />
<br />
==== Rustfmt ====<br />
<br />
[https://github.com/rust-lang/rustfmt Rustfmt] is a tool to format Rust code according to the official style guidelines.<br />
<br />
Rustup is included in the {{pkg|rust}} package. To install it with rustup use:<br />
<br />
$ rustup component add rustfmt<br />
<br />
=== Editors ===<br />
<br />
==== Atom ====<br />
<br />
[[Atom]] support for Rust programming is provided by the [https://atom.io/packages/ide-rust ide-rust] plugin (requires rustup).<br />
<br />
==== IntelliJ IDEA ====<br />
<br />
[https://www.jetbrains.com/idea/ IntelliJ IDEA] has a [https://github.com/intellij-rust/intellij-rust Rust plugin]. The same plugin also works with CLion. When configuring the toolchain, use rustup to download the source ({{ic|rustup component add rust-src}}), and then select {{ic|~/.rustup/toolchains/<your toolchain>/bin}} as the toolchain location.<br />
<br />
==== Visual Studio Code ====<br />
<br />
[[Visual Studio Code]] support for Rust can be obtained via [https://marketplace.visualstudio.com/items?itemName=rust-lang.rust rust-lang.rls] extension (requires rustup) or the [https://marketplace.visualstudio.com/items?itemName=kalitaalexey.vscode-rust kalitaalexey.vscode-rust] extension.<br />
<br />
==== Vim ====<br />
<br />
[[Vim]] support for Rust can be obtained via the official [https://github.com/rust-lang/rust.vim rust.vim] plugin, which provides file detection, syntax highlighting, formatting and support for the [https://github.com/vim-syntastic/syntastic Syntastic] syntax checking plugin. Many completion engines have Rust support, like [https://github.com/neoclide/coc.nvim coc] (via the [https://github.com/neoclide/coc-rls coc.rls] plugin) and [https://github.com/ycm-core/YouCompleteMe YouCompleteMe].<br />
<br />
==== Emacs ====<br />
<br />
[[Emacs]] support for Rust can be obtained via the official [https://github.com/rust-lang/rust-mode rust-mode] plugin or the {{AUR|emacs-rust-mode}} package.<br />
<br />
==== Kate ====<br />
<br />
Kate support for Rust is installed by default by the {{Pkg|kate}} package, but also requires extra configurations.<br />
First, install the package {{pkg|rust-racer}} <br />
Second, get the Rust source:<br />
* With rustup: {{ic|rustup component add rust-src}}<br />
* or From the AUR: {{Aur|rust-src}} or {{Aur|rust-nightly-src}}, in this case you must set the {{ic|RUST_SRC_PATH}} environment var.<br />
Third, configure Kate by clicking Settings -> Configure Kate, then navigate to Application -> Plugins, then tick the 'Rust code completion', then you will see Application -> Rust code completion in the left sidebar, navigation to it, and assign 'Rust source tree location' to {{ic|$HOME/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src}}<br />
if you install the Rust source with rustup.<br />
<br />
== See also ==<br />
<br />
* [http://rust-lang.org/ Official website of the Rust Programming Language]<br />
* [https://www.rust-lang.org/documentation.html Rust Documentation]<br />
* [http://doc.rust-lang.org/stable/book/ Official Rust Book]<br />
* [https://doc.rust-lang.org/std/ Standard Library API Lookup]<br />
* [https://doc.rust-lang.org/stable/rust-by-example/ Examples with small descriptions]<br />
* [https://github.com/ctjhoa/rust-learning Page listing of Rust tutorials]<br />
* [https://crates.io/ Libraries(crates) available through Cargo]<br />
* [https://this-week-in-rust.org/ This Week in Rust]<br />
* [http://blog.rust-lang.org/ The Rust Programming Language Blog]<br />
* [https://users.rust-lang.org/ The Rust Users Forum]<br />
* [https://internals.rust-lang.org/ The Rust Internals Forum]<br />
* [https://rust.libhunt.com/ Awesome Rust: A curated list of Rust libraries and resources]<br />
* [[Wikipedia:Rust (programming language)|Wikipedia article]]</div>Betseghttps://wiki.archlinux.org/index.php?title=Rust&diff=598192Rust2020-02-20T23:50:50Z<p>Betseg: /* Upstream installation script */ fixed curl cmd line</p>
<hr />
<div>[[Category:Programming languages]]<br />
[[ja:Rust]]<br />
[[ru:Rust]]<br />
{{Related articles start}}<br />
{{Related|Rust package guidelines}}<br />
{{Related articles end}}<br />
<br />
From [[Wikipedia:Rust (programming language)|Wikipedia]]:<br />
:[http://rust-lang.org/ Rust] is a general-purpose, multi-paradigm, compiled programming language sponsored by Mozilla Research. It is designed to be a "safe, concurrent, practical language", supporting pure-functional, imperative-procedural, and object-oriented styles. The goal of Rust is to be a good language for creating highly concurrent and highly safe systems, and programming in the large. This has led to a feature set with an emphasis on safety, control of memory layout, and concurrency. Performance of idiomatic Rust is comparable to the performance of idiomatic C++.<br />
<br />
== Core language ==<br />
=== Rust Core Library ===<br />
<br />
The [https://doc.rust-lang.org/core/ Rust Core Library] is the dependency-free foundation of the Rust Standard Library. It interfaces directly with LLVM primitives, which allows Rust to be platform and hardware-agnostic. It is this integration with LLVM that allows Rust to obtain greater performance than equivalent C applications compiled with Clang, making Rust software designed with libcore lower level than C. Developers looking to target software for embedded platforms may forego the standard library with {{ic|#![no_std]}} to exclusively use the no-batteries-included core library for smaller binary sizes and improved performance. However, using {{ic|#![no_std]}} limits the amount of software support that you can get from the larger Rust community as a majority of libraries require the standard library.<br />
<br />
=== Rust Standard Library ===<br />
<br />
The [http://doc.rust-lang.org/std/index.html Rust Standard Library] provides the convenient high level abstractions by which a majority of portable Rust software is created with. It features convenient features such as the {{ic|Vec}}, {{ic|Iterator}}, {{ic|Option}}, {{ic|Result}}, and {{ic|String}} types; a vast amount of methods for language primitives; a large number of standard macros; I/O and multithreading support; heap allocations with {{ic|Box}}; and many more high level features not available in the core library.<br />
<br />
=== Release cycle ===<br />
<br />
Rust follows a regular six week release cycle, similar to the release cycle of Firefox. With each new release, the core and standard libraries are improved to support more platforms, improve performance, and to stabilize new features for use with stable Rust.<br />
<br />
== Installation ==<br />
<br />
There are two choices for a rust installation, one is supported by Arch Linux, while the other is officially supported by Rust.<br />
<br />
=== Native installation ===<br />
<br />
To [[install]] the latest stable version of Rust from the official Arch Linux software repository, [[install]] the {{Pkg|rust}} package. This will install the {{ic|rustc}} compiler and [[#Cargo|Cargo]].<br />
<br />
There's also development version of the Rust compiler available from [[AUR]]. Use {{AUR|rust-nightly-bin}} for prebuilt generic binaries or {{AUR|rust-git}} to build the compiler with system libraries.<br />
<br />
=== Rustup ===<br />
<br />
The official and recommended method of installing Rust for the purpose of developing software is to use the [https://www.rustup.rs/ Rustup toolchain manager], written in Rust.<br />
<br />
The benefits to using the Rustup toolchain manager instead of the standalone prepackaged Rust in the software repository is the ability to install multiple toolchains (stable, beta, nightly) for multiple targets (windows, mac, android) and architectures (x86, x86_64, arm).<br />
<br />
==== Upstream installation script ====<br />
<br />
Download the file with {{ic|curl --proto '=https' --tlsv1.2 -sSf <nowiki>https://sh.rustup.rs</nowiki> > rust.sh}}, view it: {{ic|less ./rust.sh}}, and run the script {{ic|./rust.sh}} to start rustup installation. The script makes PATH changes only to login shell [[Bash#Invocation|configuration files]]. You need to {{ic|source ~/.cargo/env}} until you logout and login back into the system.<br />
To update rustup afterwards, run {{ic|rustup self update}}.<br />
<br />
The script installs and activates the default toolchain by default (the one used by the {{pkg|rust}} package, so there is no need to manually install it to start using Rust.<br />
<br />
{{Warning|Running {{ic|curl ''some-url'' {{!}} sh}}, as the Rust documentation suggests, is considered as a security risk, because it executes unknown code, that might even be corrupted during the download. Therefore it is recommended to manually download the script and check it, before executing it.}}<br />
<br />
{{Note|Please make sure that {{ic|~/.cargo/bin}} is in your {{ic|PATH}} when you run {{ic|rustup}}.}}<br />
<br />
==== Arch Linux package ====<br />
<br />
{{Pkg|rustup}} is also available on the Arch Linux software repository. Note that {{ic|rustup self update}} will '''not''' work when installed this way, the package needs to be updated by pacman.<br />
<br />
This package has the advantage that the various Rust executables live in {{ic|/usr/bin}}, instead of {{ic|~/.cargo/bin}}, removing the need to add another directory to your {{ic|PATH}}.<br />
<br />
{{note|The {{pkg|rustup}} package does '''not''' install a toolchain by default. It provides instead symlinks between {{ic|/usr/bin/rustup}} to the common binaries such as {{ic|/usr/bin/rustc}} and {{ic|/usr/bin/cargo}}. As stated above, The user still needs to install a toolchain manually, for these Rust commands to do anything.}}<br />
<br />
In order to install the toolchain, you need to tell rustup which version to use: {{ic|stable}} or {{ic|nightly}}.<br />
<br />
Example:<br />
{{bc|$ rustup default stable}}<br />
<br />
==== Usage ====<br />
<br />
You might need to manually install a toolchain, e.g. {{ic|stable}}, {{ic|beta}}, {{ic|nightly}} or {{ic|1.23.0}}. You also need to do this if you want to use/test another toolchain.<br />
$ rustup toolchain install ''toolchain''<br />
<br />
You can now run the Rust commands by running, {{ic|rustup run ''toolchain'' ''command''}}. However, to use these commands directly, you need to activate the toolchain: <br />
$ rustup default ''toolchain''<br />
<br />
Check the installed Rust version using {{ic|rustc -V}}:<br />
<br />
{{hc|$ rustc -V |<br />
rustc 1.26.0 (a77568041 2018-05-07)<br />
}}<br />
<br />
{{note|Rustup does not install some Rust commands that the {{pkg|rust}} package does include, such as {{ic|rustfmt}} and {{ic|rls}}. They are not included because this allows the Rust maintainers to ship a nightly of Rust with a broken {{ic|rustfmt}}/{{ic|rls}}. To install them, run {{ic|rustup component add rls}} and {{ic|rustup component add rustfmt}} respectively. This will also suspend updates of the nightly channel, if they break {{ic|rustfmt}}/{{ic|rls}}.<br />
}}<br />
<br />
{{note|Rust does not do its own linking, and so you’ll need to have a linker installed. You can use {{Pkg|gcc}}, otherwise Rust will generate the following {{ic| error: linker `cc` not found.}}<br />
}}<br />
<br />
=== Test your installation ===<br />
<br />
Check that Rust is installed correctly by building a simple program, as follows:<br />
{{hc|~/hello.rs|<br />
fn main() {<br />
println!("Hello, World!");<br />
}<br />
}}<br />
<br />
You can compile it with {{ic|rustc}}, then run it:<br />
{{hc|$ rustc hello.rs && ./hello|<br />
Hello, World!<br />
}}<br />
<br />
== Cross compiling ==<br />
<br />
=== Using rustup ===<br />
<br />
You can easily cross-compile using rustup. rustup supports many crosscompile targets. A full list can be found running {{ic|rustup target list}}.<br />
<br />
For instance, if you want to install rust using the stable channel for windows, using the gnu compiler, you will need to do : <br />
<br />
$ rustup toolchain install stable-x86_64-pc-windows-gnu<br />
<br />
This will only installs rust and its tools for your target architecture, but some additional tools might be needed for cross compiling.<br />
<br />
=== Windows ===<br />
<br />
In this section, {{ic|$ARCH}} is the target architecture (either {{ic|x86_64}} or {{ic|i686}}). It will explain how to cross compile using rustup.<br />
<br />
# [[Install]] {{AUR|mingw-w64-gcc-base}}<br />
# [[Install]] {{AUR|mingw-w64-gcc}} (select "y" to replace when conflict appears) and {{Pkg|wine}}<br />
# If you are using rustup, you can run {{ic|rustup toolchain install stable-$ARCH-pc-windows-gnu}} and {{ic|rustup target add $ARCH-pc-windows-gnu}} to install rust and rust standard library for your architecture. If you are not using rustup, install a copy of rust's standard library for windows in your rustlib directory ({{ic|/usr/local/lib/rustlib}} if you're using {{AUR|rust-nightly-bin}} and {{ic|/usr/lib/rustlib}} if you're using the official {{Pkg|rust}} package). The easiest way to do this is to download the rust installer for windows for your target architecture, install it under wine ({{ic|wine start my-rust-installer.msi}}) and copy {{ic|$INSTALL_DIR/lib/rustlib/$ARCH-pc-windows-gnu}} into your rustlib directory. <br />
# Finally, tell cargo where to find the MinGW-w64 gcc/ar by adding the following to your {{ic|~/.cargo/config}}:<br />
{{hc|~/.cargo/config|<nowiki><br />
[target.$ARCH-pc-windows-gnu]<br />
linker = "/usr/bin/$ARCH-w64-mingw32-gcc"<br />
ar = "/usr/$ARCH-w64-mingw32/bin/ar"<br />
</nowiki>}}<br />
<br />
Finally, you can cross compile for windows by passing the {{ic|--target $ARCH-pc-windows-gnu}} to cargo:<br />
<br />
$ # Build<br />
$ cargo build --release --target "$ARCH-pc-windows-gnu"<br />
$ # Run unit tests under wine<br />
$ cargo test --target "$ARCH-pc-windows-gnu"<br />
<br />
Currently building executables using MinGW 6 and the toolchains installed by rustup is broken. To fix it, execute<br />
<br />
for lib in crt2.o dllcrt2.o libmsvcrt.a; do cp -v /usr/x86_64-w64-mingw32/lib/$lib $HOME/.rustup/toolchains/$CHANNEL-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/; done<br />
<br />
where {{ic|CHANNEL}} is the update channel ({{ic|stable}}, {{ic|beta}} or {{ic|nightly}})<br />
<br />
=== Unofficial packages ===<br />
<br />
The [[Unofficial user repositories#archlinuxcn|unofficial repository archlinuxcn]] has rust-nightly and Rust std library for i686, ARM, ARMv7, Windows 32 and 64 so you can just install the one you want then enjoy cross compiling. However, you have to find an ARM toolchain by yourself. For Windows 32bit targets, you'll need to get a libgcc_s_dw2-1.dll to build and run.<br />
<br />
== Cargo ==<br />
<br />
[https://crates.io/ Cargo], Rust's package manager, is part of the {{Pkg|rust}} package. The nightly version is available in the AUR as {{AUR|cargo-nightly-bin}}. If you use {{Pkg|rustup}}, it already includes cargo.<br />
<br />
Cargo is a tool that allows Rust projects to declare their various dependencies, and ensure that you'll always get a repeatable build. You're encouraged to read the [http://doc.crates.io/guide.html official guide].<br />
<br />
=== Usage ===<br />
<br />
To create a new project using Cargo:<br />
<br />
$ cargo new hello_world <br />
<br />
This creates a directory with a default {{ic|Cargo.toml}} file, set to build an executable.<br />
<br />
{{Note|Cargo uses this {{ic|Cargo.toml}} as a manifest containing all of the metadata required to compile your project.<br />
{{hc|head=Cargo.toml|<br />
output=[package]<br />
name = "hello_world"<br />
version = "0.1.0"<br />
authors = ["Your Name <you@example.com>"]<br />
edition = "2018"<br />
<br />
[dependencies]<br />
}}<br />
}}<br />
<br />
=== Optimizing for native CPU platform ===<br />
<br />
In order to instruct Cargo to always compile optimal code for your CPU platform, you can achieve this by adding a flag to {{ic|~/.cargo/config}}. Please be aware that the resulting binaries can not be distributed for use on other computers, and might even fail on your own system if you decide to change your CPU in the future.<br />
<br />
Find out which target platform is used by default on your installation:<br />
{{hc|$ rustup toolchain list|<br />
stable-x86_64-unknown-linux-gnu (default)<br />
}}<br />
<br />
In this example we are using {{ic|stable}} rust on the {{ic|x86_64-unknown-linux-gnu}} platform.<br />
<br />
Instruct Cargo to always compile code optimized for the native CPU platform:<br />
{{hc|~/.cargo/config|<nowiki><br />
[target.x86_64-unknown-linux-gnu]<br />
rustflags = ["-Ctarget-cpu=native"]<br />
</nowiki>}}<br />
<br />
== IDE support ==<br />
<br />
=== Tools ===<br />
<br />
==== RLS ====<br />
<br />
[https://github.com/rust-lang/rls RLS] provides a [https://microsoft.github.io/language-server-protocol/ Language Server Protocol] implementation for Rust, providing IDEs, editors, and other tools with information about Rust programs. It supports functionality such as 'goto definition', symbol search, reformatting, and code completion, and enables renaming and refactorings.<br />
<br />
RLS is included in the {{pkg|rust}} package. To install RLS using rustup:<br />
<br />
$ rustup component add rls rust-analysis rust-src<br />
<br />
==== Racer ====<br />
<br />
[https://github.com/phildawes/racer Racer] provides code completion support for editors and IDEs. It has been superseded by RLS (which uses Racer as a fallback).<br />
<br />
It requires that you also install a copy of the Rust source code, which you can obtain in one of several ways:<br />
* With rustup: {{ic|rustup component add rust-src}}<br />
* From the AUR: {{Aur|rust-src}} or {{Aur|rust-nightly-src}}, in this case you must set the {{ic|RUST_SRC_PATH}} environment var.<br />
After installing the source code, you can either use {{ic|Cargo}} to install racer or obtain it from the repos ({{pkg|rust-racer}}).<br />
<br />
$ cargo +nightly install racer<br />
<br />
==== Clippy ====<br />
<br />
[https://github.com/rust-lang/rust-clippy Clippy] takes advantage of compiler plugin support to provide a large number of additional lints for detecting and warning about a larger variety of errors and non-idiomatic Rust. <br />
<br />
Clippy is included in the {{pkg|rust}} package. To install it with rustup use:<br />
<br />
$ rustup component add clippy<br />
<br />
==== Rustfmt ====<br />
<br />
[https://github.com/rust-lang/rustfmt Rustfmt] is a tool to format Rust code according to the official style guidelines.<br />
<br />
Rustup is included in the {{pkg|rust}} package. To install it with rustup use:<br />
<br />
$ rustup component add rustfmt<br />
<br />
=== Editors ===<br />
<br />
==== Atom ====<br />
<br />
[[Atom]] support for Rust programming is provided by the [https://atom.io/packages/ide-rust ide-rust] plugin (requires rustup).<br />
<br />
==== IntelliJ IDEA ====<br />
<br />
[https://www.jetbrains.com/idea/ IntelliJ IDEA] has a [https://github.com/intellij-rust/intellij-rust Rust plugin]. The same plugin also works with CLion. When configuring the toolchain, use rustup to download the source ({{ic|rustup component add rust-src}}), and then select {{ic|~/.rustup/toolchains/<your toolchain>/bin}} as the toolchain location.<br />
<br />
==== Visual Studio Code ====<br />
<br />
[[Visual Studio Code]] support for Rust can be obtained via [https://marketplace.visualstudio.com/items?itemName=rust-lang.rust rust-lang.rls] extension (requires rustup) or the [https://marketplace.visualstudio.com/items?itemName=kalitaalexey.vscode-rust kalitaalexey.vscode-rust] extension.<br />
<br />
==== Vim ====<br />
<br />
[[Vim]] support for Rust can be obtained via the official [https://github.com/rust-lang/rust.vim rust.vim] plugin, which provides file detection, syntax highlighting, formatting and support for the [https://github.com/vim-syntastic/syntastic Syntastic] syntax checking plugin. Many completion engines have Rust support, like [https://github.com/neoclide/coc.nvim coc] (via the [https://github.com/neoclide/coc-rls coc.rls] plugin) and [https://github.com/ycm-core/YouCompleteMe YouCompleteMe].<br />
<br />
==== Emacs ====<br />
<br />
[[Emacs]] support for Rust can be obtained via the official [https://github.com/rust-lang/rust-mode rust-mode] plugin or the {{AUR|emacs-rust-mode}} package.<br />
<br />
==== Kate ====<br />
<br />
Kate support for Rust is installed by default by the {{Pkg|kate}} package, but also requires extra configurations.<br />
First, install the package {{pkg|rust-racer}} <br />
Second, get the Rust source:<br />
* With rustup: {{ic|rustup component add rust-src}}<br />
* or From the AUR: {{Aur|rust-src}} or {{Aur|rust-nightly-src}}, in this case you must set the {{ic|RUST_SRC_PATH}} environment var.<br />
Third, configure Kate by clicking Settings -> Configure Kate, then navigate to Application -> Plugins, then tick the 'Rust code completion', then you will see Application -> Rust code completion in the left sidebar, navigation to it, and assign 'Rust source tree location' to {{ic|$HOME/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src}}<br />
if you install the Rust source with rustup.<br />
<br />
== See also ==<br />
<br />
* [http://rust-lang.org/ Official website of the Rust Programming Language]<br />
* [https://www.rust-lang.org/documentation.html Rust Documentation]<br />
* [http://doc.rust-lang.org/stable/book/ Official Rust Book]<br />
* [https://doc.rust-lang.org/std/ Standard Library API Lookup]<br />
* [https://doc.rust-lang.org/stable/rust-by-example/ Examples with small descriptions]<br />
* [https://github.com/ctjhoa/rust-learning Page listing of Rust tutorials]<br />
* [https://crates.io/ Libraries(crates) available through Cargo]<br />
* [https://this-week-in-rust.org/ This Week in Rust]<br />
* [http://blog.rust-lang.org/ The Rust Programming Language Blog]<br />
* [https://users.rust-lang.org/ The Rust Users Forum]<br />
* [https://internals.rust-lang.org/ The Rust Internals Forum]<br />
* [https://rust.libhunt.com/ Awesome Rust: A curated list of Rust libraries and resources]<br />
* [[Wikipedia:Rust (programming language)|Wikipedia article]]</div>Betseghttps://wiki.archlinux.org/index.php?title=Laptop/Lenovo&diff=586978Laptop/Lenovo2019-10-22T13:20:59Z<p>Betseg: /* IdeaPad */</p>
<hr />
<div>[[Category:Lenovo]]<br />
[[ja:ノートパソコン/Lenovo]]<br />
{{Laptops navigation}}<br />
{{Related articles start}}<br />
{{Related|ThinkPad docks}}<br />
{{Related articles end}}<br />
<br />
== IBM/Lenovo ==<br />
<br />
=== ThinkPad ===<br />
<br />
==== Edge series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| [[Lenovo ThinkPad Edge E330]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad Edge E335]] || NA || Yes || Yes || Yes || Yes || NA || Yes || NA || ||<br />
|-<br />
| Lenovo ThinkPad Edge E420s || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || SDcard (Yes), Webcam (Yes), Trackpoint (No) || <br />
|-<br />
| [[Lenovo ThinkPad Edge E430]] || Yes || Yes || Yes* || Yes* || Not tested || Yes || NA || NA || SD card (yes) || <br />
|-<br />
| [[Lenovo ThinkPad Edge E455]] || 2015.04.01 || Yes* || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| Lenovo ThinkPad Edge E470 || 2017.09.01 || Yes || Yes || Yes || Yes || Not tested || NA || NA || trackpoint (yes) ||<br />
|-<br />
| Lenovo ThinkPad Edge E530 || Yes || Yes || Yes* || Yes* || Yes || Yes || NA || NA || SD card (yes), Finger Print (yes) || E530 without fingerprint reader can be equipt with one.<br />
|-<br />
| Lenovo ThinkPad Edge E531 || Yes || Yes || Yes || Yes || Yes* || Yes || Yes || NA || SD card (yes), Touch Pad/Trackpoint (yes), Webcam (yes) || WiFi only works with {{Pkg|broadcom-wl-dkms}}<br />
|-<br />
| Lenovo ThinkPad Edge E540 || 2015.08.01 || Yes || Yes || Yes || Yes || Yes || Yes* || NA || SD card (yes), Finger Print (yes), touch pad and trackpoint (yes), Webcam (yes) || <br />
|-<br />
| Lenovo ThinkPad Edge E545 || NA || Yes || Yes || Yes || Yes* || Not tested || Yes || NA || SD card (yes), touch pad and trackpoint (yes) Webcam (yes) || wifi works only with {{Pkg|broadcom-wl-dkms}}<br />
|-<br />
| Lenovo ThinkPad Edge E580 || 2018.05.01 || Yes || Yes || Yes || Yes || Yes || Yes || NA || Fingerprint sensor doesn't work because of proprietary firmware || ||<br />
|-<br />
|}<br />
<br />
==== E series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo ThinkPad E485 || 2018-10-01 || Yes || Yes || Yes || Yes || Yes || Yes || N/A || || Missing IVRS map in ACPI Table, add <code>amd_iommu=pt ivrs_ioapic[32]=00:14.0</code> in [[kernel parameters]]. In order to get X to work correctly, add <code>iommu=soft</code> in [[kernel parameters]] (Linux 4.20 only). On Linux 5.2, add <code>iommu=pt</code> to prevent render artifacts on X. In order to get microsd (SDHCI) working, <code>echo 'options sdhci debug_quirks2="0x8000"' > /etc/modprobe.d/sdhci.conf</code> and change module load order <code>MODULES=(sdhci sdhci_pci)</code> in <code>/etc/mkinitcpio.conf</code> (line 7). Don't forget to run <code>mkinitcpio -p linux</code> afterwards. If WiFi doesn't work on RTL8822BE adapter models, create a file <code>/etc/modprobe.d/wifi.conf</code> and add the following lines: <code>blacklist rtw_pci<br />blacklist rtwpci</code>. Then, install {{aur|rtlwifi_new-extended-dkms}} and reboot.<br />
|-<br />
| Lenovo ThinkPad E585 || 2018-11-01 || Yes || Yes || Yes || Yes || Yes || Yes || N/A || || Missing IVRS map in ACPI Table, add <code>amd_iommu=pt ivrs_ioapic[32]=00:14.0</code> in [[kernel parameters]]. In order to get X to work correctly, add <code>iommu=soft</code> in [[kernel parameters]] (Linux 4.20 only). In order to get microsd (SDHCI) working, <code>echo 'options sdhci debug_quirks2="0x8000"' > /etc/modprobe.d/sdhci.conf</code> and change module load order <code>MODULES=(sdhci sdhci_pci)</code> in <code>/etc/mkinitcpio.conf</code> (line 7). Don't forget to run <code>mkinitcpio -p linux</code> afterwards. Bluetooth doesn't work until a suspend/resume cycle occurs.<br />
|-<br />
| Lenovo ThinkPad E595 || 2019-07-01 || Yes || Yes || Yes || Yes || Yes || Yes || N/A || ||<br />
Wifi is slow and unstable with default driver, but it works using {{aur|rtlwifi_new-dkms}}.<br />
<br />
To make sound work properly, add `intel_iommu=igfx_off` in [[kernel parameters]].<br />
<br />
Missing IVRS map in ACPI Table, add <code>amd_iommu=pt ivrs_ioapic[32]=00:14.0</code> in [[kernel parameters]] (copied from above, the fan stopped making noise all the time afterwards).<br />
<br />
MicroSD not tested, see above if it doesn’t work.<br />
|-<br />
|}<br />
<br />
==== L series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| [[Lenovo ThinkPad L380 Yoga]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || Trackpoint*, Fingerprint reader ||<br />
|-<br />
| Lenovo ThinkPad L390 || 2019.09.01 || Yes || Yes || Not tested || Yes || Yes || Yes || NA || Webcam, MicroSD card reader is working out of the box. Not working out of the box: Touchscreen, fingerprint reader, NFC ||<br />
|-<br />
| Lenovo ThinkPad L420 || Yes || Yes || Yes || Yes || Yes || Not tested || Yes || NA || ||<br />
|-<br />
| Lenovo ThinkPad L430 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || Trackpoint* ||<br />
|-<br />
| Lenovo ThinkPad L440 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || Trackpoint (Touchpad cannot be disabled, as mouse buttons are shared with Trackpoint), Fingerprint reader, SD Card Reader ||<br />
|-<br />
| Lenovo ThinkPad L460 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || Not tested || Trackpoint, Fingerprint reader, SD Card Reader ||<br />
|-<br />
| Lenovo ThinkPad L520 || 2018.09.01-x86_64|| Yes || Yes || Yes || Yes || Not tested|| Not tested|| Not tested|| Not tested ||<br />
|-<br />
| Lenovo ThinkPad L530 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || Trackpoint*, Fingerprint reader ||<br />
|-<br />
| Lenovo ThinkPad L560 || Yes || Yes || Yes || Yes || Yes || Not tested || Not tested || NA || Trackpoint ||<br />
|-<br />
|}<br />
<br />
==== A series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo ThinkPad A485 || 2018.12 || Yes || Yes || Yes || Yes || Yes || Yes || NA || Touch Pad/Trackpoint (yes), Webcam (yes) || bluetooth does not work when activating [[Laptop Mode Tools]] <code>runtime-pm</code> module<br />
|}<br />
<br />
==== P series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| [[Lenovo ThinkPad P50]] || 2016.04 || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Fingerprint Reader ({{AUR|libfprint-vfs0090-git}}), || Wifi requires Kernel 4.3.3+ <br />
|-<br />
| [[Lenovo ThinkPad P70]] || 2016.04 || Yes || Yes || Yes || Yes || Yes || Suspend working, hibernate not tested || NA || SD card (Yes), Webcam (Yes), Fingerprint Reader ({{AUR|libfprint-vfs0090-git}}), || Wifi requires Kernel 4.3.3+ <br />
|-<br />
| Lenovo ThinkPad P51 || Unknown || Yes || Yes || Yes || Yes || Yes || Yes || Yes (No GNSS/GPS) ||<br />
* Working: SD card, Webcam, Express card, Smartcard reader, Fingerprint Reader ({{AUR|libfprint-vfs0097-git}})<br />
* Not working: TPM, Color calibrator, UEFI flash <br />
|| HDMI audio requires nvhda module<br />
|-<br />
| [[Lenovo ThinkPad P52]] || 2018.09 || Yes || Yes || Yes || Yes || Unknown || Suspend working, hibernate not tested || NA || Touchpad (No) ||<br />
|-<br />
| [[Lenovo ThinkPad P1]] || 2018.12 || Yes || Yes || Yes || Yes || Yes || Suspend working, hibernate not tested || NA || Webcam (Yes), multi-monitor (yes)|| <br />
|-<br />
| [[Lenovo ThinkPad P1 (Gen 2)]] || 2019.09.01 || Yes || Yes || Yes || Yes || Yes || Suspend working, hibernate working || NA || Webcam (not tested), multi-monitor (yes)|| <br />
|-<br />
| [[Lenovo ThinkPad P52s]] || 2019.02 || Yes* (See Remarks) || Yes || Yes || Yes || Yes || Suspend (Yes), Hibernate (Yes) || Not tested || Webcam (Yes), Multi-monitor (Yes), Card Reader (Yes), Smartcard Reader (Yes), NFC (No, [https://github.com/nfc-tools/libnfc/issues/455 see this]), Fingerprint (No, [https://forums.lenovo.com/t5/Linux-Discussion/Thinkpad-T580-Synaptics-Metallica-MIS-Touch-Fingerprint-Reader/m-p/4057745 see this])|| *Intel graphics needs to be specified in the Xorg config for Xorg to work, see [[Lenovo ThinkPad P52s]]<br />
|}<br />
<br />
==== T series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| IBM ThinkPad T60 || Yes || Yes || Yes || Yes || Yes || Yes || ? || NA || ||<br />
|-<br />
| IBM ThinkPad T60p || Yes || Yes || Yes || Yes || Yes || Yes || ? || NA || ThinkFinger ||<br />
|-<br />
| [[IBM ThinkPad T61]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || || ||<br />
|-<br />
| IBM ThinkPad T61p || Yes || Yes || Yes || Yes || Yes || Yes || NA || || ||<br />
|-<br />
| [[Lenovo ThinkPad T400]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad T400s]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| Lenovo ThinkPad T410 || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad T420]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || Card reader tested, no Fingerprint scanner||<br />
|-<br />
| [[Lenovo ThinkPad T420s]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || Card Reader ||<br />
|-<br />
| [[Lenovo ThinkPad T430]] || Yes || Yes || Yes || Yes || Yes || Yes* || Yes* || Not tested || ||<br />
|-<br />
| [[#Lenovo ThinkPad T440p|Lenovo ThinkPad T440p]] || Yes || Yes || Yes || Yes || Yes || Yes* || NA || NA || Card Reader || See below<br />
|-<br />
| [[Lenovo ThinkPad T440s]] || Yes || Yes || Yes || Yes || Yes* || ? || Yes || ? || || See wiki page for more details about wireless<br />
|-<br />
| [[Lenovo ThinkPad T450s]] || 2015.10.01 || Yes || Yes || Yes || Yes || Yes || ? || NA || SD Card reader; fingerprint scanner|| <br />
|-<br />
| [[Lenovo ThinkPad T460s]] || Yes || Yes || no beep || Yes || Yes || Yes || ? || NA || SD Card reader|| <br />
|-<br />
| [[Lenovo ThinkPad T25]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD Card reader; fingerprint scanner; Touchscreen|| <br />
|-<br />
| [[Lenovo ThinkPad T470]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD Card reader; fingerprint scanner|| <br />
|-<br />
| [[Lenovo ThinkPad T470s]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD Card reader; fingerprint scanner|| <br />
|-<br />
| [[Lenovo ThinkPad T480]] || 2018.07.01 || Yes || Yes || Yes || Yes || Yes || ? || NA || Thunderbolt 3 (USB-C); SD Card reader; fingerprint scanner|| <br />
|-<br />
| [[Lenovo ThinkPad T480s]] || ? || Yes || no beep || Yes || Yes || Yes || ? || NA || Thunderbolt 3 (USB-C); SD Card reader|| <br />
|-<br />
| [[Lenovo ThinkPad T490]] || Yes || Yes || Yes || ? || Yes || Yes || Yes || NA || Thunderbolt 3 (USB-C); SD Card reader || Some problems with touchpad<br />
|-<br />
| [[Lenovo ThinkPad T495]] || Yes || Yes || Yes || ? || Yes || ? || Yes || NA || SD Card reader ||<br />
|-<br />
| Lenovo ThinkPad T500 || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad T520]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad T530]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad T550]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || DisplayPort ||<br />
|-<br />
| Lenovo ThinkPad T560 || Yes || Yes || Yes || Yes || Yes || Yes || Yes* || NA || MiniDP; Fingerprint scanner; Intel + Nvidia GPU; Card Reader || See special notes for the hardware specifications of this test device<br />
|-<br />
| [[Lenovo ThinkPad T570]] || Yes || Yes || Yes || Yes || Yes || ? || Yes* || NA || not yet fully tested || <br />
|-<br />
| Lenovo ThinkPad T580 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD Card Reader is supported; [https://forums.lenovo.com/t5/Linux-Discussion/Thinkpad-T580-Synaptics-Metallica-MIS-Touch-Fingerprint-Reader/m-p/4057745 Fingerprint reader is not supported] || Tested on ''2 May 2018'' (with ''Linux 4.16.5'')<br />
|}<br />
<br />
==== W series ====<br />
{{HCL/Laptops table header}}<br />
|-<br />
| Lenovo ThinkPad W510 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Touchscreen (Yes), Fingerprint Reader (Not tested) || Tested April 2017 / Linux 4.10.8<br />
|-<br />
| Lenovo ThinkPad W530 || 2016.03 || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Fingerprint Reader (Yes) || Tested April 2018 / Linux 4.15.15<br />
|-<br />
| Lenovo ThinkPad W540 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Fingerprint Reader (Yes) || Tested April 2017 / Linux 4.10.8<br />
|-<br />
| Lenovo ThinkPad W541 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || Not tested || SD card (Yes), Webcam (Yes), Fingerprint Reader (Not tested) || Tested August 2018 / Linux 4.17.12<br />
|-<br />
| Lenovo ThinkPad W550s || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Fingerprint Reader (Yes) || Tested April 2018 / Linux 4.15.15<br />
|-<br />
|}<br />
<br />
==== X series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| [[IBM ThinkPad X60s]] || Yes|| Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| Lenovo ThinkPad X61s || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD slot ||<br />
|-<br />
| [[Lenovo ThinkPad X100e]] || Yes|| Yes || Yes || Yes || Yes || Yes || Not tested || NA || SD card (Yes), Webcam (Yes) ||<br />
|-<br />
| [[Lenovo ThinkPad X131e]] || Yes|| Yes || Yes || Yes || Yes || Yes || Yes || Not tested || SD card (Yes), Webcam (Yes), [https://bbs.archlinux.org/viewtopic.php?id=159014 WLAN Led seems not controlled] ||<br />
|-<br />
| [[Lenovo ThinkPad X200]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || Yes || ||<br />
|-<br />
| [[Lenovo ThinkPad X200S]] || Yes || Yes || Yes || Yes || Yes || Not tested || NA || Not tested || Everything worked out of the box. However, fingerprint, SD card and webcam were not tested ||<br />
|-<br />
| [[Lenovo ThinkPad X201]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || Not tested || ||<br />
|-<br />
| [[Lenovo ThinkPad X220]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes) ||<br />
|-<br />
| [[Lenovo ThinkPad X230]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), UMTS Modem (Yes) ||<br />
|-<br />
| [[Lenovo ThinkPad X240]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || WWAN LTE (yes) || SD card (Yes), Webcam (Yes), Fingerprint (Yes) ||<br />
|-<br />
| [[Lenovo ThinkPad X250]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Fingerprint (Yes) ||<br />
|-<br />
| [[Lenovo ThinkPad X260]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Fingerprint (Yes) ||<br />
|-<br />
| Lenovo ThinkPad X270 || Yes || Yes || Yes || Yes || Yes || Not tested || Yes || NA || Webcam (Yes) ||<br />
|-<br />
| Lenovo ThinkPad X280 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || Yes (Fibcom L830-EB-00) || Webcam (Yes) ||<br />
|-<br />
| Lenovo ThinkPad X390 || 2019.08.01 || Yes || Yes || Yes || Yes || Not tested || Yes || Yes (Fibocom L830-EB) || Webcam (Yes) ||<br />
|-<br />
| Lenovo ThinkPad X395 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || Webcam (Yes), Fingerprint(No, WIP[https://forums.lenovo.com/t5/Other-Linux-Discussions/Linux-on-T495/m-p/4474320#M13440]) || Prevent amdgpu issues by updating to latest BIOS [https://support.lenovo.com/us/en/downloads/ds540046]<br />
|-<br />
| [[Lenovo ThinkPad X1 Carbon]] || NA || Yes || Yes || Yes || Yes || Proprietary/nonfree || Yes || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Carbon (Gen 2)]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Carbon (Gen 3)]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Carbon (Gen 4)]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Carbon (Gen 5)]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || Yes || ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Carbon (Gen 6)]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || Yes || ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Extreme]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || NA || Fingerprint reader not supported, Thunderbolt ports not tested || Graphics requires some configuration to work correctly<br />
|-<br />
| [[Lenovo ThinkPad X1 Extreme (Gen 2)]] || NA || Yes || Yes || Unknown || Yes || Yes || Yes || NA || Fingerprint reader not supported [https://github.com/nmikhailov/Validity90/issues/72 yet], Thunderbolt ports not tested ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Yoga (Gen 3)]] || NA || Yes || Yes || Yes || Yes || Yes || Partial || NA || SD card (Yes), Webcam (Yes), Fingerprint (No), Touchscreen (Yes), Accelerometer (Yes) ||<br />
|}<br />
<br />
==== Yoga Series ====<br />
{{HCL/Laptops table header}}<br />
| [[Lenovo ThinkPad Yoga 260]] || USB || Yes || Yes || Yes || Yes || Yes || Unknown || Yes || SD card (Yes), Webcam (Yes), Fingerprint Reader (Unknown), Touchscreen (Yes), Tablet (Partial), Accelerometer (No) || Wifi requires Kernel 4.3.3+<br />
|-<br />
| [[Lenovo Yoga 530]] || 2019.09.01 || Yes || Yes || Not tested || Yes || Not tested || Not tested || Not tested || SD card (Not tested), Webcam (Yes), Fingerprint Reader (Not tested), Touchscreen (Yes), Tablet (Partial) || Trouble with touchpad, but worked with kernel parameters "i8042.noloop i8042.nomux i8042.nopnp i8042.reset" and xf86-input-synaptics<br />
|-<br />
| [[Lenovo Yoga 710]] || NA || Yes || Yes || Yes || Yes || Not tested || Yes || Not tested || SD card (Yes), Webcam (Yes), Touchscreen (partially) || Touchscreen worked just from sleep, not from power off. Probably easy fix, disabled for unusage<br />
|-<br />
|}<br />
<br />
==== Helix Series ====<br />
{{HCL/Laptops table header}}<br />
| [[Lenovo ThinkPad Helix]] || Unknown || YES || YES || NA || YES || YES || NA || Touchscreen (yes), Pen (yes), Sensors (yes) || ||<br />
|-<br />
| [[Lenovo ThinkPad Helix 2nd Gen]] || 2018.04.01 (USB) || YES || YES || NA || YES || Not tested || Yes* (with updated BIOS) || Touchscreen (yes), Pen (not tested), Sensors (w/ patched kernel) || NA || Only suspend-to-idle ("freeze") is supported<br />
|-<br />
|}<br />
<br />
== Lenovo ==<br />
<br />
=== IdeaPad ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo IdeaPad 120S || 2018-04-26 || Yes || Yes || NA || Yes || Yes || Yes || NA || Everything works ||<br />
|-<br />
| [[Lenovo IdeaPad Flex 10]] || Yes || Yes* || Yes || NA || Yes || Yes || Yes || NA || Touchscreen* ||<br />
|-<br />
| [[Lenovo IdeaPad S10]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| [[Lenovo IdeaPad S400 Touch]] || Yes || Yes || Yes || Yes || Yes || Yes || Not tested || NA || ||<br />
|-<br />
| Lenovo IdeaPad U430p || Yes || Yes || Yes || Yes || Yes || Yes || Not tested || NA || ||<br />
|-<br />
| Lenovo IdeaPad Y700 || 2015.12.01 || Yes || Yes* || Yes || Yes || Yes || Not tested || NA || Trackpad - [https://unix.stackexchange.com/questions/362165/lenovo-y700-elantech-touchpad-query-0x01-failed buggy] || [https://bugzilla.kernel.org/show_bug.cgi?id=151681 Trackpad requires pata_legacy to be blacklisted]<br />
|-<br />
| [[Lenovo IdeaPad Z580]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| [[Lenovo IdeaPad 720s]] || 2018.03.01 || Yes || Yes || NA* || Yes || Yes || Yes || NA || Fingerprint reader not working || *requires USB or USB C dongle<br />
|-<br />
| [[Lenovo IdeaPad 720s (Ryzen)]] || 2018.02.01 || Not tested || Not tested || Yes* || No || Not tested || Not tested || NA || Fingerprint reader not tested but most likely not working || *requires USB or USB C dongle<br />
|-<br />
| Lenovo Ideapad 320 || 2018.03.01 || Yes || Yes || Yes || Yes || Yes || Not tested || NA || To stop constant annoying messages by AMD-Vi, use 'iommu=soft' & 'amd_iommu=off' in kernel arguments || <br />
|-<br />
| Lenovo Ideapad N24 || 2018.04.01 || Yes || Yes || NA || Yes || Not tested || Not tested || NA || Touchscreen || <br />
|-<br />
|}<br />
<br />
====== Battery Conservation Mode on IdeaPad laptops ======<br />
<br />
Battery Conservation Mode is a feature that limits battery charging to 55-60% of its capacity to improve battery life, being most useful when the laptop tends to run on external power much of the time. If your particular laptop model supports it, it can be enabled or disabled in the following manner:<br />
<br />
:First make sure the '''ideapad_laptop''' kernel module is loaded, with the {{ic|lsmod}} command.<br />
:If it is, run the following command as root to enable Battery Conservation Mode:<br />
<br />
# echo 1 >/sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode<br />
<br />
:A 0 will in turn disable the feature.<br />
<br />
{{Note|1=<br><br />
* Both the presence and implementation of this feature vary by model. Particularly, the name of the folder '''VPC2004:00''' could differ.<br />
* If the above doesn't work on your laptop, you can try a different method described [https://forums.linuxmint.com/viewtopic.php?f=49&t=286237#p1583578 here], which may require some (further) trial and error.}}<br />
<br />
=== B series ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo B50 || NA || Yes || Yes || Yes || Yes || Not tested || Not tested || Not tested || ||<br />
|-<br />
| Lenovo B50-70 || Yes || Yes* ||Yes || Yes || Yes || Yes || Not tested || NA || See below* ||<br />
|-<br />
| Lenovo B450 || Yes || Yes ||Yes || Yes || Yes || NA || Not tested || NA || ||<br />
|-<br />
|}<br />
<br />
=== K series ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo K450e || NA || Yes || Yes || Yes || Yes || Not tested || Yes || Not tested || ||<br />
|-<br />
|}<br />
<br />
=== N series ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo N200 (3000) || Yes || Yes* || Yes || Yes || Yes || Yes* || NA || NA || See below ||<br />
|-<br />
|}<br />
<br />
=== S series ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo S21e-20 || 2015.07.01 || Yes || Yes || NA || Yes* || ? || Yes || NA || SD Card (Yes), USB 3.0 (Yes), HDMI Out (?), Touchpad (Yes*) ||<br />
|-<br />
|}<br />
<br />
=== U Series ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo U31-70 || 2015.10.01 || Yes || Yes || Yes || Yes* || Yes || Yes || NA || SD Card (Yes), USB 3.0 (Yes), HDMI Out (Yes), Touchpad (Yes), Webcam (Yes) ||<br />
|-<br />
|}<br />
<br />
=== V Series ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo V110-15ISK || ??? || Yes || Yes || Yes || Yes || Not Tested || Yes || NA || SD Card (Not Tested), USB 3.0 (Not Tested), HDMI Out (Not Tested), Touchpad (Yes), Webcam (Yes) ||<br />
|-<br />
| Lenovo V130-15IKB || ??? || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD Card (Yes), USB 3.0 (Yes), HDMI Out (Yes), Touchpad (Yes), Webcam (Yes) ||<br />
|-<br />
| Lenovo V330-15IKB || 2018.10.01 || Yes || Yes || Yes || Yes || Not Tested || Yes || NA || Fingerprint (No, no driver exists for the Validity/Synaptics 06cb:0081 Fingerprint Reader), Touchpad (Yes), Webcam (Yes) ||<br />
|-<br />
| Lenovo V330-14ARR || 2019.06.15 || Yes || Yes || Yes || Yes* || Yes || Yes || NA || SD-Card Reader (Yes) HDMI Out (Yes), USB 3.0 (Yes), Touchpad (Yes), Webcam (Yes) || DOS installable BIOS available* ||<br />
|-<br />
|}<br />
<br />
=== Y series ===<br />
{{HCL/Laptops table header}}<br />
| Lenovo Legion Y520 || 2019.06.01 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || SD card (Not working properly), Webcam (Yes), USB & USB 3.0 (Yes), HDMI (Yes), USB-C (Not tested), Touchpad (Yes), NVMe M.2 SSD (Yes), GeForce GTX 1050 Ti (Yes) || Tested June 2019 / Linux 5.1.9. Must change SATA configuration in BIOS from RAID to AHCI in order to recognize SSD.<br />
|-<br />
| Lenovo Legion Y520 || ??? || Yes || Yes || Yes || Yes || Yes || Yes || Yes || SD card (Not tested), Webcam (Yes), USB & USB 3.0 (Yes), HDMI (Yes), USB-C (Not tested), Touchpad (Yes), NVMe M.2 SSD (Yes), GeForce GTX 1050 (Yes) || Tested June 2019 / Linux 5.1.5. Must change SATA configuration in BIOS from RAID to AHCI in order to recognize SSD. Some CPU throttling is possible [https://unix.stackexchange.com/questions/491944/cpu-temperatures-in-linux-throttling-or-wrong-reading]. Fan control does not seem to work [https://unix.stackexchange.com/questions/523899/laptop-fan-always-says-its-running-at-8-rpm]<br />
|-<br />
| Lenovo Legion Y730 || ??? || Yes || Yes || Yes || Yes || Yes || Yes || Yes || Webcam (Yes), USB & USB 3.0 (Yes), HDMI (Yes), USB-C (Not tested), Touchpad (Yes), NVMe M.2 SSD (Yes), GeForce GTX 1050 Ti (Yes) || Tested September 2019 / Linux 5.2.13. Must change SATA configuration in BIOS from RAID to AHCI in order to recognize SSD. Disable nouveau at kernel command line with module_blacklist=nouveau or nouveau.modeset=0<br />
|-<br />
| Lenovo Legion Y7000P-1060 || 2019.03.01 || Yes || Yes || Yes || Yes || Yes || Yes || No || Webcam (Yes), USB & USB 3.0 (Yes), HDMI (Yes), USB-C (Yes), Mini DisplayPort (Not tested), Touchpad (Yes), NVMe SSD (Yes), GeForce GTX 1060 Mobile (Yes) || First tested Aug 2019 / Linux 5.2.9.<br />
<br />
https://linux-hardware.org/index.php?computer=af3a4bc1494f<br />
|}<br />
<br />
== Special Notes (*): ==<br />
<br />
{{Accuracy|Lots of vague or unproven bugs/workarounds, poor writing}}<br />
<br />
=== Lenovo U31-70 ===<br />
Wireless needs {{Pkg|linux}} >= 4.3 and latest {{Pkg|linux-firmware}}, both packages are currently in testing. Copy one of the firmware blobs {{ic|eeprom_ar6320_2p1_NFA345i.bin}} or {{ic|eeprom_ar6320_2p1_NFA345i_highTX.bin}} from the windows driver to {{ic|/usr/lib/firmware/ath10k/QCA6174/hw2.1/board-pci-168c:0041:17aa:3545.bin}}.<br />
<br />
Wireless with firmware blobs from windows driver may no longer work on {{Pkg|linux}} >= 4.4. Download firmware blob https://github.com/kvalo/ath10k-firmware/blob/f428f53b36b144971c9c4c3d2ebd5fa8cae86c89/QCA6174/hw2.1/board-2.bin and copy it to {{ic|/usr/lib/firmware/ath10k/QCA6174/hw2.1/board-2.bin}}. Tested with {{Pkg|linux}} 4.4.5-1 and {{Pkg|linux-firmware}} 20160113.40e9ae8-1nu<br />
<br />
With packages {{Pkg|linux}} 4.6.1-2 and {{Pkg|linux-firmware}} 20160516.80d463b-1 being in stable, wireless works without any additional steps needed.<br />
<br />
=== Lenovo B50-70 ===<br />
* UEFI:<br />
** to be able to disable Secure Boot (necessary for dual boot, not needed for Linux only), you have to switch from "UEFI first" to "UEFI only" (or something like this) in UEFI setup menu; the Secure Boot option appears then on the Security tab<br />
** after UEFI update having Linux and Windows installed, the Linux bootloader ceased to be the default one, UEFI started to load Windows by default and it was impossible to select the Linux one in the UEFI boot menu and in the UEFI setup - reinstalling the bootloader helped; having no access to a boot media that supports UEFI, a solution might be also replacing the Windows EFI bootloader file with a Linux one temporalily, in order to be able to boot Linux from HDD<br />
** for the UEFI update, a Windows OS is needed<br />
* Touchpad:<br />
** Synaptics - works after installing Synaptics drivers from repo, possible to change behaviour (like reaction for double tap) according to your wish<br />
* Video:<br />
** in laptops with dual video card (Intel and ATI) - detects both, Intel is active as a default, not checked if it's possible at all to switch between them<br />
<br />
==== Operation with a HDD caddy ====<br />
When you install an SSD in the place of the plate HDD drive and you want to have your HDD still inside the laptop, it is possible to install it in the place of the optical drive in a special "HDD caddy". The optical drive is of 9 mm height, but a 9,5 mm caddy (ultra slim) fits in the slot. A caddy with a SATA interface is needed. It is difficult to separate the front bezel from the original optical drive (and opening its case does not help, but brings a danger of making a mess in the opening mechanism; the only option is just to pull the bezel using a bit of force, but you risk breaking the latches).<br />
<br />
While the HDD installed instead of the optical drive operates flawlessly in Windows, it was not going to work out of the box in Linux, at least in one case. The kernel tries to establish a connection with the disk, but fails to do it (''SATA link down'' entry in /var/log/messages). The solution is to force a 1.5 Gbps transfer speed (instead of 6 Gbps) by adding a ''libata.force='' kernel parameter. See [https://www.kernel.org/doc/Documentation/kernel-parameters.txt] for details.<br />
<br />
=== Lenovo K450e ===<br />
<br />
After installing Arch Linux and booting, a single beep may be heard. To disable this beep, press F1 during startup, then change Boot Priority to 'UEFI First', as well as enabling 'CSM'.<br />
<br />
=== ThinkPad X1 Carbon 3rd ===<br />
<br />
* http://natalian.org/archives/2015/02/18/Archlinux_on_a_Lenovo_X1C3/<br />
<br />
=== Lenovo 3000 N200 ===<br />
<br />
* Sound:<br />
** You may have to append {{ic|1=options snd_hda_intel model=lenovo}} to {{ic|/etc/modprobe.d/modprobe.conf}} for sound to work.<br />
<br />
=== Lenovo ThinkPad T430 ===<br />
{{Accuracy | I was not able to reproduce this bug as of September 2017 }}<br />
<br />
* Bluetooth (0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad]) appears to be functional, even during standby or hibernation.<br />
<br />
=== Lenovo ThinkPad T440p ===<br />
<br />
* ClickPad: the whole trackpad clicks, and disabling the trackpad using older versions of synclient makes the trackpoint essentially unusable. This has been resolved in newer versions of {{Pkg|xf86-input-synaptics}}.<br />
** See [http://who-t.blogspot.com.au/2014/03/xorg-synaptics-support-for-lenovo-t440.html this article] and [http://who-t.blogspot.com.au/2013/12/lenovo-t440-touchpad-button.html previous version].<br />
** Install {{AUR|xf86-input-mtrack}} for alternative drivers.<br />
* Audio:<br />
** HDMI audio is the default audio output device. Consult the [[ALSA]] page for details on changing the default.<br />
** As the X100e/Mini10, it's possible to mute the headset and speaker outputs separately to the master. Muting the speaker output improves bass output on the headset port.<br />
** If the system fails to wake from sleep, it can lose sync with the internal audio card and speakers/headphones may fail to work. In this case, put the system to sleep, and wake it again and audio functionality should be restored. <br />
* The fingerprint sensor is a Validity VFS5011, which requires [https://github.com/abbradar/fprint_vfs5011 a patched fprintd] and is apparently highly unreliable.<br />
* thinkpad_acpi:<br />
** To toggle Fn-Lock, press Fn + Esc, this will toggle the LED on the keyboard. While the Fn LED is on all Fn functionalities work as intended out of the box. <br />
** Controlling the 'glowing I' LED is apparently not possible.<br />
** fan control does not seem to work.<br />
* Graphics and Video:<br />
** With the integrated GPU, [[xrandr]] can crash while attaching or detaching displays connected via the dock.<br />
** The built-in miniDisplayPort will sometimes spew I²C issues into the kernel log.<br />
** [[Hardware video acceleration]] is highly recommended as it performs significantly better than CPU decoding of large media files.<br />
** '''The BIOS should not be upgraded past version 1.14, as newer BIOSes cause memory corruption when used with Bumblebee.''' See [https://github.com/Bumblebee-Project/bbswitch/issues/78#issuecomment-42741698 Bumblebee GitHub]<br />
* Connectivity:<br />
** Bluetooth is ''extremely'' fragile. The controller works fine most of the time, but can cause the system to wedge totally on sleep/wake cycles, especially if a connection was active at sleep. Disable the controller using {{ic|bluetoothctl}} before sleeping.<br />
<br />
=== Lenovo ThinkPad T560 ===<br />
* No automatic brightness adjusting when switching power supply battery <-> AC<br />
<br />
* Hardware specifications of test device<br />
** CPU: Intel CORE i7-6600U @ 2.60GHz or Intel CORE i5-6200U @ 2.30GHz or Intel CORE i5-6300U @ 2.40GHz<br />
** GPU Primary: Intel HD 520<br />
** GPU Secondary: Nvidia GeForce 940MX or None<br />
** WiFi: Intel 8260<br />
** Ethernet: Intel I219-LM<br />
** Card reader: Realtek RTS522A<br />
<br />
=== Lenovo S21e-20 ===<br />
* Tested with {{Pkg|broadcom-wl-dkms}} 802.11 wireless driver<br />
* Synaptics touchpad required 3 patches to {{Pkg|linux}}:drivers/hid/hid-rmi.c on 2015-07-26 ([https://bugs.freedesktop.org/show_bug.cgi?id=91102 bug report], [https://github.com/harisokanovic/archlinux-packages/commit/f4550c211ca7809ecf926f8074c7b7250a74bd92 kernel recipe patch]). The current 4.3 kernel includes these patches. You will also need to install the xf86_64-input-synaptics package([https://www.archlinux.org/packages/?name=xf86-input-synaptics]) <br />
<br />
==== tpacpi-bat ====<br />
<br />
There is an issue with tpacpi-bat not reporting the right value for the stop threshold. This seems to be related to a buggy BIOS and can not be fixed application wise. <br />
<br />
See https://github.com/teleshoes/tpacpi-bat/issues/44<br />
<br />
==== ThinkPad Edge E420s Delay with Space Bar====<br />
Solution: Update BIOS (at least 1.08).<br />
<br />
=== Lenovo IdeaPad Y700 ===<br />
* The subwoofer does not work out of the box.<br />
** Updating to Kernel 4.15 or later seems to fix the subwoofer.<br />
<br />
=== Lenovo IdeaPad V330-14ARR ===<br />
* Lenovo only provide BIOS updates as a WinX64 package. The 3.07 release has been extracted and can be installed in DOS using H2OFFT-D.EXE and is available [https://drive.google.com/drive/folders/1IgwALJ_LLHY1nRbl3naNJU1QQ7l33Vrv?usp=sharing online].<br />
* The installed wireless card (atheros based) has shown itself to be troublesome with many pci errors, most caught and corrected but very occasionally the card would fail to come up on boot or drop out during use. intel-9260 works with no errors (tested with bios 3.05) intel-9560 was not initialised by the bios.<br />
<br />
== See also ==<br />
* [http://www.thinkwiki.org/wiki Think wiki]</div>Betseghttps://wiki.archlinux.org/index.php?title=Aria2&diff=568138Aria22019-03-08T16:37:16Z<p>Betseg: /* Installation */</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:Download utilities]]<br />
[[Category:BitTorrent]]<br />
[[fa:Aria2]]<br />
[[it:Aria2]]<br />
[[ja:Aria2]]<br />
[[ru:Aria2]]<br />
From the project [https://aria2.github.io/ home page]:<br />
:aria2 is a lightweight multi-protocol & multi-source command-line download utility. It supports [[HTTP]]/[[HTTPS]], [[FTP]], [[BitTorrent]] and [[Wikipedia:Metalink|Metalink]]. aria2 can be manipulated via built-in [[Wikipedia:JSON-RPC|JSON-RPC]] and [[Wikipedia:XML-RPC|XML-RPC]] interfaces.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|aria2}} package.<br />
<br />
You may also want to install {{aur|aria2-systemd}} to use aria2 as a [[daemon]].<br />
<br />
{{Note|The executable is called {{ic|aria2c}}.}}<br />
<br />
== Configuration ==<br />
<br />
=== aria2.conf ===<br />
<br />
aria2 looks to {{ic|$XDG_CONFIG_HOME/aria2/aria2.conf}} for a set of global configuration options by default. This behavior can be modified with the {{ic|--conf-path}} switch:<br />
* Download {{ic|aria2.example.rar}} using the options specified in the configuration file {{ic|/file/aria2.rapidshare}}<br />
<nowiki>$ aria2c --conf-path=/file/aria2.rapidshare http://rapidshare.com/files/12345678/aria2.example.rar</nowiki><br />
<br />
If {{ic|$XDG_CONFIG_HOME/aria2/aria2.conf}} exists and the options specified in {{ic|/file/aria2.rapidshare}} are desired, the {{ic|--no-conf}} switch must be appended to the command:<br />
* Do not use the default configuration file and download {{ic|aria2.example.rar}} using the options specified in the configuration file {{ic|/file/aria2.rapidshare}}<br />
<nowiki>$ aria2c --no-conf --conf-path=/file/aria2.rapidshare http://rapidshare.com/files/12345678/aria2.example.rar</nowiki><br />
<br />
If {{ic|$XDG_CONFIG_HOME/aria2/aria2.conf}} does not yet exist and you wish to simplify the management of configuration options:<br />
$ touch $XDG_CONFIG_HOME/aria2/aria2.conf<br />
<br />
=== Example aria2.conf ===<br />
<br />
{{bc|<nowiki><br />
continue<br />
dir=${HOME}/Desktop<br />
file-allocation=none<br />
input-file=${HOME}/.aria2/input.conf<br />
log-level=warn<br />
max-connection-per-server=4<br />
min-split-size=5M<br />
on-download-complete=exit<br />
</nowiki>}}<br />
<br />
This is essentially the same as if running the following:<br />
<br />
$ aria2c --dir=${HOME}/Desktop --file-allocation=none --input-file=${HOME}/.aria2/input.conf --on-download-complete=exit --log-level=warn FILE<br />
<br />
{{Note|The example aria2.conf above may incorrectly use the $HOME variable. Some users have reported the curly brace syntax to explicitly create a separate ${HOME} subdirectory in the aria2 working directory. Such a directory may be difficult to traverse as bash will consider it to be the $HOME environment variable. For now, it is recommended to use absolute path names in aria2.conf.}}<br />
<br />
==== Option details ====<br />
<br />
; {{ic|continue}}: Continue downloading a partially downloaded file if a corresponding control file exists.<br />
; {{ic|<nowiki>dir=${HOME}/Desktop</nowiki>}}: Store the downloaded file(s) in {{ic|~/Desktop}}.<br />
; {{ic|<nowiki>file-allocation=none</nowiki>}}: Do not pre-allocate disk space before downloading begins. (Default: prealloc) '''<sup>1</sup>'''<br />
; {{ic|<nowiki>input-file=${HOME}/.aria2/input.conf</nowiki>}}: Download a list of line, or TAB separated URIs found in {{ic|~/.aria2/input.conf}} <br />
; {{ic|<nowiki>log-level=warn</nowiki>}}: Set log level to output warnings and errors only. (Default: debug)<br />
; {{ic|<nowiki>max-connection-per-server=4</nowiki>}}: Set a maximum of four (4) connections to each server per file. (Default: 1)<br />
; {{ic|<nowiki>min-split-size=5M</nowiki>}}: Only split the file if the size is larger than 2*5MB = 10MB. (Default: 20M)<br />
; {{ic|<nowiki>on-download-complete=exit</nowiki>}}: Run the {{ic|exit}} command and exit the shell once the download session is complete.<br />
<br />
===== Example input file #1 =====<br />
<br />
* Download {{ic|aria2-1.10.0.tar.bz2}} from two separate sources to {{ic|~/Desktop}} before merging as {{ic|aria2-1.10.0.tar.bz2}}<br />
<nowiki>http://aria2.net/files/stable/aria2-1.10.0/aria2-1.10.0.tar.bz2 http://sourceforge.net/projects/aria2/files/stable/aria2-1.10.0/aria2-1.10.0.tar.bz2</nowiki><br />
<br />
===== Example input file #2 =====<br />
<br />
* Download {{ic|aria2-1.9.5.tar.bz2}} and save to {{ic|/file/old}} as {{ic|aria2.old.tar.bz2 }} &<br />
* Download {{ic|aria2-1.10.0.tar.bz2}} and save to {{ic|~/Desktop}} as {{ic|aria2.new.tar.bz2}}<br />
<br />
<nowiki>http://aria2.net/files/stable/aria2-1.9.5/aria2-1.9.5.tar.bz2</nowiki><br />
dir=/file/old<br />
out=aria2.old.tar.bz2<br />
<nowiki>http://aria2.net/files/stable/aria2-1.10.0/aria2-1.10.0.tar.bz2</nowiki><br />
out=aria2.new.tar.bz2<br />
<br />
==== Additional notes ====<br />
<br />
; <sup>1</sup> {{ic|<nowiki>--file-allocation=falloc</nowiki>}}: Recommended for newer file systems such as ext4 (with extents support), btrfs or xfs as it allocates large files (GB) almost instantly. Do not use falloc with legacy file systems such as ext3 as prealloc consumes approximately the same amount of time as standard allocation would while locking the aria2 process from proceeding to download.<br />
<br />
{{Tip|See {{ic|<nowiki>aria2c --help=#all</nowiki>}} and the aria2 man page for a complete list of configuration options.}}<br />
<br />
=== Example aria2.rapidshare ===<br />
<br />
{{bc|<nowiki><br />
http-user=USER_NAME<br />
http-passwd=PASSWORD<br />
allow-overwrite=true<br />
dir=/file/Downloads<br />
file-allocation=falloc<br />
enable-http-pipelining=true<br />
input-file=/file/input.rapidshare<br />
log-level=error<br />
max-connection-per-server=2<br />
summary-interval=120<br />
</nowiki>}}<br />
<br />
==== Option details ====<br />
<br />
; {{ic|<nowiki>http-user=USER_NAME</nowiki>}}: Set HTTP [[Wikipedia:User_(computing)|username]] as USER_NAME for password-protected logins. This affects all [[Wikipedia:Uniform_Resource_Identifier|URIs]].<br />
; {{ic|<nowiki>http-passwd=PASSWORD</nowiki>}}: Set HTTP [[Wikipedia:Password|password]] as PASSWORD for password-protected logins. This affects all URIs.<br />
; {{ic|<nowiki>allow-overwrite=true</nowiki>}}: Restart download if a corresponding control file does not exist. (Default: false)<br />
; {{ic|<nowiki>dir=/file/Downloads</nowiki>}}: Store the downloaded file(s) in {{ic|/file/Downloads}}.<br />
; {{ic|<nowiki>file-allocation=falloc</nowiki>}}: Call [http://www.kernel.org/doc/man-pages/online/pages/man2/fallocate.2.html posix_fallocate()] to allocate disk space before downloading begins. (Default: prealloc) <br />
; {{ic|<nowiki>enable-http-pipelining=true</nowiki>}}: Enable [[Wikipedia:HTTP_Pipelining|HTTP/1.1 pipelining]] to overcome network latency and to reduce network load. (Default: false)<br />
; {{ic|<nowiki>input-file=/file/input.rapidshare</nowiki>}}: Download a list of single line of TAB separated URIs found in {{ic|/file/input.rapidshare}}<br />
; {{ic|<nowiki>log-level=error</nowiki>}}: Set log level to output errors only. (Default: debug)<br />
; {{ic|<nowiki>max-connection-per-server=2</nowiki>}}: Set a maximum of two (2) connections to each server per file. (Default: 1)<br />
; {{ic|<nowiki>summary-interval=120</nowiki>}}: Output download progress summary every 120 seconds. (Default: 60) '''<sup>3</sup>'''<br />
<br />
==== Additional notes ====<br />
<br />
* Because {{ic|aria2.rapidshare}} the contains a username and password, it is advisable to set permissions on the file to 600, or similar.<br />
<br />
$ cd /file<br />
$ chmod 600 /file/aria2.rapidshare<br />
$ ls -l<br />
total 128M<br />
-rw------- 1 arch users 167 Aug 20 00:00 aria2.rapidshare<br />
<br />
; '''<sup>3</sup>''' {{ic|<nowiki>summary-interval=0</nowiki>}}: Supresses download progress summary output and may improve overall performance. Logs will continue to be output according to the value specified in the {{ic|log-level}} option. <br />
<br />
{{Tip|The example configuration file can also be applied to [http://www.hotfile.com/ Hotfile], [http://depositfiles.com/ DepositFiles], et.al.}}<br />
{{Note|Command-line options always take precedence over options listed in a configuration file.}}<br />
<br />
=== Example aria2.bittorrent ===<br />
<br />
{{bc|<nowiki><br />
bt-seed-unverified<br />
max-overall-upload-limit=1M<br />
max-upload-limit=128K<br />
seed-ratio=5.0<br />
seed-time=240<br />
</nowiki>}}<br />
<br />
==== Option details ====<br />
<br />
; {{ic|<nowiki>bt-seed-unverified=false</nowiki>}}: Do not check the hash of the file(s) before seeding. (Default: true)<br />
; {{ic|<nowiki>max-overall-upload-limit=1M</nowiki>}}: Set maximum overall upload speed to 1MB/sec. (Default: 0)<br />
; {{ic|<nowiki>max-upload-limit=128K</nowiki>}}: Set maximum upload speed per torrent to 128K/sec. (Default: 0)<br />
; {{ic|<nowiki>seed-ratio=5.0</nowiki>}}: Seed completed torrents until share ratio reaches 5.0. (Default: 1.0)<br />
; {{ic|<nowiki>seed-time=240</nowiki>}}: Seed completed torrents for 240 minutes.<br />
<br />
{{Note|If both {{ic|seed-ratio}} and {{ic|seed-time}} are specified, seeding ends when at least one of the conditions is satisfied.}}<br />
<br />
=== Example aria2.daemon ===<br />
<br />
This configuration can be used to start Aria2 as a service. It can be used in conjunction with several of the frontends listed below. Note that rpc-user and rpc-pass are deprecated, but most frontends have not been ported to the new authentication yet. Do not forget to change user, password and Download directory.<br />
<br />
{{bc|<nowiki><br />
continue<br />
daemon=true<br />
dir=/home/aria2/Downloads<br />
file-allocation=falloc<br />
log-level=warn<br />
max-connection-per-server=4<br />
max-concurrent-downloads=3<br />
max-overall-download-limit=0<br />
min-split-size=5M<br />
enable-http-pipelining=true<br />
<br />
enable-rpc=true<br />
rpc-listen-all=true<br />
rpc-user=rpcuser<br />
rpc-passwd=rpcpass<br />
</nowiki>}}<br />
<br />
== Frontends ==<br />
<br />
{{note|Settings implemented in frontends do not affect {{ic|aria2}}'s own configuration, and it is uncertain whether the different UIs reuse {{ic|aria2}} configuration if a custom one has been made. Users should ensure their desired parameters are effectively implemented within selected tools and that they are stored persistently (uGet for example has its own {{ic|aria2}}'s command line which sticks across reboots).}}<br />
<br />
=== Web UIs ===<br />
<br />
{{Note|These frontends need {{ic|aria2c}} to be started with {{ic|--enable-rpc}} in order to work. They are meant to run on your local computer, not on a remote server that downloads using aria}}<br />
<br />
* {{App|YaaW|Yet Another Aria2 Web Frontend in pure HTML/CSS/Javascirpt.|https://github.com/binux/yaaw|{{AUR|yaaw-git}}}}<br />
* {{App|Webui|Html frontend for aria2.|https://github.com/ziahamza/webui-aria2|{{AUR|webui-aria2}}}}<br />
* {{App|aria2rpc|Command line tool for connecting to a remote instance of {{ic|aria2c}}. If {{ic|aria2c}} is installed it can be found under {{ic|/usr/share/doc/aria2/xmlrpc/aria2rpc}}.|https://github.com/tatsuhiro-t/aria2/blob/master/doc/xmlrpc/aria2rpc|{{Pkg|aria2}}}}<br />
<br />
=== Other UIs ===<br />
{{note|These frontends '''do not need''' {{ic|aria2c}} to be started with {{ic|--enable-rpc}} to function.}}<br />
<br />
* {{App|aria2fe|A GUI for the CLI-based aria2 download utility.|http://sourceforge.net/projects/aria2fe/|{{AUR|aria2fe}}}}<br />
* {{App|karia2|QT4 interface for aria2 download mananger.|http://sourceforge.net/projects/karia2/|{{AUR|karia2-svn}}}}<br />
* {{App|uGet|Feature-rich GTK+/CLI download manager which can use aria2 as a back-end by enabling a built-in plugin.|http://ugetdm.com|{{Pkg|uget}}}}<br />
* {{App|Persepolis DM| Graphical front-end for aria2 download manager with lots of features. Supports HTTP and FTP.|https://github.com/persepolisdm/|{{AUR|persepolis}},{{AUR|persepolis-git}}}}<br />
<br />
== Tips and tricks ==<br />
<br />
=== Download the packages without installing them ===<br />
<br />
Just use the command below:<br />
<br />
# pacman -Sp packages | aria2c -i -<br />
<br />
{{Ic|pacman -Sp}} lists the urls of the packages on stdout, instead of downloading them, then {{Ic|<nowiki>|</nowiki>}} pipes it to the next command. Finally, The {{Ic|-i}} in {{Ic|aria2c -i -}} switch to aria2c means that the urls for files to be downloaded should be read from the file specified, but if {{Ic|-}} is passed, then read the urls from stdin.<br />
<br />
=== pacman XferCommand ===<br />
<br />
See [[pacman/Tips and tricks#aria2]].<br />
<br />
=== Changing the User Agent ===<br />
<br />
Some sites may filter the requests based on your User Agent, since Aria2 is not a well known downloader, it may be good to use a most known downloader or browser as the Aria's User Agent. Just use the -U option like this:<br />
<br />
$ aria2c -UWget <nowiki>http://some-url-to-download/file.xyz</nowiki><br />
<br />
You can use whatever you want, like '''-UMozilla/5.0''' and so on.<br />
<br />
=== Using Aria2 with makepkg ===<br />
<br />
You can use Aria2 instead of {{Pkg|curl}} to download source files, just change the {{ic|DLAGENTS}} variable as follows:<br />
<br />
{{hc|/etc/makepkg.conf|2=<br />
[...]<br />
DLAGENTS=('ftp::/usr/bin/aria2c -UWget -s4 %u -o %o'<br />
'http::/usr/bin/aria2c -UWget -s4 %u -o %o'<br />
'https::/usr/bin/aria2c -UWget -s4 %u -o %o'<br />
'rsync::/usr/bin/rsync --no-motd -z %u %o'<br />
'scp::/usr/bin/scp -C %u %o')<br />
[...]<br />
}}<br />
<br />
{{Note|Use the {{ic|-UWget}} option to change the user agent to Wget. It may prevent problems when downloading from sites that filters the requests based on the user agent to provide different responses on what the users uses to access the URL. Since Aria2 is a lesser known downloader it may be recognized by the site as a browser instead of a downloader, so changing the user agent to Wget may fix it in most cases}}<br />
<br />
== See also ==<br />
<br />
* [https://aria2.github.io/manual/en/html/index.html aria2 manual] - Official site<br />
* [https://aria2.github.io/manual/en/html/aria2c.html#example aria2 usage examples] - Official site</div>Betseghttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=552557Arch is the best2018-11-02T13:05:34Z<p>Betseg: mediawiki markup is weird</p>
<hr />
<div>[[Category:About Arch]]<br />
[[ja:Arch は最高]]<br />
[[ru:Arch is the best]]<br />
The '''Arch is the best''' project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which gives proof of Arch's superiority.<br />
<br />
== History ==<br />
<br />
The visionary project was originally devised in April 2008 by long time Arch community member [https://bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". It was announced to the world with a [https://bbs.archlinux.org/viewtopic.php?id=47306 forum post], thus illuminating other people's minds, who immediately started porting it to multiple different languages, both programming and verbal, so that every human being on the planet could fully appreciate and benefit from this revolutionary discovery.<br />
<br />
== The code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
;1C&#58;Enterprise 7.7/8/8.1/8.2:A procedural domain-specific compiled dynamically-typed programming language mostly similar to VisualBasic which is used in "1C:Enterprise" products widespread in Russia and other CIS countries.<br />
<br />
Предупреждение("Arch is the best!");<br />
<br />
;Ada: A systems critical programming language.<br />
<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end ArchIsTheBest;<br />
<br />
;APL: A Programming Language.<br />
<br />
'Arch is the best!'<br />
<br />
;AppleScript: A scripting language created by Apple Inc. and built into the Classic Mac OS since System 7 and into all versions of macOS.<br />
<br />
display alert "Arch is the best!"<br />
say "Indeed, Arch is the best."<br />
<br />
;ArnoldC: Programming language based on the one-liners of Arnold Schwarzenegger.<br />
<br />
IT'S SHOWTIME<br />
TALK TO THE HAND "Arch is the best!"<br />
YOU HAVE BEEN TERMINATED<br />
<br />
;ATS: A functional programming language that uses dependent types to improve programs' reliability.<br />
<br />
implement main () = println! "Arch is the best!"<br />
<br />
;Awk: A data-driven programming language designed for processing text-based data.<br />
<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
;Batch: A scripting language for Windows that can be used to automate tasks or just have some fun.<br />
<br />
@echo off<br />
echo Arch is the best!<br />
pause<br />
<br />
;Befunge: Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
;Boo:A stablished object oriented statically typed programming language for .NET and Mono with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features such as macros and custom compilation pipelines.<br />
<br />
print "Arch is the best!"<br />
<br />
;Bourne shell: The original program, should be compatible with any shell.<br />
<br />
#!/bin/sh<br />
echo "Arch is the best!"<br />
<br />
;Bourne shell (Alternate):Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
<br />
#!/bin/sh<br />
yes Arch is the best!<br />
<br />
;Bourne shell (Dynamically updated)<br />
<br />
#!/bin/sh<br />
<nowiki>w3m -dump "https://wiki.archlinux.org/index.php/Arch_is_the_best" | sed -n '/^Translations/,/^Encodings/p'</nowiki><br />
<br />
;or<br />
<br />
<pre style='overflow:auto'><br />
#!/bin/bash<br />
curl -s "https://wiki.archlinux.org/index.php?title=Arch_is_the_best&action=raw" | sed -n '/==Translations==/,$p' | sed "s/^\(.*\)$/* \1:/;t;s/^[^=]/ &/"<br />
</pre><br />
<br />
;brainfuck: Doesn't the language name explain it?<br />
<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
;C: Note the three space indenting used in this project, much like that used by other superior beings.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main(void)<br />
{<br />
puts("Arch is the best!");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;C#: Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
<br />
using System;<br />
public class ArchIsTheBest<br />
{<br />
static public void Main ()<br />
{<br />
Console.WriteLine ("Arch is the best!");<br />
}<br />
}<br />
<br />
;C++:Arch == Linux++<br />
<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;COBOL:A simple, lightweight programming language.<br />
<br />
IDENTIFICATION DIVISION.<br />
PROGRAM-ID. TheBest.<br />
<br />
PROCEDURE DIVISION.<br />
DISPLAY "Arch is the best!".<br />
STOP RUN.<br />
<br />
;CoffeeScript: A programming language that transcompiles to JavaScript.<br />
<br />
alert 'Arch is the best!'<br />
<br />
;Clojure: A Lisp dialect that runs on the JVM.<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"})<br />
<br />
(defn read-choice []<br />
(println "\nAvailable languages: ")<br />
(doall (map #(println (key %)) translations))<br />
(print "Enter language or Ctrl-c: ") (flush)<br />
(translations (read-line) :badinput))<br />
<br />
(defn arch-is-the-best []<br />
(loop [choice (read-choice)]<br />
(case choice<br />
:badinput (do (print "\nBad input!\n")<br />
(recur (read-choice)))<br />
(do (print "\n" choice "\n")<br />
(recur (read-choice))))))<br />
<br />
;or<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"<br />
"street" "Arch iz da shizzle ma nizzle"})<br />
(while 1<br />
(println "\nPick a language:\n" (map #(key %) translations) "\n language: ")<br />
(println (translations (read-line) "Not a valid language")))<br />
<br />
;or<br />
<br />
(prn "Arch is the best!")<br />
<br />
;Common Lisp: Tested on SBCL, feel free to add more of the translations.<br />
<br />
#!/usr/bin/sbcl --script<br />
(defparameter *best-list* '((English "Arch is the best!")<br />
(Chinese "Arch, 她出类拔萃!")<br />
(German "Arch ist das Beste!")<br />
(Greek "Το Arch είναι το καλύτερο!")<br />
(Latin "Arch est optimus!")<br />
(French "Arch est le meilleur!")))<br />
(defun aitb ()<br />
(format t "Available languages: ~{~{~@(~a~)~*~}~^, ~}.~%" *best-list*)<br />
(loop for input = (progn (format t "~&Input the desired language, (or 'quit'): ~%")<br />
(force-output)<br />
(read-line))<br />
if (string-equal input "quit")<br />
do (loop-finish)<br />
else<br />
do (let ((language-def<br />
(assoc input *best-list*<br />
:key (lambda (lang) (symbol-name lang))<br />
:test #'string-equal)))<br />
(if language-def<br />
(format t "~&~A~%" (second language-def))<br />
(format t "~&Invalid language.~%"))))<br />
(format t "~&May the Arch be with you!~%"))<br />
(aitb)<br />
<br />
;Common Lisp (Alternate): Should run on any implementation (Clisp, Allegro, SBCL...)<br />
<br />
(princ "Arch is the best!")<br />
<br />
;Crystal: An object-oriented, Ruby-like language.<br />
<br />
puts "Arch is the best!"<br />
<br />
;Crystal (through web server): For distributing the message to multiple friends at once.<br />
<br />
# For giving the message to your friends<br />
require "http/server"<br />
<br />
server = HTTP::Server.new(80) do |context|<br />
context.response.content_type = "text/plain"<br />
context.response.print "Arch is the best!"<br />
end<br />
<br />
puts "Listening."<br />
server.listen<br />
<br />
;csh: A C-like shell.<br />
<br />
#!/bin/csh<br />
echo "Arch is the best!"<br />
<br />
;CSS: A stylesheet language, heavily used for styling web pages.<br />
<br />
body * {<br />
display: none;<br />
}<br />
<br />
body::before {<br />
content: "Arch is the best!";<br />
font-family: monospace;<br />
font-size: 2.7rem;<br />
position: absolute;<br />
left: 50%;<br />
top: 50%;<br />
transform: translate(-50%, -50%);<br />
}<br />
<br />
;D: A C-style language. The benefits of hindsight, with modern conveniences.<br />
<br />
import std.stdio : writeln;<br />
void main()<br />
{<br />
writeln("Arch is the best");<br />
}<br />
<br />
;Dart: Google's javascript killer<br />
<br />
main(){<br />
print('Arch is the best');<br />
}<br />
<br />
;Dogescript: Doge-friendly JavaScript<br />
<br />
console.loge with ' So Arch'<br />
console.loge with ' Much Good'<br />
console.loge with ' Wow'<br />
<br />
;Ebuild: Gentoo's build script format.<br />
<br />
DESCRIPTION="Arch is the best!"<br />
SRC_URI="https://wiki.archlinux.org/index.php/Arch_is_the_best"<br />
<br />
LICENSE="GFDL_1.3"<br />
SLOT="0"<br />
KEYWORDS=""<br />
IUSE=""<br />
<br />
DEPEND=""<br />
RDEPEND=""<br />
<br />
src_compile() {<br />
einfo "Arch is the best!"<br />
}<br />
<br />
;Emacs Lisp: A dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors<br />
<br />
(message "Arch is the best!")<br />
<br />
;Emojicode: A delimiter-less, object oriented, imperative, high-level, hybrid language with emojis as fix points and methods.<br />
<br />
🏁 🍇<br />
😀 🔤Arch is the best!🔤❗️<br />
🍉<br />
<br />
;Elixir: A dynamic, functional language designed for building scalable and maintainable applications<br />
<br />
IO.puts "Arch is the best!"<br />
<br />
;Erlang: A concurrent, garbage-collected programming language and runtime system.<br />
<br />
-module(arch).<br />
-export([is_the_best/0]).<br />
is_the_best() -> io:fwrite("Arch is the best!\n").<br />
<br />
;Or using message passing between processes<br />
<br />
-module(arch).<br />
-export([ultimate_question/0,the_answer/0]).<br />
the_answer() -><br />
receive<br />
{Client,who_is_the_best} -><br />
Client ! {self(),"Arch is the best!"};<br />
{Client,_} -><br />
Client ! {self(),"Taco Taco Taco!"}<br />
end,<br />
the_answer().<br />
ultimate_question() -><br />
Pid = spawn(arch,the_answer,[]),<br />
Pid ! {self(),who_is_the_best},<br />
receive<br />
{Pid,Response} -> io:format("~s~n",[Response])<br />
end.<br />
<br />
;F#: A strongly-typed, functional-first programming language for writing simple code to solve complex problems.<br />
<br />
printfn "Arch is the best!"<br />
<br />
;Factor: High-level stack-based language.<br />
<br />
"Arch is the best" print<br />
<br />
;FIM++: A wordy, imperative, dynamically-typed, and interpreted language that can use Java classes.<br />
<br />
Dear Princess Celestia: Letter About Arch Linux.<br />
Today I learned:<br />
I wrote "Arch is the best!".<br />
Your faithful student, Twilight Sparkle<br />
<br />
;Forth:Stack-based language.<br />
<br />
." Arch is the best" cr -- kiss way<br />
<br />
;Fortran95<br />
<br />
program arch<br />
print *,"Arch is the best!"<br />
end program arch<br />
<br />
;Genie: A new programming language, that allows for a more modern programming style while being able to effortlessly create and use GObjects natively.<br />
<br />
init<br />
print "Arch is the best"<br />
<br />
;Gjs: A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
;Go: A language created by Google that's a love child between C, C++ and Python.<br />
<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() {<br />
fmt.Println("Arch is the best!")<br />
}<br />
<br />
;Groovy: An agile and dynamic language for the Java Virtual Machine.<br />
<br />
println 'Arch is the best!' <br />
<br />
;Haskell: The language where IO is easy and unproblematic.<br />
<br />
main = putStrLn "Arch is the best!"<br />
<br />
;HTML: A markup language used to create and define web pages and their content.<br />
<br />
<pre><br />
<!DOCTYPE html><br />
<html lang='en'><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
<p>Arch is the best!</p><br />
</body><br />
</html><br />
</pre><br />
<br />
;Idris: A general purpose pure functional programming language with dependent types. Haskell, but crazier.<br />
<br />
module Main<br />
<br />
main : IO ()<br />
main = putStrLn "Arch is the best!"<br />
<br />
;Io: A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript.<br />
<br />
"Arch is the best!" println<br />
<br />
;Java: An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
;JavaScript: Also known as ECMAScript, a prototype-based object-oriented scripting language.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;JavaScript (in a web browser)<br />
<br />
alert('Arch is the best!');<br />
<br />
;Julia: A fresh approach to numerical computing.<br />
<br />
println("Arch is the best!")<br />
<br />
;Kotlin: JetBrains' attempt to get world domination.<br />
<br />
fun main(args: Array<String>) {<br />
println("Arch is the best!")<br />
}<br />
<br />
;LilyPond: A powerful music engraving program with an intuitive LaTeX-like input language.<br />
<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
;LOLCODE: Why not?<br />
<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
;Lua: A lightweight, extensible programming language.<br />
<br />
print "Arch is the best!"<br />
<br />
;Malbolge: A language created to make programming as hard as possible.<br />
<br />
bCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]<br />
\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9y16543210/.-,+*)('&}C#"!~}|{zyxwvu<br />
tsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK-CgGFEDCBA@?>=<;:98x6543210/<br />
.-,+*)('&%$#"!~}|u;yxwpun4rqpRhmf,jihgIe^$ba`_^]\[ZYXQVUTMqQPONMFjJI+A<br />
eEDC%A:^>=<|:981U54t21*/.-&Jk)('&}C#"!aw={z\xwvun4lqpi/mlkjiKaf_%p<br />
<br />
;Matlab: A proprietary programming language developed by MathWorks.<br />
<br />
disp('Arch is the best!');<br />
<br />
;Morpho: Morpho is a multi-paradigm programming language that supports procedural, object-oriented and functional programming.<br />
<br />
writeln("Arch is the best!");<br />
<br />
;Myrddin: A system programming language which aims for control and simplicity, featuring strong type checking, generics, type inference, closures, and traits.<br />
<br />
/* mbld -b aitb aitb.myr */<br />
use std<br />
const main = {<br />
std.put("Arch is the best!\n")<br />
}<br />
<br />
;NASM / Yasm (i686): Notice that the string is in the .text section, which feels superior.<br />
<br />
;nasm -f elf32 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
_start:<br />
mov edx,len<br />
mov ecx,msg<br />
mov ebx,1<br />
mov eax,4<br />
int 0x80<br />
xor ebx,ebx<br />
mov eax,1<br />
int 0x80<br />
msg: db "Arch is the best!",10<br />
len equ $-msg<br />
<br />
<br />
;NASM / Yasm (x86_64) :Featuring AMD's sexy new instruction, ''syscall''.<br />
<br />
;nasm -f elf64 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
s:<br />
db 'Arch is the best!',0ah<br />
l equ $-s<br />
_start:<br />
mov rax,1<br />
mov rdi,1<br />
mov rsi,s<br />
mov rdx,l<br />
syscall<br />
mov rax,60<br />
xor rdi,rdi<br />
syscall<br />
<br />
;Nim:Portable lightweight programming language.<br />
<br />
echo "Arch is the best!"<br />
<br />
;node.js: a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications, using an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;Objective-C: A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
<br />
NSLog(@"Arch is the best!");<br />
<br />
;OCaml: The main implementation of the Caml programming language.<br />
<br />
print_endline "Arch is the best!"<br />
<br />
;Octave: High-level interpreted language, primarily intended for numerical computations.<br />
<br />
printf("Arch is the best!\n")<br />
<br />
;Ook!: brainfuck, translated to Orangutan.<br />
<br />
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.<br />
<br />
;Pascal: An influential imperative and procedural programming language.<br />
<br />
program ArchIsTheBest;<br />
begin<br />
writeln('Arch is the best!');<br />
end.<br />
<br />
;Perl:A high-level, general-purpose, interpreted, dynamic programming language.<br />
<br />
#!/usr/bin/env perl<br />
print "Arch is the best!\n";<br />
<br />
;Perl 6: The latest member of the Perl family.<br />
<br />
#!/usr/bin/env perl6<br />
say 'Arch is the best!';<br />
<br />
;PHP: A general-purpose scripting language.<br />
<br />
<?php<br />
echo "Arch is the best!\n";<br />
<br />
;Pixilang: Make me pixels.<br />
<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
;Pony:An object-oriented, actor-model, capabilities-secure, high performance programming language.<br />
<br />
actor Main<br />
new create(env: Env) =><br />
env.out.print("Arch is the best!")<br />
<br />
;Portable GNU assembler: {{ic|as -o arch.o arch.s && ld -o arch -O0 arch.o}}<br />
<br />
.section .data<br />
archIsBest:<br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax<br />
xorl %ebx, %ebx<br />
incl %ebx<br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx<br />
int $0x80<br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx<br />
int $0x80<br />
<br />
;Processing: An open source programming language and IDE built for the electronic arts and visual design.<br />
<br />
println("Arch is the best!");<br />
<br />
;Prolog: A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
<br />
format('Arch is the best~n',[]).<br />
<br />
;Python: A general-purpose high-level programming language.<br />
<br />
print('Arch is the best!')<br />
<br />
;QBASIC: An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
<br />
PRINT "Arch is the best!"<br />
<br />
;R: A language for statistical computing (and much more!).<br />
<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
;Racket: A general purpose, multi-paradigm programming language in the Lisp-Scheme family.<br />
<br />
#lang racket<br />
<br />
(let ([str "Arch is the best!\n"])<br />
(write-string str)<br />
(values))<br />
<br />
;Ruby: A dynamic, reflective, general purpose object-oriented programming language.<br />
<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
;Rust: Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.<br />
<br />
fn main() {<br />
println!("Arch is the best!");<br />
}<br />
<br />
;Salt: Salt is an automation framework<br />
<br />
salt '*' event.fire '{"data":"Arch Is the best!"}' 'arch/best'<br />
<br />
;Scala: A multi paradigm language that runs on the JVM.<br />
<br />
object ArchIsBest extends App {<br />
println("Arch is the best!")<br />
}<br />
<br />
;Scheme: A dialect of Lisp.<br />
<br />
(display "Arch is the best!\n")<br />
<br />
;Seed: A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
;Shakespeare Programming Language: Designed to "''make a language with beautiful source code'' [...]"<br />
<br />
Arch is the Best.<br />
<br />
Arthur, a young man who is the best.<br />
Isabella, a likewise young woman who be.<br />
The Ghost, an undead who is the article.<br />
Beatrice, a young woman who is an adjective.<br />
<br />
<br />
Act I: Setting of the Variables.<br />
<br />
Scene I: Setting of Isabella and Arthur.<br />
<br />
[Enter Arthur and Isabella]<br />
<br />
Arthur:<br />
You are as dirty as the square of the sum of a rotten smelly foul devil<br />
and a vile lie! You are as bold as the sum of yourself and an evil hog!<br />
<br />
Isabella:<br />
Thou art as big as the square of a cute fair sweet flower! You are as proud<br />
as the sum of thyself and a cow.<br />
<br />
[Exit Arthur]<br />
<br />
Scene II: Setting of The Ghost.<br />
<br />
[Enter The Ghost]<br />
<br />
Isabella:<br />
You art as loving as myself. Thou are as huge as the sum of yourself and twice<br />
a red old hair. You are as cowardly as the sum of yourself and a fat goat!<br />
<br />
[Exit Isabella]<br />
<br />
Scene III: Setting of Beatrice.<br />
<br />
[Enter Beatrice]<br />
<br />
The Ghost:<br />
Thou are as good as the sum of Isabella and a mighty fine rich noble King.<br />
<br />
[Exeunt The Ghost and Beatrice]<br />
<br />
Act II: Printing Arch is the Best.<br />
<br />
Scene I: Arch.<br />
<br />
[Enter Arthur and Beatrice]<br />
<br />
Beatrice:<br />
Speak thy mind! You art as peaceful as the quotient between thyself and the<br />
clearest Lord.<br />
<br />
Arthur:<br />
Speak your mind!<br />
<br />
[Exeunt Arthur and Beatrice]<br />
<br />
[Enter Isabella and The Ghost]<br />
<br />
The Ghost:<br />
Thou are as normal as the sum of thyself and a town. Speak thy mind!<br />
<br />
Isabella:<br />
Speak your mind!<br />
<br />
[Exit Isabella]<br />
<br />
[Enter Arthur]<br />
<br />
The Ghost:<br />
Speak thy mind!<br />
<br />
[Exit Arthur]<br />
<br />
Scene II: is.<br />
<br />
[Enter Beatrice]<br />
<br />
Beatrice:<br />
Thou are as old as the sum of yourself and a nose. Speak your mind!<br />
<br />
The Ghost:<br />
You art as pretty as the sum of thyself and a face. Speak your mind.<br />
<br />
[Exit The Ghost]<br />
<br />
[Enter Arthur]<br />
<br />
Beatrice:<br />
Speak thy mind.<br />
<br />
Scene III: the.<br />
<br />
Arthur:<br />
You are as blue as the sum of yourself and a hamster. Speak thy mind!<br />
<br />
[Exit Arthur]<br />
<br />
[Enter The Ghost]<br />
<br />
Beatrice:<br />
You are as prompt as the sum of thyself and a lie! Speak your mind.<br />
<br />
[Exit Beatrice]<br />
<br />
[Enter Isabella]<br />
<br />
The Ghost:<br />
You art as happy as the sum of thyself and a large moon. Speak thy mind!<br />
<br />
[Exit The Ghost]<br />
<br />
[Enter Arthur]<br />
<br />
Isabella:<br />
Speak thy mind.<br />
<br />
[Exit Arthur]<br />
<br />
Scene IV: Best.<br />
<br />
[Enter Beatrice]<br />
<br />
Beatrice:<br />
Thou are as blue as the sum of the sum of a curse and thyself and a bad<br />
codpiece. Speak your mind! You art as lovely as the sum of the sum of the<br />
happiness and yourself and a blossoming flower. Speak thy mind.<br />
<br />
Isabella:<br />
You are as healthy as the sum of yourself and a plague! Speak thy mind.<br />
Thou art as huge as the sum of thyself and a hero. Speak your mind!<br />
<br />
[Exit Beatrice]<br />
<br />
[Enter Arthur]<br />
<br />
Isabella:<br />
You art as green as the sum of thyself and a mother. Speak your mind.<br />
<br />
[Exeunt]<br />
<br />
<br />
;Shoes: A Ruby version using Shoes for a GUI.<br />
<br />
Shoes.app :width => 135, :height => 30 do<br />
para "Arch is the Best!"<br />
end<br />
<br />
;Smalltalk: Smalltalk is an object-oriented, dynamically typed, reflective programming language.<br />
<br />
Transcript show: 'Arch is the best!'.<br />
<br />
;SQL: Structured Query Language, the query language for relational databases<br />
<br />
SELECT 'Arch is the best!';<br />
SELECT 'Arch is the best!' from dual; -- for Oracle DB<br />
<br />
;Standard ML: A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
<br />
print "Arch is the best!\n"<br />
<br />
;Swift: A general-purpose, multi-paradigm, compiled programming language developed by Apple Inc.<br />
<br />
print("Arch is the best!")<br />
<br />
;Tcl/Tk: A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
;TrumpScript: A scripting language based on President Trump's words.<br />
<br />
say it with me, "Arch is the best!";<br />
america is great.<br />
<br />
;UEFI: An extensible firmware framework<br />
<br />
#include <Uefi.h><br />
EFI_STATUS EFIAPI<br />
ArchIsTheBest (<br />
IN EFI_HANDLE ImageHandle,<br />
IN EFI_SYSTEM_TABLE *SystemTable<br />
)<br />
{<br />
SystemTable -> ConOut-> OutputString(SystemTable->ConOut, L"Arch is the best!\n"); <br />
return EFI_SUCCESS;<br />
}<br />
<br />
;Vala: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.<br />
<br />
void main(string[] args) {<br />
stdout.printf("\nArch is the best!\n\n");<br />
}<br />
<br />
; var'aq: [http://www.reocities.com/connorbd/varaq/index.html A warrior's programming language]<br />
"Arch is the best!" cha'<br />
<br />
;VimScript: A scripting language for the Vim text editor.<br />
<br />
echo "Arch is the best!"<br />
<br />
; Wiring (Arduino):Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
}<br />
void loop()<br />
{<br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
;Visual Basic: A third-generation event-driven programming language and integrated development environment (IDE) from Microsoft for its Component Object Model (COM) programming model.<br />
<br />
Module Arch<br />
Sub Main()<br />
MsgBox("Arch is the best!")<br />
End Sub<br />
End Module<br />
<br />
; X11: X11 is an architecture independent system for display of graphical user interfaces.<br />
{{ic|cc -lX11 arch.c}}<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
;Zimbu: A fast, easy to learn, and JS-like programming language.<br />
<br />
FUNC Main() int<br />
IO.write("Arch is the best!")<br />
RETURN 0<br />
}<br />
<br />
;Zsh: A UNIX command interpreter (shell) closely resembling ksh, but includes many enhancements.<br />
<br />
#!/bin/zsh -f<br />
setopt extendedglob<br />
print -- $(tput setaf 2) ${$(<<<${${${(@j: :)${(@s:_:)${:-What_Linux_is_the_best?}}}/* (#b)([A-Z]i)/Arch $match[1]}} tr '?' '!')} $(tput sgr0)<br />
<br />
== Translations ==<br />
<br />
;Ancient Chinese<br />
阿祺,盡善矣。<br />
<br />
;Ancient Greek (Attic)<br />
Ἡ Ἁψίς ἀρίστη!<br />
<br />
;Arabic<br />
ارتش هو الأفضل<br />
<br />
;Australian<br />
Arch is fair dinkum, mate!<br />
<br />
;Bahasa Indonesia<br />
Arch terbaik!<br />
<br />
;Basque<br />
Arch onena da!<br />
<br />
;Belarusian<br />
Арч - самы лепшы!<br />
<br />
;Bengali<br />
আর্চ সবচেয়ে ভালো!<br />
<br />
;Brezhoneg<br />
Arch emañ ar gwellañ!<br />
;or<br />
Arch emañ ar matañ!<br />
<br />
;British<br />
Arch is simply spiffing.<br />
<br />
;Bulgarian<br />
Арч е най-добрият!<br />
<br />
;Catalan<br />
Arch és el millor!<br />
<br />
;Cantonese<br />
阿祺真係冇得頂!<br />
<br />
;Chinese (Mainland)<br />
Arch最棒了!<br />
<br />
;Chinese (Taiwan)<br />
Arch蠻贊的!<br />
<br />
;Czech<br />
Arch je nejlepší!<br />
<br />
;Croatian<br />
Arch je najbolji!<br />
<br />
;Danish<br />
Arch er bedst!<br />
<br />
;Doge<br />
So Arch, Much Good, Wow<br />
<br />
;Dutch<br />
Arch is het beste!<br />
;or<br />
Arch is de beste!<br />
(these have a slighty different meaning)<br />
<br />
;Esperanto<br />
Arch plejbonas!<br />
<br />
;Estonian<br />
Arch on parim!<br />
<br />
;Fikonspråket<br />
Firch Arkon fir äkon fist bäkon<br />
<br />
;Filipino<br />
Mabuhay ang Arch!<br />
<br />
;Finnish<br />
Arch on paras!<br />
<br />
;French<br />
Arch est le meilleur!<br />
<br />
;Fullwidth English<br />
Arch is the Best!<br />
<br />
;Galician<br />
Arch é o mellor!<br />
<br />
;German<br />
Arch ist das Beste!<br />
<br />
;German (Bernese-Swiss)<br />
Arch isch geil wine More!<br />
<br />
;Greek (Modern)<br />
Το Αρτς είναι το καλύτερο!<br />
<br />
;Haitian Creole<br />
Arch se meye bagay!<br />
<br />
;Hantec<br />
Arch je nejbetélnější!<br />
<br />
;Hebrew<br />
ארצ' זה הכי אחי!<br />
<br />
;Hindi<br />
आर्च सर्वोत्तम है ।<br />
<br />
;Hungarian<br />
Az Arch a legjobb!<br />
<br />
;Irish<br />
Arch é is fearr!<br />
<br />
;Italian<br />
Arch è il migliore!<br />
<br />
;Japanese<br />
Archが一番ですよ!<br />
<br />
;Kannada<br />
ಆರ್ಚ್ ಅತ್ಯುತ್ತಮವಾಗಿದೆ<br />
<br />
;Kazakh<br />
Арч - ең жақсы!<br />
<br />
;Klingon<br />
Arch'pu'ta"a'<br />
<br />
;Korean<br />
아치가 최고입니다!<br />
<br />
;Kurdish<br />
Arç herî baş e!<br />
<br />
;Latin<br />
Arch optimus est!<br />
<br />
;Latvian<br />
Arch ir labākais!<br />
<br />
;Leet<br />
4rch 15 7h3 b357!<br />
<br />
;Lithuanian<br />
Arch yra geriausias!<br />
<br />
;Lojban<br />
la .artc. xagrai<br />
;or for those who prefer an experimental grammar:<br />
la'oi Arch xagrai<br />
(to mi catlu do doi la bauspo fazykamni toi)<br />
<br />
;Lolcat<br />
ARCH IZ TEH BEST!<br />
<br />
;Malayalam<br />
ആർച് ആണ് ഏറ്റവും നല്ലത്<br />
<br />
;Mapudungun<br />
writting system: Unificado<br />
Doy kümei Arch<br />
writting system: Raguileo<br />
Zoy kvmey Arc<br />
writting system: Azümchefe (Used in Windows XP)<br />
Zoi kümei Arch<br />
writting system: Nhewenh<br />
Zoi kvmei Arch<br />
writting system: Wirizüŋun<br />
Zoy kümey Arch ''or'' Zoy kvmey Arch<br />
<br />
;Marathi<br />
आर्च सगळ्यात भारी आहे!<br />
<br />
;Nepali<br />
आर्च सबैभन्दा राम्रो हो!<br />
<br />
;Norwegian<br />
Arch er best!<br />
<br />
;Old English<br />
Arch biþ betst!<br />
<br />
;Occitan (lenga d'òc)<br />
Arch es lo melhor!<br />
<br />
;Persian<br />
آرچ بهترین است<br />
<br />
;Pig Latin<br />
Archway isway ethay estbay!<br />
<br />
;Polish<br />
Arch jest najlepszy!<br />
<br />
;Portuguese<br />
Arch é o melhor!<br />
<br />
;Québécois<br />
Arch c'est le plus meilleure du monde!<br />
<br />
;Romanian<br />
Аrch e cel mai bun!<br />
<br />
;Russian<br />
Арч — лучший!<br />
<br />
;Rövarspråket (English)<br />
Arorcochoh isos tothohe bobesostot.<br />
<br />
;Rövarspråket (Swedish)<br />
Arorcochoh äror bobäsostot!<br />
<br />
;Serbian<br />
Arch je najbolji!<br />
<br />
;Shona<br />
Arch iripamberi!<br />
<br />
;Singaporean<br />
Arch the best lah!<br />
<br />
;Slovak<br />
Arch je najlepší!<br />
<br />
;Slovenian<br />
Arch je najboljši!<br />
<br />
;Spanish (Standard)<br />
¡Arch es el mejor!<br />
<br />
;Spanish (Argentina)<br />
Arch es una mazza!!<br />
<br />
;Spanish (Chile)<br />
Arch es bacán<br />
<br />
;Spanish (Chile, alternative)<br />
Arch es la raja<br />
<br />
;Spanish (Chile, marginal)<br />
(written in IPA because standard Spanish doesn't have these sounds)<br />
ˈæɹʃ ɛːʰ tɜ.rˈiː.u.lɛ la rˈa.χa ʃʊ.ɹʊ<br />
<br />
;Spanish (Guatemala)<br />
¡Arch está bien chilero!<br />
<br />
;Spanish (Guatemala, alternative)<br />
¡Arch es la mera tos!<br />
<br />
;Spanish (Uruguay)<br />
¡Arch la rompe!<br />
<br />
;Spanish (Venezuela, standard)<br />
Marico, Arch es la vaina más arrecha.<br />
<br />
;Spanish (Venezuela, maracucho)<br />
Que molleja de bueno es Arch.<br />
<br />
;Swahili<br />
Arch ndiyo bora zaidi<br />
<br />
;Swedish<br />
Arch är bäst!<br />
<br />
;Turkish<br />
Arch en iyisidir!<br />
<br />
;Tamil<br />
ஆர்ச்சே சிறந்தது!<br />
<br />
;Telugu<br />
ఆర్చ్ ఉత్తమమైనది!<br />
<br />
<br />
;Thai<br />
อาค์ชเทพเมพขิงขิง<br />
<br />
;Toki Pona<br />
Arch li pona mute!<br />
<br />
;Ukrainian<br />
Arch — найкращий!<br />
<br />
;Urdu<br />
آرچ سب سے بہتر ہے!<br />
<br />
;Vietnamese<br />
Arch là tốt nhất!<br />
<br />
;Welsh (Cymraeg)<br />
<br />
Emphasis on Arch:<br />
Arch sydd yr orau un!<br />
Arch sydd y gorau un!<br />
<br />
Emphasis on being the best (one):<br />
Yr orau un yw Arch!<br />
Y gorau un yw Arch!<br />
<br />
== Encodings ==<br />
<br />
;ASCII Banner<br />
<br />
{{Text art|<nowiki><br />
_ _ _ _ _ _ _<br />
/\ | | (_) | | | | | | | | | |<br />
/ \ _ __ ___| |__ _ ___ | |_| |__ ___ | |__ ___ ___| |_| |<br />
/ /\ \ | '__/ __| '_ \ | / __| | __| '_ \ / _ \ | '_ \ / _ \/ __| __| |<br />
/ ____ \| | | (__| | | | | \__ \ | |_| | | | __/ | |_) | __/\__ \ |_|_|<br />
/_/ \_\_| \___|_| |_| |_|___/ \__|_| |_|\___| |_.__/ \___||___/\__(_)<br />
</nowiki>}}<br />
<br />
;Base64<br />
{{hc|$ echo 'Arch is the best!' {{!}} base64|<br />
QXJjaCBpcyB0aGUgYmVzdCEK<br />
}}<br />
<br />
;Binary ASCII<br />
{{hc|1=$ echo 'Arch is the best!' {{!}} perl -lpe '$_=unpack"B*"'|2=<br />
0100000101110010011000110110100000100000011010010111001100100000011101000110100001100101001000000110001001100101011100110111010000100001<br />
}}<br />
<br />
;Braille<br />
⠁⠗⠉⠓⠀⠊⠎⠀⠮⠀⠃⠑⠎⠞⠲<br />
<br />
;Desrever (Reversed)<br />
{{hc|$ echo 'Arch is the best!' {{!}} rev|<br />
!tseb eht si hcrA<br />
}}<br />
<br />
;h4x0r<br />
4rch 15 7h3 b357!<br />
<br />
;Hexadecimal ASCII<br />
{{hc|1=$ echo 'Arch is the best!' {{!}} perl -lpe '$_=unpack"H*"'|2=<br />
4172636820697320746865206265737421<br />
}}<br />
<br />
;Morse Code<br />
.- .-. -.-. ..../.. .../- .... ./-... . ... -<br />
<br />
;ROT13<br />
{{hc|$ echo 'Arch is the best!' {{!}} tr 'A-Za-z' 'N-ZA-Mn-za-m'|<br />
Nepu vf gur orfg!<br />
}}<br />
<br />
;Rotated 180°<br />
¡ʇsǝq ǝɥʇ s! ɥɔɹ∀<br />
<br />
;URL Encoded<br />
Arch%20is%20the%20best!<br />
<br />
== Hashes ==<br />
<br />
;md5sum<br />
2d9092e089d77a8e23f47ba3dfe77027<br />
<br />
;sha1sum<br />
7f6ed0bf29abbd7e796ca1311c84a7a21a68a656<br />
<br />
;sha224sum<br />
af15cd556676d37f916a35e2cf74f04cf7b1805b3244ec418c3927d8<br />
<br />
;sha256sum<br />
107139d6b9a15fd97acf743e5806823c8ff868fde8b7c28cfcc2c9184df644ae<br />
<br />
;sha384sum<br />
769ec295d876483aa6cec7ff7997296c8ff2236630b0e48b059576143b60ab30adefec9321d8acc2a133219dfb302bc5<br />
<br />
;sha512sum<br />
b0917f66d05278106808d25f51001b038856fa7171b935d450b4bcbf1e8b82ed6a5a2f49d99734e1efc7ad3d1b8a33519008635d4e1aa3e65a5e70c4de649aad<br />
<br />
;sha3-224sum<br />
D650C03EC4CBAD76DED2CDE5232128F46CA311B266EC09C36D349728<br />
<br />
;sha3-256sum<br />
9FEC011CC05F1430A3832019B72F280536F1E395F067C3E53193A70F082D193B<br />
<br />
;sha3-384sum<br />
3CBFAAAA2509DAFA6804F5CDF5271594F7D6F44038BB342C7BBC802047C05BE98C8AF6020EBB51291188AC99D6803F52<br />
<br />
;sha3-512sum<br />
E30381FFC93C3E727FCF080C2A46852C042517899D8E823435B99A94345C3F95A25FA11DFEE422ED7C7FD009893B5482BEBA87B7FF3B546D4655ADB6EAE410F8</div>Betseghttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=552556Arch is the best2018-11-02T13:05:00Z<p>Betseg: </p>
<hr />
<div>[[Category:About Arch]]<br />
[[ja:Arch は最高]]<br />
[[ru:Arch is the best]]<br />
The '''Arch is the best''' project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which gives proof of Arch's superiority.<br />
<br />
== History ==<br />
<br />
The visionary project was originally devised in April 2008 by long time Arch community member [https://bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". It was announced to the world with a [https://bbs.archlinux.org/viewtopic.php?id=47306 forum post], thus illuminating other people's minds, who immediately started porting it to multiple different languages, both programming and verbal, so that every human being on the planet could fully appreciate and benefit from this revolutionary discovery.<br />
<br />
== The code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
;1C&#58;Enterprise 7.7/8/8.1/8.2:A procedural domain-specific compiled dynamically-typed programming language mostly similar to VisualBasic which is used in "1C:Enterprise" products widespread in Russia and other CIS countries.<br />
<br />
Предупреждение("Arch is the best!");<br />
<br />
;Ada: A systems critical programming language.<br />
<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end ArchIsTheBest;<br />
<br />
;APL: A Programming Language.<br />
<br />
'Arch is the best!'<br />
<br />
;AppleScript: A scripting language created by Apple Inc. and built into the Classic Mac OS since System 7 and into all versions of macOS.<br />
<br />
display alert "Arch is the best!"<br />
say "Indeed, Arch is the best."<br />
<br />
;ArnoldC: Programming language based on the one-liners of Arnold Schwarzenegger.<br />
<br />
IT'S SHOWTIME<br />
TALK TO THE HAND "Arch is the best!"<br />
YOU HAVE BEEN TERMINATED<br />
<br />
;ATS: A functional programming language that uses dependent types to improve programs' reliability.<br />
<br />
implement main () = println! "Arch is the best!"<br />
<br />
;Awk: A data-driven programming language designed for processing text-based data.<br />
<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
;Batch: A scripting language for Windows that can be used to automate tasks or just have some fun.<br />
<br />
@echo off<br />
echo Arch is the best!<br />
pause<br />
<br />
;Befunge: Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
;Boo:A stablished object oriented statically typed programming language for .NET and Mono with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features such as macros and custom compilation pipelines.<br />
<br />
print "Arch is the best!"<br />
<br />
;Bourne shell: The original program, should be compatible with any shell.<br />
<br />
#!/bin/sh<br />
echo "Arch is the best!"<br />
<br />
;Bourne shell (Alternate):Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
<br />
#!/bin/sh<br />
yes Arch is the best!<br />
<br />
;Bourne shell (Dynamically updated)<br />
<br />
#!/bin/sh<br />
<nowiki>w3m -dump "https://wiki.archlinux.org/index.php/Arch_is_the_best" | sed -n '/^Translations/,/^Encodings/p'</nowiki><br />
<br />
;or<br />
<br />
<pre style='overflow:auto'><br />
#!/bin/bash<br />
curl -s "https://wiki.archlinux.org/index.php?title=Arch_is_the_best&action=raw" | sed -n '/==Translations==/,$p' | sed "s/^\(.*\)$/* \1:/;t;s/^[^=]/ &/"<br />
</pre><br />
<br />
;brainfuck: Doesn't the language name explain it?<br />
<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
;C: Note the three space indenting used in this project, much like that used by other superior beings.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main(void)<br />
{<br />
puts("Arch is the best!");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;C#: Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
<br />
using System;<br />
public class ArchIsTheBest<br />
{<br />
static public void Main ()<br />
{<br />
Console.WriteLine ("Arch is the best!");<br />
}<br />
}<br />
<br />
;C++:Arch == Linux++<br />
<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;COBOL:A simple, lightweight programming language.<br />
<br />
IDENTIFICATION DIVISION.<br />
PROGRAM-ID. TheBest.<br />
<br />
PROCEDURE DIVISION.<br />
DISPLAY "Arch is the best!".<br />
STOP RUN.<br />
<br />
;CoffeeScript: A programming language that transcompiles to JavaScript.<br />
<br />
alert 'Arch is the best!'<br />
<br />
;Clojure: A Lisp dialect that runs on the JVM.<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"})<br />
<br />
(defn read-choice []<br />
(println "\nAvailable languages: ")<br />
(doall (map #(println (key %)) translations))<br />
(print "Enter language or Ctrl-c: ") (flush)<br />
(translations (read-line) :badinput))<br />
<br />
(defn arch-is-the-best []<br />
(loop [choice (read-choice)]<br />
(case choice<br />
:badinput (do (print "\nBad input!\n")<br />
(recur (read-choice)))<br />
(do (print "\n" choice "\n")<br />
(recur (read-choice))))))<br />
<br />
;or<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"<br />
"street" "Arch iz da shizzle ma nizzle"})<br />
(while 1<br />
(println "\nPick a language:\n" (map #(key %) translations) "\n language: ")<br />
(println (translations (read-line) "Not a valid language")))<br />
<br />
;or<br />
<br />
(prn "Arch is the best!")<br />
<br />
;Common Lisp: Tested on SBCL, feel free to add more of the translations.<br />
<br />
#!/usr/bin/sbcl --script<br />
(defparameter *best-list* '((English "Arch is the best!")<br />
(Chinese "Arch, 她出类拔萃!")<br />
(German "Arch ist das Beste!")<br />
(Greek "Το Arch είναι το καλύτερο!")<br />
(Latin "Arch est optimus!")<br />
(French "Arch est le meilleur!")))<br />
(defun aitb ()<br />
(format t "Available languages: ~{~{~@(~a~)~*~}~^, ~}.~%" *best-list*)<br />
(loop for input = (progn (format t "~&Input the desired language, (or 'quit'): ~%")<br />
(force-output)<br />
(read-line))<br />
if (string-equal input "quit")<br />
do (loop-finish)<br />
else<br />
do (let ((language-def<br />
(assoc input *best-list*<br />
:key (lambda (lang) (symbol-name lang))<br />
:test #'string-equal)))<br />
(if language-def<br />
(format t "~&~A~%" (second language-def))<br />
(format t "~&Invalid language.~%"))))<br />
(format t "~&May the Arch be with you!~%"))<br />
(aitb)<br />
<br />
;Common Lisp (Alternate): Should run on any implementation (Clisp, Allegro, SBCL...)<br />
<br />
(princ "Arch is the best!")<br />
<br />
;Crystal: An object-oriented, Ruby-like language.<br />
<br />
puts "Arch is the best!"<br />
<br />
;Crystal (through web server): For distributing the message to multiple friends at once.<br />
<br />
# For giving the message to your friends<br />
require "http/server"<br />
<br />
server = HTTP::Server.new(80) do |context|<br />
context.response.content_type = "text/plain"<br />
context.response.print "Arch is the best!"<br />
end<br />
<br />
puts "Listening."<br />
server.listen<br />
<br />
;csh: A C-like shell.<br />
<br />
#!/bin/csh<br />
echo "Arch is the best!"<br />
<br />
;CSS: A stylesheet language, heavily used for styling web pages.<br />
<br />
body * {<br />
display: none;<br />
}<br />
<br />
body::before {<br />
content: "Arch is the best!";<br />
font-family: monospace;<br />
font-size: 2.7rem;<br />
position: absolute;<br />
left: 50%;<br />
top: 50%;<br />
transform: translate(-50%, -50%);<br />
}<br />
<br />
;D: A C-style language. The benefits of hindsight, with modern conveniences.<br />
<br />
import std.stdio : writeln;<br />
void main()<br />
{<br />
writeln("Arch is the best");<br />
}<br />
<br />
;Dart: Google's javascript killer<br />
<br />
main(){<br />
print('Arch is the best');<br />
}<br />
<br />
;Dogescript: Doge-friendly JavaScript<br />
<br />
console.loge with ' So Arch'<br />
console.loge with ' Much Good'<br />
console.loge with ' Wow'<br />
<br />
;Ebuild: Gentoo's build script format.<br />
<br />
DESCRIPTION="Arch is the best!"<br />
SRC_URI="https://wiki.archlinux.org/index.php/Arch_is_the_best"<br />
<br />
LICENSE="GFDL_1.3"<br />
SLOT="0"<br />
KEYWORDS=""<br />
IUSE=""<br />
<br />
DEPEND=""<br />
RDEPEND=""<br />
<br />
src_compile() {<br />
einfo "Arch is the best!"<br />
}<br />
<br />
;Emacs Lisp: A dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors<br />
<br />
(message "Arch is the best!")<br />
<br />
;Emojicode: A delimiter-less, object oriented, imperative, high-level, hybrid language with emojis as fix points and methods.<br />
<br />
🏁 🍇<br />
😀 🔤Arch is the best!🔤❗️<br />
🍉<br />
<br />
;Elixir: A dynamic, functional language designed for building scalable and maintainable applications<br />
<br />
IO.puts "Arch is the best!"<br />
<br />
;Erlang: A concurrent, garbage-collected programming language and runtime system.<br />
<br />
-module(arch).<br />
-export([is_the_best/0]).<br />
is_the_best() -> io:fwrite("Arch is the best!\n").<br />
<br />
;Or using message passing between processes<br />
<br />
-module(arch).<br />
-export([ultimate_question/0,the_answer/0]).<br />
the_answer() -><br />
receive<br />
{Client,who_is_the_best} -><br />
Client ! {self(),"Arch is the best!"};<br />
{Client,_} -><br />
Client ! {self(),"Taco Taco Taco!"}<br />
end,<br />
the_answer().<br />
ultimate_question() -><br />
Pid = spawn(arch,the_answer,[]),<br />
Pid ! {self(),who_is_the_best},<br />
receive<br />
{Pid,Response} -> io:format("~s~n",[Response])<br />
end.<br />
<br />
;F#: A strongly-typed, functional-first programming language for writing simple code to solve complex problems.<br />
<br />
printfn "Arch is the best!"<br />
<br />
;Factor: High-level stack-based language.<br />
<br />
"Arch is the best" print<br />
<br />
;FIM++: A wordy, imperative, dynamically-typed, and interpreted language that can use Java classes.<br />
<br />
Dear Princess Celestia: Letter About Arch Linux.<br />
Today I learned:<br />
I wrote "Arch is the best!".<br />
Your faithful student, Twilight Sparkle<br />
<br />
;Forth:Stack-based language.<br />
<br />
." Arch is the best" cr -- kiss way<br />
<br />
;Fortran95<br />
<br />
program arch<br />
print *,"Arch is the best!"<br />
end program arch<br />
<br />
;Genie: A new programming language, that allows for a more modern programming style while being able to effortlessly create and use GObjects natively.<br />
<br />
init<br />
print "Arch is the best"<br />
<br />
;Gjs: A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
;Go: A language created by Google that's a love child between C, C++ and Python.<br />
<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() {<br />
fmt.Println("Arch is the best!")<br />
}<br />
<br />
;Groovy: An agile and dynamic language for the Java Virtual Machine.<br />
<br />
println 'Arch is the best!' <br />
<br />
;Haskell: The language where IO is easy and unproblematic.<br />
<br />
main = putStrLn "Arch is the best!"<br />
<br />
;HTML: A markup language used to create and define web pages and their content.<br />
<br />
<pre><br />
<!DOCTYPE html><br />
<html lang='en'><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
<p>Arch is the best!</p><br />
</body><br />
</html><br />
</pre><br />
<br />
;Idris: A general purpose pure functional programming language with dependent types. Haskell, but crazier.<br />
<br />
module Main<br />
<br />
main : IO ()<br />
main = putStrLn "Arch is the best!"<br />
<br />
;Io: A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript.<br />
<br />
"Arch is the best!" println<br />
<br />
;Java: An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
;JavaScript: Also known as ECMAScript, a prototype-based object-oriented scripting language.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;JavaScript (in a web browser)<br />
<br />
alert('Arch is the best!');<br />
<br />
;Julia: A fresh approach to numerical computing.<br />
<br />
println("Arch is the best!")<br />
<br />
;Kotlin: JetBrains' attempt to get world domination.<br />
<br />
fun main(args: Array<String>) {<br />
println("Arch is the best!")<br />
}<br />
<br />
;LilyPond: A powerful music engraving program with an intuitive LaTeX-like input language.<br />
<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
;LOLCODE: Why not?<br />
<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
;Lua: A lightweight, extensible programming language.<br />
<br />
print "Arch is the best!"<br />
<br />
;Malbolge: A language created to make programming as hard as possible.<br />
<br />
bCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]<br />
\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9y16543210/.-,+*)('&}C#"!~}|{zyxwvu<br />
tsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK-CgGFEDCBA@?>=<;:98x6543210/<br />
.-,+*)('&%$#"!~}|u;yxwpun4rqpRhmf,jihgIe^$ba`_^]\[ZYXQVUTMqQPONMFjJI+A<br />
eEDC%A:^>=<|:981U54t21*/.-&Jk)('&}C#"!aw={z\xwvun4lqpi/mlkjiKaf_%p<br />
<br />
;Matlab: A proprietary programming language developed by MathWorks.<br />
<br />
disp('Arch is the best!');<br />
<br />
;Morpho: Morpho is a multi-paradigm programming language that supports procedural, object-oriented and functional programming.<br />
<br />
writeln("Arch is the best!");<br />
<br />
;Myrddin: A system programming language which aims for control and simplicity, featuring strong type checking, generics, type inference, closures, and traits.<br />
<br />
/* mbld -b aitb aitb.myr */<br />
use std<br />
const main = {<br />
std.put("Arch is the best!\n")<br />
}<br />
<br />
;NASM / Yasm (i686): Notice that the string is in the .text section, which feels superior.<br />
<br />
;nasm -f elf32 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
_start:<br />
mov edx,len<br />
mov ecx,msg<br />
mov ebx,1<br />
mov eax,4<br />
int 0x80<br />
xor ebx,ebx<br />
mov eax,1<br />
int 0x80<br />
msg: db "Arch is the best!",10<br />
len equ $-msg<br />
<br />
<br />
;NASM / Yasm (x86_64) :Featuring AMD's sexy new instruction, ''syscall''.<br />
<br />
;nasm -f elf64 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
s:<br />
db 'Arch is the best!',0ah<br />
l equ $-s<br />
_start:<br />
mov rax,1<br />
mov rdi,1<br />
mov rsi,s<br />
mov rdx,l<br />
syscall<br />
mov rax,60<br />
xor rdi,rdi<br />
syscall<br />
<br />
;Nim:Portable lightweight programming language.<br />
<br />
echo "Arch is the best!"<br />
<br />
;node.js: a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications, using an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;Objective-C: A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
<br />
NSLog(@"Arch is the best!");<br />
<br />
;OCaml: The main implementation of the Caml programming language.<br />
<br />
print_endline "Arch is the best!"<br />
<br />
;Octave: High-level interpreted language, primarily intended for numerical computations.<br />
<br />
printf("Arch is the best!\n")<br />
<br />
;Ook!: brainfuck, translated to Orangutan.<br />
<br />
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.<br />
<br />
;Pascal: An influential imperative and procedural programming language.<br />
<br />
program ArchIsTheBest;<br />
begin<br />
writeln('Arch is the best!');<br />
end.<br />
<br />
;Perl:A high-level, general-purpose, interpreted, dynamic programming language.<br />
<br />
#!/usr/bin/env perl<br />
print "Arch is the best!\n";<br />
<br />
;Perl 6: The latest member of the Perl family.<br />
<br />
#!/usr/bin/env perl6<br />
say 'Arch is the best!';<br />
<br />
;PHP: A general-purpose scripting language.<br />
<br />
<?php<br />
echo "Arch is the best!\n";<br />
<br />
;Pixilang: Make me pixels.<br />
<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
;Pony:An object-oriented, actor-model, capabilities-secure, high performance programming language.<br />
<br />
actor Main<br />
new create(env: Env) =><br />
env.out.print("Arch is the best!")<br />
<br />
;Portable GNU assembler: {{ic|as -o arch.o arch.s && ld -o arch -O0 arch.o}}<br />
<br />
.section .data<br />
archIsBest:<br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax<br />
xorl %ebx, %ebx<br />
incl %ebx<br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx<br />
int $0x80<br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx<br />
int $0x80<br />
<br />
;Processing: An open source programming language and IDE built for the electronic arts and visual design.<br />
<br />
println("Arch is the best!");<br />
<br />
;Prolog: A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
<br />
format('Arch is the best~n',[]).<br />
<br />
;Python: A general-purpose high-level programming language.<br />
<br />
print('Arch is the best!')<br />
<br />
;QBASIC: An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
<br />
PRINT "Arch is the best!"<br />
<br />
;R: A language for statistical computing (and much more!).<br />
<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
;Racket: A general purpose, multi-paradigm programming language in the Lisp-Scheme family.<br />
<br />
#lang racket<br />
<br />
(let ([str "Arch is the best!\n"])<br />
(write-string str)<br />
(values))<br />
<br />
;Ruby: A dynamic, reflective, general purpose object-oriented programming language.<br />
<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
;Rust: Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.<br />
<br />
fn main() {<br />
println!("Arch is the best!");<br />
}<br />
<br />
;Salt: Salt is an automation framework<br />
<br />
salt '*' event.fire '{"data":"Arch Is the best!"}' 'arch/best'<br />
<br />
;Scala: A multi paradigm language that runs on the JVM.<br />
<br />
object ArchIsBest extends App {<br />
println("Arch is the best!")<br />
}<br />
<br />
;Scheme: A dialect of Lisp.<br />
<br />
(display "Arch is the best!\n")<br />
<br />
;Seed: A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
;Shakespeare Programming Language: Designed to "'make a language with beautiful source code' [...]"<br />
<br />
Arch is the Best.<br />
<br />
Arthur, a young man who is the best.<br />
Isabella, a likewise young woman who be.<br />
The Ghost, an undead who is the article.<br />
Beatrice, a young woman who is an adjective.<br />
<br />
<br />
Act I: Setting of the Variables.<br />
<br />
Scene I: Setting of Isabella and Arthur.<br />
<br />
[Enter Arthur and Isabella]<br />
<br />
Arthur:<br />
You are as dirty as the square of the sum of a rotten smelly foul devil<br />
and a vile lie! You are as bold as the sum of yourself and an evil hog!<br />
<br />
Isabella:<br />
Thou art as big as the square of a cute fair sweet flower! You are as proud<br />
as the sum of thyself and a cow.<br />
<br />
[Exit Arthur]<br />
<br />
Scene II: Setting of The Ghost.<br />
<br />
[Enter The Ghost]<br />
<br />
Isabella:<br />
You art as loving as myself. Thou are as huge as the sum of yourself and twice<br />
a red old hair. You are as cowardly as the sum of yourself and a fat goat!<br />
<br />
[Exit Isabella]<br />
<br />
Scene III: Setting of Beatrice.<br />
<br />
[Enter Beatrice]<br />
<br />
The Ghost:<br />
Thou are as good as the sum of Isabella and a mighty fine rich noble King.<br />
<br />
[Exeunt The Ghost and Beatrice]<br />
<br />
Act II: Printing Arch is the Best.<br />
<br />
Scene I: Arch.<br />
<br />
[Enter Arthur and Beatrice]<br />
<br />
Beatrice:<br />
Speak thy mind! You art as peaceful as the quotient between thyself and the<br />
clearest Lord.<br />
<br />
Arthur:<br />
Speak your mind!<br />
<br />
[Exeunt Arthur and Beatrice]<br />
<br />
[Enter Isabella and The Ghost]<br />
<br />
The Ghost:<br />
Thou are as normal as the sum of thyself and a town. Speak thy mind!<br />
<br />
Isabella:<br />
Speak your mind!<br />
<br />
[Exit Isabella]<br />
<br />
[Enter Arthur]<br />
<br />
The Ghost:<br />
Speak thy mind!<br />
<br />
[Exit Arthur]<br />
<br />
Scene II: is.<br />
<br />
[Enter Beatrice]<br />
<br />
Beatrice:<br />
Thou are as old as the sum of yourself and a nose. Speak your mind!<br />
<br />
The Ghost:<br />
You art as pretty as the sum of thyself and a face. Speak your mind.<br />
<br />
[Exit The Ghost]<br />
<br />
[Enter Arthur]<br />
<br />
Beatrice:<br />
Speak thy mind.<br />
<br />
Scene III: the.<br />
<br />
Arthur:<br />
You are as blue as the sum of yourself and a hamster. Speak thy mind!<br />
<br />
[Exit Arthur]<br />
<br />
[Enter The Ghost]<br />
<br />
Beatrice:<br />
You are as prompt as the sum of thyself and a lie! Speak your mind.<br />
<br />
[Exit Beatrice]<br />
<br />
[Enter Isabella]<br />
<br />
The Ghost:<br />
You art as happy as the sum of thyself and a large moon. Speak thy mind!<br />
<br />
[Exit The Ghost]<br />
<br />
[Enter Arthur]<br />
<br />
Isabella:<br />
Speak thy mind.<br />
<br />
[Exit Arthur]<br />
<br />
Scene IV: Best.<br />
<br />
[Enter Beatrice]<br />
<br />
Beatrice:<br />
Thou are as blue as the sum of the sum of a curse and thyself and a bad<br />
codpiece. Speak your mind! You art as lovely as the sum of the sum of the<br />
happiness and yourself and a blossoming flower. Speak thy mind.<br />
<br />
Isabella:<br />
You are as healthy as the sum of yourself and a plague! Speak thy mind.<br />
Thou art as huge as the sum of thyself and a hero. Speak your mind!<br />
<br />
[Exit Beatrice]<br />
<br />
[Enter Arthur]<br />
<br />
Isabella:<br />
You art as green as the sum of thyself and a mother. Speak your mind.<br />
<br />
[Exeunt]<br />
<br />
<br />
;Shoes: A Ruby version using Shoes for a GUI.<br />
<br />
Shoes.app :width => 135, :height => 30 do<br />
para "Arch is the Best!"<br />
end<br />
<br />
;Smalltalk: Smalltalk is an object-oriented, dynamically typed, reflective programming language.<br />
<br />
Transcript show: 'Arch is the best!'.<br />
<br />
;SQL: Structured Query Language, the query language for relational databases<br />
<br />
SELECT 'Arch is the best!';<br />
SELECT 'Arch is the best!' from dual; -- for Oracle DB<br />
<br />
;Standard ML: A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
<br />
print "Arch is the best!\n"<br />
<br />
;Swift: A general-purpose, multi-paradigm, compiled programming language developed by Apple Inc.<br />
<br />
print("Arch is the best!")<br />
<br />
;Tcl/Tk: A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
;TrumpScript: A scripting language based on President Trump's words.<br />
<br />
say it with me, "Arch is the best!";<br />
america is great.<br />
<br />
;UEFI: An extensible firmware framework<br />
<br />
#include <Uefi.h><br />
EFI_STATUS EFIAPI<br />
ArchIsTheBest (<br />
IN EFI_HANDLE ImageHandle,<br />
IN EFI_SYSTEM_TABLE *SystemTable<br />
)<br />
{<br />
SystemTable -> ConOut-> OutputString(SystemTable->ConOut, L"Arch is the best!\n"); <br />
return EFI_SUCCESS;<br />
}<br />
<br />
;Vala: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.<br />
<br />
void main(string[] args) {<br />
stdout.printf("\nArch is the best!\n\n");<br />
}<br />
<br />
; var'aq: [http://www.reocities.com/connorbd/varaq/index.html A warrior's programming language]<br />
"Arch is the best!" cha'<br />
<br />
;VimScript: A scripting language for the Vim text editor.<br />
<br />
echo "Arch is the best!"<br />
<br />
; Wiring (Arduino):Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
}<br />
void loop()<br />
{<br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
;Visual Basic: A third-generation event-driven programming language and integrated development environment (IDE) from Microsoft for its Component Object Model (COM) programming model.<br />
<br />
Module Arch<br />
Sub Main()<br />
MsgBox("Arch is the best!")<br />
End Sub<br />
End Module<br />
<br />
; X11: X11 is an architecture independent system for display of graphical user interfaces.<br />
{{ic|cc -lX11 arch.c}}<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
;Zimbu: A fast, easy to learn, and JS-like programming language.<br />
<br />
FUNC Main() int<br />
IO.write("Arch is the best!")<br />
RETURN 0<br />
}<br />
<br />
;Zsh: A UNIX command interpreter (shell) closely resembling ksh, but includes many enhancements.<br />
<br />
#!/bin/zsh -f<br />
setopt extendedglob<br />
print -- $(tput setaf 2) ${$(<<<${${${(@j: :)${(@s:_:)${:-What_Linux_is_the_best?}}}/* (#b)([A-Z]i)/Arch $match[1]}} tr '?' '!')} $(tput sgr0)<br />
<br />
== Translations ==<br />
<br />
;Ancient Chinese<br />
阿祺,盡善矣。<br />
<br />
;Ancient Greek (Attic)<br />
Ἡ Ἁψίς ἀρίστη!<br />
<br />
;Arabic<br />
ارتش هو الأفضل<br />
<br />
;Australian<br />
Arch is fair dinkum, mate!<br />
<br />
;Bahasa Indonesia<br />
Arch terbaik!<br />
<br />
;Basque<br />
Arch onena da!<br />
<br />
;Belarusian<br />
Арч - самы лепшы!<br />
<br />
;Bengali<br />
আর্চ সবচেয়ে ভালো!<br />
<br />
;Brezhoneg<br />
Arch emañ ar gwellañ!<br />
;or<br />
Arch emañ ar matañ!<br />
<br />
;British<br />
Arch is simply spiffing.<br />
<br />
;Bulgarian<br />
Арч е най-добрият!<br />
<br />
;Catalan<br />
Arch és el millor!<br />
<br />
;Cantonese<br />
阿祺真係冇得頂!<br />
<br />
;Chinese (Mainland)<br />
Arch最棒了!<br />
<br />
;Chinese (Taiwan)<br />
Arch蠻贊的!<br />
<br />
;Czech<br />
Arch je nejlepší!<br />
<br />
;Croatian<br />
Arch je najbolji!<br />
<br />
;Danish<br />
Arch er bedst!<br />
<br />
;Doge<br />
So Arch, Much Good, Wow<br />
<br />
;Dutch<br />
Arch is het beste!<br />
;or<br />
Arch is de beste!<br />
(these have a slighty different meaning)<br />
<br />
;Esperanto<br />
Arch plejbonas!<br />
<br />
;Estonian<br />
Arch on parim!<br />
<br />
;Fikonspråket<br />
Firch Arkon fir äkon fist bäkon<br />
<br />
;Filipino<br />
Mabuhay ang Arch!<br />
<br />
;Finnish<br />
Arch on paras!<br />
<br />
;French<br />
Arch est le meilleur!<br />
<br />
;Fullwidth English<br />
Arch is the Best!<br />
<br />
;Galician<br />
Arch é o mellor!<br />
<br />
;German<br />
Arch ist das Beste!<br />
<br />
;German (Bernese-Swiss)<br />
Arch isch geil wine More!<br />
<br />
;Greek (Modern)<br />
Το Αρτς είναι το καλύτερο!<br />
<br />
;Haitian Creole<br />
Arch se meye bagay!<br />
<br />
;Hantec<br />
Arch je nejbetélnější!<br />
<br />
;Hebrew<br />
ארצ' זה הכי אחי!<br />
<br />
;Hindi<br />
आर्च सर्वोत्तम है ।<br />
<br />
;Hungarian<br />
Az Arch a legjobb!<br />
<br />
;Irish<br />
Arch é is fearr!<br />
<br />
;Italian<br />
Arch è il migliore!<br />
<br />
;Japanese<br />
Archが一番ですよ!<br />
<br />
;Kannada<br />
ಆರ್ಚ್ ಅತ್ಯುತ್ತಮವಾಗಿದೆ<br />
<br />
;Kazakh<br />
Арч - ең жақсы!<br />
<br />
;Klingon<br />
Arch'pu'ta"a'<br />
<br />
;Korean<br />
아치가 최고입니다!<br />
<br />
;Kurdish<br />
Arç herî baş e!<br />
<br />
;Latin<br />
Arch optimus est!<br />
<br />
;Latvian<br />
Arch ir labākais!<br />
<br />
;Leet<br />
4rch 15 7h3 b357!<br />
<br />
;Lithuanian<br />
Arch yra geriausias!<br />
<br />
;Lojban<br />
la .artc. xagrai<br />
;or for those who prefer an experimental grammar:<br />
la'oi Arch xagrai<br />
(to mi catlu do doi la bauspo fazykamni toi)<br />
<br />
;Lolcat<br />
ARCH IZ TEH BEST!<br />
<br />
;Malayalam<br />
ആർച് ആണ് ഏറ്റവും നല്ലത്<br />
<br />
;Mapudungun<br />
writting system: Unificado<br />
Doy kümei Arch<br />
writting system: Raguileo<br />
Zoy kvmey Arc<br />
writting system: Azümchefe (Used in Windows XP)<br />
Zoi kümei Arch<br />
writting system: Nhewenh<br />
Zoi kvmei Arch<br />
writting system: Wirizüŋun<br />
Zoy kümey Arch ''or'' Zoy kvmey Arch<br />
<br />
;Marathi<br />
आर्च सगळ्यात भारी आहे!<br />
<br />
;Nepali<br />
आर्च सबैभन्दा राम्रो हो!<br />
<br />
;Norwegian<br />
Arch er best!<br />
<br />
;Old English<br />
Arch biþ betst!<br />
<br />
;Occitan (lenga d'òc)<br />
Arch es lo melhor!<br />
<br />
;Persian<br />
آرچ بهترین است<br />
<br />
;Pig Latin<br />
Archway isway ethay estbay!<br />
<br />
;Polish<br />
Arch jest najlepszy!<br />
<br />
;Portuguese<br />
Arch é o melhor!<br />
<br />
;Québécois<br />
Arch c'est le plus meilleure du monde!<br />
<br />
;Romanian<br />
Аrch e cel mai bun!<br />
<br />
;Russian<br />
Арч — лучший!<br />
<br />
;Rövarspråket (English)<br />
Arorcochoh isos tothohe bobesostot.<br />
<br />
;Rövarspråket (Swedish)<br />
Arorcochoh äror bobäsostot!<br />
<br />
;Serbian<br />
Arch je najbolji!<br />
<br />
;Shona<br />
Arch iripamberi!<br />
<br />
;Singaporean<br />
Arch the best lah!<br />
<br />
;Slovak<br />
Arch je najlepší!<br />
<br />
;Slovenian<br />
Arch je najboljši!<br />
<br />
;Spanish (Standard)<br />
¡Arch es el mejor!<br />
<br />
;Spanish (Argentina)<br />
Arch es una mazza!!<br />
<br />
;Spanish (Chile)<br />
Arch es bacán<br />
<br />
;Spanish (Chile, alternative)<br />
Arch es la raja<br />
<br />
;Spanish (Chile, marginal)<br />
(written in IPA because standard Spanish doesn't have these sounds)<br />
ˈæɹʃ ɛːʰ tɜ.rˈiː.u.lɛ la rˈa.χa ʃʊ.ɹʊ<br />
<br />
;Spanish (Guatemala)<br />
¡Arch está bien chilero!<br />
<br />
;Spanish (Guatemala, alternative)<br />
¡Arch es la mera tos!<br />
<br />
;Spanish (Uruguay)<br />
¡Arch la rompe!<br />
<br />
;Spanish (Venezuela, standard)<br />
Marico, Arch es la vaina más arrecha.<br />
<br />
;Spanish (Venezuela, maracucho)<br />
Que molleja de bueno es Arch.<br />
<br />
;Swahili<br />
Arch ndiyo bora zaidi<br />
<br />
;Swedish<br />
Arch är bäst!<br />
<br />
;Turkish<br />
Arch en iyisidir!<br />
<br />
;Tamil<br />
ஆர்ச்சே சிறந்தது!<br />
<br />
;Telugu<br />
ఆర్చ్ ఉత్తమమైనది!<br />
<br />
<br />
;Thai<br />
อาค์ชเทพเมพขิงขิง<br />
<br />
;Toki Pona<br />
Arch li pona mute!<br />
<br />
;Ukrainian<br />
Arch — найкращий!<br />
<br />
;Urdu<br />
آرچ سب سے بہتر ہے!<br />
<br />
;Vietnamese<br />
Arch là tốt nhất!<br />
<br />
;Welsh (Cymraeg)<br />
<br />
Emphasis on Arch:<br />
Arch sydd yr orau un!<br />
Arch sydd y gorau un!<br />
<br />
Emphasis on being the best (one):<br />
Yr orau un yw Arch!<br />
Y gorau un yw Arch!<br />
<br />
== Encodings ==<br />
<br />
;ASCII Banner<br />
<br />
{{Text art|<nowiki><br />
_ _ _ _ _ _ _<br />
/\ | | (_) | | | | | | | | | |<br />
/ \ _ __ ___| |__ _ ___ | |_| |__ ___ | |__ ___ ___| |_| |<br />
/ /\ \ | '__/ __| '_ \ | / __| | __| '_ \ / _ \ | '_ \ / _ \/ __| __| |<br />
/ ____ \| | | (__| | | | | \__ \ | |_| | | | __/ | |_) | __/\__ \ |_|_|<br />
/_/ \_\_| \___|_| |_| |_|___/ \__|_| |_|\___| |_.__/ \___||___/\__(_)<br />
</nowiki>}}<br />
<br />
;Base64<br />
{{hc|$ echo 'Arch is the best!' {{!}} base64|<br />
QXJjaCBpcyB0aGUgYmVzdCEK<br />
}}<br />
<br />
;Binary ASCII<br />
{{hc|1=$ echo 'Arch is the best!' {{!}} perl -lpe '$_=unpack"B*"'|2=<br />
0100000101110010011000110110100000100000011010010111001100100000011101000110100001100101001000000110001001100101011100110111010000100001<br />
}}<br />
<br />
;Braille<br />
⠁⠗⠉⠓⠀⠊⠎⠀⠮⠀⠃⠑⠎⠞⠲<br />
<br />
;Desrever (Reversed)<br />
{{hc|$ echo 'Arch is the best!' {{!}} rev|<br />
!tseb eht si hcrA<br />
}}<br />
<br />
;h4x0r<br />
4rch 15 7h3 b357!<br />
<br />
;Hexadecimal ASCII<br />
{{hc|1=$ echo 'Arch is the best!' {{!}} perl -lpe '$_=unpack"H*"'|2=<br />
4172636820697320746865206265737421<br />
}}<br />
<br />
;Morse Code<br />
.- .-. -.-. ..../.. .../- .... ./-... . ... -<br />
<br />
;ROT13<br />
{{hc|$ echo 'Arch is the best!' {{!}} tr 'A-Za-z' 'N-ZA-Mn-za-m'|<br />
Nepu vf gur orfg!<br />
}}<br />
<br />
;Rotated 180°<br />
¡ʇsǝq ǝɥʇ s! ɥɔɹ∀<br />
<br />
;URL Encoded<br />
Arch%20is%20the%20best!<br />
<br />
== Hashes ==<br />
<br />
;md5sum<br />
2d9092e089d77a8e23f47ba3dfe77027<br />
<br />
;sha1sum<br />
7f6ed0bf29abbd7e796ca1311c84a7a21a68a656<br />
<br />
;sha224sum<br />
af15cd556676d37f916a35e2cf74f04cf7b1805b3244ec418c3927d8<br />
<br />
;sha256sum<br />
107139d6b9a15fd97acf743e5806823c8ff868fde8b7c28cfcc2c9184df644ae<br />
<br />
;sha384sum<br />
769ec295d876483aa6cec7ff7997296c8ff2236630b0e48b059576143b60ab30adefec9321d8acc2a133219dfb302bc5<br />
<br />
;sha512sum<br />
b0917f66d05278106808d25f51001b038856fa7171b935d450b4bcbf1e8b82ed6a5a2f49d99734e1efc7ad3d1b8a33519008635d4e1aa3e65a5e70c4de649aad<br />
<br />
;sha3-224sum<br />
D650C03EC4CBAD76DED2CDE5232128F46CA311B266EC09C36D349728<br />
<br />
;sha3-256sum<br />
9FEC011CC05F1430A3832019B72F280536F1E395F067C3E53193A70F082D193B<br />
<br />
;sha3-384sum<br />
3CBFAAAA2509DAFA6804F5CDF5271594F7D6F44038BB342C7BBC802047C05BE98C8AF6020EBB51291188AC99D6803F52<br />
<br />
;sha3-512sum<br />
E30381FFC93C3E727FCF080C2A46852C042517899D8E823435B99A94345C3F95A25FA11DFEE422ED7C7FD009893B5482BEBA87B7FF3B546D4655ADB6EAE410F8</div>Betseghttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=552555Arch is the best2018-11-02T13:02:53Z<p>Betseg: added spl</p>
<hr />
<div>[[Category:About Arch]]<br />
[[ja:Arch は最高]]<br />
[[ru:Arch is the best]]<br />
The '''Arch is the best''' project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which gives proof of Arch's superiority.<br />
<br />
== History ==<br />
<br />
The visionary project was originally devised in April 2008 by long time Arch community member [https://bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". It was announced to the world with a [https://bbs.archlinux.org/viewtopic.php?id=47306 forum post], thus illuminating other people's minds, who immediately started porting it to multiple different languages, both programming and verbal, so that every human being on the planet could fully appreciate and benefit from this revolutionary discovery.<br />
<br />
== The code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
;1C&#58;Enterprise 7.7/8/8.1/8.2:A procedural domain-specific compiled dynamically-typed programming language mostly similar to VisualBasic which is used in "1C:Enterprise" products widespread in Russia and other CIS countries.<br />
<br />
Предупреждение("Arch is the best!");<br />
<br />
;Ada: A systems critical programming language.<br />
<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end ArchIsTheBest;<br />
<br />
;APL: A Programming Language.<br />
<br />
'Arch is the best!'<br />
<br />
;AppleScript: A scripting language created by Apple Inc. and built into the Classic Mac OS since System 7 and into all versions of macOS.<br />
<br />
display alert "Arch is the best!"<br />
say "Indeed, Arch is the best."<br />
<br />
;ArnoldC: Programming language based on the one-liners of Arnold Schwarzenegger.<br />
<br />
IT'S SHOWTIME<br />
TALK TO THE HAND "Arch is the best!"<br />
YOU HAVE BEEN TERMINATED<br />
<br />
;ATS: A functional programming language that uses dependent types to improve programs' reliability.<br />
<br />
implement main () = println! "Arch is the best!"<br />
<br />
;Awk: A data-driven programming language designed for processing text-based data.<br />
<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
;Batch: A scripting language for Windows that can be used to automate tasks or just have some fun.<br />
<br />
@echo off<br />
echo Arch is the best!<br />
pause<br />
<br />
;Befunge: Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
;Boo:A stablished object oriented statically typed programming language for .NET and Mono with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features such as macros and custom compilation pipelines.<br />
<br />
print "Arch is the best!"<br />
<br />
;Bourne shell: The original program, should be compatible with any shell.<br />
<br />
#!/bin/sh<br />
echo "Arch is the best!"<br />
<br />
;Bourne shell (Alternate):Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
<br />
#!/bin/sh<br />
yes Arch is the best!<br />
<br />
;Bourne shell (Dynamically updated)<br />
<br />
#!/bin/sh<br />
<nowiki>w3m -dump "https://wiki.archlinux.org/index.php/Arch_is_the_best" | sed -n '/^Translations/,/^Encodings/p'</nowiki><br />
<br />
;or<br />
<br />
<pre style='overflow:auto'><br />
#!/bin/bash<br />
curl -s "https://wiki.archlinux.org/index.php?title=Arch_is_the_best&action=raw" | sed -n '/==Translations==/,$p' | sed "s/^\(.*\)$/* \1:/;t;s/^[^=]/ &/"<br />
</pre><br />
<br />
;brainfuck: Doesn't the language name explain it?<br />
<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
;C: Note the three space indenting used in this project, much like that used by other superior beings.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main(void)<br />
{<br />
puts("Arch is the best!");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;C#: Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
<br />
using System;<br />
public class ArchIsTheBest<br />
{<br />
static public void Main ()<br />
{<br />
Console.WriteLine ("Arch is the best!");<br />
}<br />
}<br />
<br />
;C++:Arch == Linux++<br />
<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;COBOL:A simple, lightweight programming language.<br />
<br />
IDENTIFICATION DIVISION.<br />
PROGRAM-ID. TheBest.<br />
<br />
PROCEDURE DIVISION.<br />
DISPLAY "Arch is the best!".<br />
STOP RUN.<br />
<br />
;CoffeeScript: A programming language that transcompiles to JavaScript.<br />
<br />
alert 'Arch is the best!'<br />
<br />
;Clojure: A Lisp dialect that runs on the JVM.<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"})<br />
<br />
(defn read-choice []<br />
(println "\nAvailable languages: ")<br />
(doall (map #(println (key %)) translations))<br />
(print "Enter language or Ctrl-c: ") (flush)<br />
(translations (read-line) :badinput))<br />
<br />
(defn arch-is-the-best []<br />
(loop [choice (read-choice)]<br />
(case choice<br />
:badinput (do (print "\nBad input!\n")<br />
(recur (read-choice)))<br />
(do (print "\n" choice "\n")<br />
(recur (read-choice))))))<br />
<br />
;or<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"<br />
"street" "Arch iz da shizzle ma nizzle"})<br />
(while 1<br />
(println "\nPick a language:\n" (map #(key %) translations) "\n language: ")<br />
(println (translations (read-line) "Not a valid language")))<br />
<br />
;or<br />
<br />
(prn "Arch is the best!")<br />
<br />
;Common Lisp: Tested on SBCL, feel free to add more of the translations.<br />
<br />
#!/usr/bin/sbcl --script<br />
(defparameter *best-list* '((English "Arch is the best!")<br />
(Chinese "Arch, 她出类拔萃!")<br />
(German "Arch ist das Beste!")<br />
(Greek "Το Arch είναι το καλύτερο!")<br />
(Latin "Arch est optimus!")<br />
(French "Arch est le meilleur!")))<br />
(defun aitb ()<br />
(format t "Available languages: ~{~{~@(~a~)~*~}~^, ~}.~%" *best-list*)<br />
(loop for input = (progn (format t "~&Input the desired language, (or 'quit'): ~%")<br />
(force-output)<br />
(read-line))<br />
if (string-equal input "quit")<br />
do (loop-finish)<br />
else<br />
do (let ((language-def<br />
(assoc input *best-list*<br />
:key (lambda (lang) (symbol-name lang))<br />
:test #'string-equal)))<br />
(if language-def<br />
(format t "~&~A~%" (second language-def))<br />
(format t "~&Invalid language.~%"))))<br />
(format t "~&May the Arch be with you!~%"))<br />
(aitb)<br />
<br />
;Common Lisp (Alternate): Should run on any implementation (Clisp, Allegro, SBCL...)<br />
<br />
(princ "Arch is the best!")<br />
<br />
;Crystal: An object-oriented, Ruby-like language.<br />
<br />
puts "Arch is the best!"<br />
<br />
;Crystal (through web server): For distributing the message to multiple friends at once.<br />
<br />
# For giving the message to your friends<br />
require "http/server"<br />
<br />
server = HTTP::Server.new(80) do |context|<br />
context.response.content_type = "text/plain"<br />
context.response.print "Arch is the best!"<br />
end<br />
<br />
puts "Listening."<br />
server.listen<br />
<br />
;csh: A C-like shell.<br />
<br />
#!/bin/csh<br />
echo "Arch is the best!"<br />
<br />
;CSS: A stylesheet language, heavily used for styling web pages.<br />
<br />
body * {<br />
display: none;<br />
}<br />
<br />
body::before {<br />
content: "Arch is the best!";<br />
font-family: monospace;<br />
font-size: 2.7rem;<br />
position: absolute;<br />
left: 50%;<br />
top: 50%;<br />
transform: translate(-50%, -50%);<br />
}<br />
<br />
;D: A C-style language. The benefits of hindsight, with modern conveniences.<br />
<br />
import std.stdio : writeln;<br />
void main()<br />
{<br />
writeln("Arch is the best");<br />
}<br />
<br />
;Dart: Google's javascript killer<br />
<br />
main(){<br />
print('Arch is the best');<br />
}<br />
<br />
;Dogescript: Doge-friendly JavaScript<br />
<br />
console.loge with ' So Arch'<br />
console.loge with ' Much Good'<br />
console.loge with ' Wow'<br />
<br />
;Ebuild: Gentoo's build script format.<br />
<br />
DESCRIPTION="Arch is the best!"<br />
SRC_URI="https://wiki.archlinux.org/index.php/Arch_is_the_best"<br />
<br />
LICENSE="GFDL_1.3"<br />
SLOT="0"<br />
KEYWORDS=""<br />
IUSE=""<br />
<br />
DEPEND=""<br />
RDEPEND=""<br />
<br />
src_compile() {<br />
einfo "Arch is the best!"<br />
}<br />
<br />
;Emacs Lisp: A dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors<br />
<br />
(message "Arch is the best!")<br />
<br />
;Emojicode: A delimiter-less, object oriented, imperative, high-level, hybrid language with emojis as fix points and methods.<br />
<br />
🏁 🍇<br />
😀 🔤Arch is the best!🔤❗️<br />
🍉<br />
<br />
;Elixir: A dynamic, functional language designed for building scalable and maintainable applications<br />
<br />
IO.puts "Arch is the best!"<br />
<br />
;Erlang: A concurrent, garbage-collected programming language and runtime system.<br />
<br />
-module(arch).<br />
-export([is_the_best/0]).<br />
is_the_best() -> io:fwrite("Arch is the best!\n").<br />
<br />
;Or using message passing between processes<br />
<br />
-module(arch).<br />
-export([ultimate_question/0,the_answer/0]).<br />
the_answer() -><br />
receive<br />
{Client,who_is_the_best} -><br />
Client ! {self(),"Arch is the best!"};<br />
{Client,_} -><br />
Client ! {self(),"Taco Taco Taco!"}<br />
end,<br />
the_answer().<br />
ultimate_question() -><br />
Pid = spawn(arch,the_answer,[]),<br />
Pid ! {self(),who_is_the_best},<br />
receive<br />
{Pid,Response} -> io:format("~s~n",[Response])<br />
end.<br />
<br />
;F#: A strongly-typed, functional-first programming language for writing simple code to solve complex problems.<br />
<br />
printfn "Arch is the best!"<br />
<br />
;Factor: High-level stack-based language.<br />
<br />
"Arch is the best" print<br />
<br />
;FIM++: A wordy, imperative, dynamically-typed, and interpreted language that can use Java classes.<br />
<br />
Dear Princess Celestia: Letter About Arch Linux.<br />
Today I learned:<br />
I wrote "Arch is the best!".<br />
Your faithful student, Twilight Sparkle<br />
<br />
;Forth:Stack-based language.<br />
<br />
." Arch is the best" cr -- kiss way<br />
<br />
;Fortran95<br />
<br />
program arch<br />
print *,"Arch is the best!"<br />
end program arch<br />
<br />
;Genie: A new programming language, that allows for a more modern programming style while being able to effortlessly create and use GObjects natively.<br />
<br />
init<br />
print "Arch is the best"<br />
<br />
;Gjs: A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
;Go: A language created by Google that's a love child between C, C++ and Python.<br />
<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() {<br />
fmt.Println("Arch is the best!")<br />
}<br />
<br />
;Groovy: An agile and dynamic language for the Java Virtual Machine.<br />
<br />
println 'Arch is the best!' <br />
<br />
;Haskell: The language where IO is easy and unproblematic.<br />
<br />
main = putStrLn "Arch is the best!"<br />
<br />
;HTML: A markup language used to create and define web pages and their content.<br />
<br />
<pre><br />
<!DOCTYPE html><br />
<html lang='en'><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
<p>Arch is the best!</p><br />
</body><br />
</html><br />
</pre><br />
<br />
;Idris: A general purpose pure functional programming language with dependent types. Haskell, but crazier.<br />
<br />
module Main<br />
<br />
main : IO ()<br />
main = putStrLn "Arch is the best!"<br />
<br />
;Io: A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript.<br />
<br />
"Arch is the best!" println<br />
<br />
;Java: An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
;JavaScript: Also known as ECMAScript, a prototype-based object-oriented scripting language.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;JavaScript (in a web browser)<br />
<br />
alert('Arch is the best!');<br />
<br />
;Julia: A fresh approach to numerical computing.<br />
<br />
println("Arch is the best!")<br />
<br />
;Kotlin: JetBrains' attempt to get world domination.<br />
<br />
fun main(args: Array<String>) {<br />
println("Arch is the best!")<br />
}<br />
<br />
;LilyPond: A powerful music engraving program with an intuitive LaTeX-like input language.<br />
<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
;LOLCODE: Why not?<br />
<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
;Lua: A lightweight, extensible programming language.<br />
<br />
print "Arch is the best!"<br />
<br />
;Malbolge: A language created to make programming as hard as possible.<br />
<br />
bCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]<br />
\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9y16543210/.-,+*)('&}C#"!~}|{zyxwvu<br />
tsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK-CgGFEDCBA@?>=<;:98x6543210/<br />
.-,+*)('&%$#"!~}|u;yxwpun4rqpRhmf,jihgIe^$ba`_^]\[ZYXQVUTMqQPONMFjJI+A<br />
eEDC%A:^>=<|:981U54t21*/.-&Jk)('&}C#"!aw={z\xwvun4lqpi/mlkjiKaf_%p<br />
<br />
;Matlab: A proprietary programming language developed by MathWorks.<br />
<br />
disp('Arch is the best!');<br />
<br />
;Morpho: Morpho is a multi-paradigm programming language that supports procedural, object-oriented and functional programming.<br />
<br />
writeln("Arch is the best!");<br />
<br />
;Myrddin: A system programming language which aims for control and simplicity, featuring strong type checking, generics, type inference, closures, and traits.<br />
<br />
/* mbld -b aitb aitb.myr */<br />
use std<br />
const main = {<br />
std.put("Arch is the best!\n")<br />
}<br />
<br />
;NASM / Yasm (i686): Notice that the string is in the .text section, which feels superior.<br />
<br />
;nasm -f elf32 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
_start:<br />
mov edx,len<br />
mov ecx,msg<br />
mov ebx,1<br />
mov eax,4<br />
int 0x80<br />
xor ebx,ebx<br />
mov eax,1<br />
int 0x80<br />
msg: db "Arch is the best!",10<br />
len equ $-msg<br />
<br />
<br />
;NASM / Yasm (x86_64) :Featuring AMD's sexy new instruction, ''syscall''.<br />
<br />
;nasm -f elf64 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
s:<br />
db 'Arch is the best!',0ah<br />
l equ $-s<br />
_start:<br />
mov rax,1<br />
mov rdi,1<br />
mov rsi,s<br />
mov rdx,l<br />
syscall<br />
mov rax,60<br />
xor rdi,rdi<br />
syscall<br />
<br />
;Nim:Portable lightweight programming language.<br />
<br />
echo "Arch is the best!"<br />
<br />
;node.js: a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications, using an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;Objective-C: A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
<br />
NSLog(@"Arch is the best!");<br />
<br />
;OCaml: The main implementation of the Caml programming language.<br />
<br />
print_endline "Arch is the best!"<br />
<br />
;Octave: High-level interpreted language, primarily intended for numerical computations.<br />
<br />
printf("Arch is the best!\n")<br />
<br />
;Ook!: brainfuck, translated to Orangutan.<br />
<br />
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.<br />
<br />
;Pascal: An influential imperative and procedural programming language.<br />
<br />
program ArchIsTheBest;<br />
begin<br />
writeln('Arch is the best!');<br />
end.<br />
<br />
;Perl:A high-level, general-purpose, interpreted, dynamic programming language.<br />
<br />
#!/usr/bin/env perl<br />
print "Arch is the best!\n";<br />
<br />
;Perl 6: The latest member of the Perl family.<br />
<br />
#!/usr/bin/env perl6<br />
say 'Arch is the best!';<br />
<br />
;PHP: A general-purpose scripting language.<br />
<br />
<?php<br />
echo "Arch is the best!\n";<br />
<br />
;Pixilang: Make me pixels.<br />
<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
;Pony:An object-oriented, actor-model, capabilities-secure, high performance programming language.<br />
<br />
actor Main<br />
new create(env: Env) =><br />
env.out.print("Arch is the best!")<br />
<br />
;Portable GNU assembler: {{ic|as -o arch.o arch.s && ld -o arch -O0 arch.o}}<br />
<br />
.section .data<br />
archIsBest:<br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax<br />
xorl %ebx, %ebx<br />
incl %ebx<br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx<br />
int $0x80<br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx<br />
int $0x80<br />
<br />
;Processing: An open source programming language and IDE built for the electronic arts and visual design.<br />
<br />
println("Arch is the best!");<br />
<br />
;Prolog: A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
<br />
format('Arch is the best~n',[]).<br />
<br />
;Python: A general-purpose high-level programming language.<br />
<br />
print('Arch is the best!')<br />
<br />
;QBASIC: An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
<br />
PRINT "Arch is the best!"<br />
<br />
;R: A language for statistical computing (and much more!).<br />
<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
;Racket: A general purpose, multi-paradigm programming language in the Lisp-Scheme family.<br />
<br />
#lang racket<br />
<br />
(let ([str "Arch is the best!\n"])<br />
(write-string str)<br />
(values))<br />
<br />
;Ruby: A dynamic, reflective, general purpose object-oriented programming language.<br />
<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
;Rust: Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.<br />
<br />
fn main() {<br />
println!("Arch is the best!");<br />
}<br />
<br />
;Salt: Salt is an automation framework<br />
<br />
salt '*' event.fire '{"data":"Arch Is the best!"}' 'arch/best'<br />
<br />
;Scala: A multi paradigm language that runs on the JVM.<br />
<br />
object ArchIsBest extends App {<br />
println("Arch is the best!")<br />
}<br />
<br />
;Scheme: A dialect of Lisp.<br />
<br />
(display "Arch is the best!\n")<br />
<br />
;Seed: A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
;Shakespeare Programming Language: Designed to "*make a language with beautiful source code* [...]"<br />
<br />
Arch is the Best.<br />
<br />
Arthur, a young man who is the best.<br />
Isabella, a likewise young woman who be.<br />
The Ghost, an undead who is the article.<br />
Beatrice, a young woman who is an adjective.<br />
<br />
<br />
Act I: Setting of the Variables.<br />
<br />
Scene I: Setting of Isabella and Arthur.<br />
<br />
[Enter Arthur and Isabella]<br />
<br />
Arthur:<br />
You are as dirty as the square of the sum of a rotten smelly foul devil<br />
and a vile lie! You are as bold as the sum of yourself and an evil hog!<br />
<br />
Isabella:<br />
Thou art as big as the square of a cute fair sweet flower! You are as proud<br />
as the sum of thyself and a cow.<br />
<br />
[Exit Arthur]<br />
<br />
Scene II: Setting of The Ghost.<br />
<br />
[Enter The Ghost]<br />
<br />
Isabella:<br />
You art as loving as myself. Thou are as huge as the sum of yourself and twice<br />
a red old hair. You are as cowardly as the sum of yourself and a fat goat!<br />
<br />
[Exit Isabella]<br />
<br />
Scene III: Setting of Beatrice.<br />
<br />
[Enter Beatrice]<br />
<br />
The Ghost:<br />
Thou are as good as the sum of Isabella and a mighty fine rich noble King.<br />
<br />
[Exeunt The Ghost and Beatrice]<br />
<br />
Act II: Printing Arch is the Best.<br />
<br />
Scene I: Arch.<br />
<br />
[Enter Arthur and Beatrice]<br />
<br />
Beatrice:<br />
Speak thy mind! You art as peaceful as the quotient between thyself and the<br />
clearest Lord.<br />
<br />
Arthur:<br />
Speak your mind!<br />
<br />
[Exeunt Arthur and Beatrice]<br />
<br />
[Enter Isabella and The Ghost]<br />
<br />
The Ghost:<br />
Thou are as normal as the sum of thyself and a town. Speak thy mind!<br />
<br />
Isabella:<br />
Speak your mind!<br />
<br />
[Exit Isabella]<br />
<br />
[Enter Arthur]<br />
<br />
The Ghost:<br />
Speak thy mind!<br />
<br />
[Exit Arthur]<br />
<br />
Scene II: is.<br />
<br />
[Enter Beatrice]<br />
<br />
Beatrice:<br />
Thou are as old as the sum of yourself and a nose. Speak your mind!<br />
<br />
The Ghost:<br />
You art as pretty as the sum of thyself and a face. Speak your mind.<br />
<br />
[Exit The Ghost]<br />
<br />
[Enter Arthur]<br />
<br />
Beatrice:<br />
Speak thy mind.<br />
<br />
Scene III: the.<br />
<br />
Arthur:<br />
You are as blue as the sum of yourself and a hamster. Speak thy mind!<br />
<br />
[Exit Arthur]<br />
<br />
[Enter The Ghost]<br />
<br />
Beatrice:<br />
You are as prompt as the sum of thyself and a lie! Speak your mind.<br />
<br />
[Exit Beatrice]<br />
<br />
[Enter Isabella]<br />
<br />
The Ghost:<br />
You art as happy as the sum of thyself and a large moon. Speak thy mind!<br />
<br />
[Exit The Ghost]<br />
<br />
[Enter Arthur]<br />
<br />
Isabella:<br />
Speak thy mind.<br />
<br />
[Exit Arthur]<br />
<br />
Scene IV: Best.<br />
<br />
[Enter Beatrice]<br />
<br />
Beatrice:<br />
Thou are as blue as the sum of the sum of a curse and thyself and a bad<br />
codpiece. Speak your mind! You art as lovely as the sum of the sum of the<br />
happiness and yourself and a blossoming flower. Speak thy mind.<br />
<br />
Isabella:<br />
You are as healthy as the sum of yourself and a plague! Speak thy mind.<br />
Thou art as huge as the sum of thyself and a hero. Speak your mind!<br />
<br />
[Exit Beatrice]<br />
<br />
[Enter Arthur]<br />
<br />
Isabella:<br />
You art as green as the sum of thyself and a mother. Speak your mind.<br />
<br />
[Exeunt]<br />
<br />
<br />
;Shoes: A Ruby version using Shoes for a GUI.<br />
<br />
Shoes.app :width => 135, :height => 30 do<br />
para "Arch is the Best!"<br />
end<br />
<br />
;Smalltalk: Smalltalk is an object-oriented, dynamically typed, reflective programming language.<br />
<br />
Transcript show: 'Arch is the best!'.<br />
<br />
;SQL: Structured Query Language, the query language for relational databases<br />
<br />
SELECT 'Arch is the best!';<br />
SELECT 'Arch is the best!' from dual; -- for Oracle DB<br />
<br />
;Standard ML: A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
<br />
print "Arch is the best!\n"<br />
<br />
;Swift: A general-purpose, multi-paradigm, compiled programming language developed by Apple Inc.<br />
<br />
print("Arch is the best!")<br />
<br />
;Tcl/Tk: A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
;TrumpScript: A scripting language based on President Trump's words.<br />
<br />
say it with me, "Arch is the best!";<br />
america is great.<br />
<br />
;UEFI: An extensible firmware framework<br />
<br />
#include <Uefi.h><br />
EFI_STATUS EFIAPI<br />
ArchIsTheBest (<br />
IN EFI_HANDLE ImageHandle,<br />
IN EFI_SYSTEM_TABLE *SystemTable<br />
)<br />
{<br />
SystemTable -> ConOut-> OutputString(SystemTable->ConOut, L"Arch is the best!\n"); <br />
return EFI_SUCCESS;<br />
}<br />
<br />
;Vala: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.<br />
<br />
void main(string[] args) {<br />
stdout.printf("\nArch is the best!\n\n");<br />
}<br />
<br />
; var'aq: [http://www.reocities.com/connorbd/varaq/index.html A warrior's programming language]<br />
"Arch is the best!" cha'<br />
<br />
;VimScript: A scripting language for the Vim text editor.<br />
<br />
echo "Arch is the best!"<br />
<br />
; Wiring (Arduino):Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
}<br />
void loop()<br />
{<br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
;Visual Basic: A third-generation event-driven programming language and integrated development environment (IDE) from Microsoft for its Component Object Model (COM) programming model.<br />
<br />
Module Arch<br />
Sub Main()<br />
MsgBox("Arch is the best!")<br />
End Sub<br />
End Module<br />
<br />
; X11: X11 is an architecture independent system for display of graphical user interfaces.<br />
{{ic|cc -lX11 arch.c}}<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
;Zimbu: A fast, easy to learn, and JS-like programming language.<br />
<br />
FUNC Main() int<br />
IO.write("Arch is the best!")<br />
RETURN 0<br />
}<br />
<br />
;Zsh: A UNIX command interpreter (shell) closely resembling ksh, but includes many enhancements.<br />
<br />
#!/bin/zsh -f<br />
setopt extendedglob<br />
print -- $(tput setaf 2) ${$(<<<${${${(@j: :)${(@s:_:)${:-What_Linux_is_the_best?}}}/* (#b)([A-Z]i)/Arch $match[1]}} tr '?' '!')} $(tput sgr0)<br />
<br />
== Translations ==<br />
<br />
;Ancient Chinese<br />
阿祺,盡善矣。<br />
<br />
;Ancient Greek (Attic)<br />
Ἡ Ἁψίς ἀρίστη!<br />
<br />
;Arabic<br />
ارتش هو الأفضل<br />
<br />
;Australian<br />
Arch is fair dinkum, mate!<br />
<br />
;Bahasa Indonesia<br />
Arch terbaik!<br />
<br />
;Basque<br />
Arch onena da!<br />
<br />
;Belarusian<br />
Арч - самы лепшы!<br />
<br />
;Bengali<br />
আর্চ সবচেয়ে ভালো!<br />
<br />
;Brezhoneg<br />
Arch emañ ar gwellañ!<br />
;or<br />
Arch emañ ar matañ!<br />
<br />
;British<br />
Arch is simply spiffing.<br />
<br />
;Bulgarian<br />
Арч е най-добрият!<br />
<br />
;Catalan<br />
Arch és el millor!<br />
<br />
;Cantonese<br />
阿祺真係冇得頂!<br />
<br />
;Chinese (Mainland)<br />
Arch最棒了!<br />
<br />
;Chinese (Taiwan)<br />
Arch蠻贊的!<br />
<br />
;Czech<br />
Arch je nejlepší!<br />
<br />
;Croatian<br />
Arch je najbolji!<br />
<br />
;Danish<br />
Arch er bedst!<br />
<br />
;Doge<br />
So Arch, Much Good, Wow<br />
<br />
;Dutch<br />
Arch is het beste!<br />
;or<br />
Arch is de beste!<br />
(these have a slighty different meaning)<br />
<br />
;Esperanto<br />
Arch plejbonas!<br />
<br />
;Estonian<br />
Arch on parim!<br />
<br />
;Fikonspråket<br />
Firch Arkon fir äkon fist bäkon<br />
<br />
;Filipino<br />
Mabuhay ang Arch!<br />
<br />
;Finnish<br />
Arch on paras!<br />
<br />
;French<br />
Arch est le meilleur!<br />
<br />
;Fullwidth English<br />
Arch is the Best!<br />
<br />
;Galician<br />
Arch é o mellor!<br />
<br />
;German<br />
Arch ist das Beste!<br />
<br />
;German (Bernese-Swiss)<br />
Arch isch geil wine More!<br />
<br />
;Greek (Modern)<br />
Το Αρτς είναι το καλύτερο!<br />
<br />
;Haitian Creole<br />
Arch se meye bagay!<br />
<br />
;Hantec<br />
Arch je nejbetélnější!<br />
<br />
;Hebrew<br />
ארצ' זה הכי אחי!<br />
<br />
;Hindi<br />
आर्च सर्वोत्तम है ।<br />
<br />
;Hungarian<br />
Az Arch a legjobb!<br />
<br />
;Irish<br />
Arch é is fearr!<br />
<br />
;Italian<br />
Arch è il migliore!<br />
<br />
;Japanese<br />
Archが一番ですよ!<br />
<br />
;Kannada<br />
ಆರ್ಚ್ ಅತ್ಯುತ್ತಮವಾಗಿದೆ<br />
<br />
;Kazakh<br />
Арч - ең жақсы!<br />
<br />
;Klingon<br />
Arch'pu'ta"a'<br />
<br />
;Korean<br />
아치가 최고입니다!<br />
<br />
;Kurdish<br />
Arç herî baş e!<br />
<br />
;Latin<br />
Arch optimus est!<br />
<br />
;Latvian<br />
Arch ir labākais!<br />
<br />
;Leet<br />
4rch 15 7h3 b357!<br />
<br />
;Lithuanian<br />
Arch yra geriausias!<br />
<br />
;Lojban<br />
la .artc. xagrai<br />
;or for those who prefer an experimental grammar:<br />
la'oi Arch xagrai<br />
(to mi catlu do doi la bauspo fazykamni toi)<br />
<br />
;Lolcat<br />
ARCH IZ TEH BEST!<br />
<br />
;Malayalam<br />
ആർച് ആണ് ഏറ്റവും നല്ലത്<br />
<br />
;Mapudungun<br />
writting system: Unificado<br />
Doy kümei Arch<br />
writting system: Raguileo<br />
Zoy kvmey Arc<br />
writting system: Azümchefe (Used in Windows XP)<br />
Zoi kümei Arch<br />
writting system: Nhewenh<br />
Zoi kvmei Arch<br />
writting system: Wirizüŋun<br />
Zoy kümey Arch ''or'' Zoy kvmey Arch<br />
<br />
;Marathi<br />
आर्च सगळ्यात भारी आहे!<br />
<br />
;Nepali<br />
आर्च सबैभन्दा राम्रो हो!<br />
<br />
;Norwegian<br />
Arch er best!<br />
<br />
;Old English<br />
Arch biþ betst!<br />
<br />
;Occitan (lenga d'òc)<br />
Arch es lo melhor!<br />
<br />
;Persian<br />
آرچ بهترین است<br />
<br />
;Pig Latin<br />
Archway isway ethay estbay!<br />
<br />
;Polish<br />
Arch jest najlepszy!<br />
<br />
;Portuguese<br />
Arch é o melhor!<br />
<br />
;Québécois<br />
Arch c'est le plus meilleure du monde!<br />
<br />
;Romanian<br />
Аrch e cel mai bun!<br />
<br />
;Russian<br />
Арч — лучший!<br />
<br />
;Rövarspråket (English)<br />
Arorcochoh isos tothohe bobesostot.<br />
<br />
;Rövarspråket (Swedish)<br />
Arorcochoh äror bobäsostot!<br />
<br />
;Serbian<br />
Arch je najbolji!<br />
<br />
;Shona<br />
Arch iripamberi!<br />
<br />
;Singaporean<br />
Arch the best lah!<br />
<br />
;Slovak<br />
Arch je najlepší!<br />
<br />
;Slovenian<br />
Arch je najboljši!<br />
<br />
;Spanish (Standard)<br />
¡Arch es el mejor!<br />
<br />
;Spanish (Argentina)<br />
Arch es una mazza!!<br />
<br />
;Spanish (Chile)<br />
Arch es bacán<br />
<br />
;Spanish (Chile, alternative)<br />
Arch es la raja<br />
<br />
;Spanish (Chile, marginal)<br />
(written in IPA because standard Spanish doesn't have these sounds)<br />
ˈæɹʃ ɛːʰ tɜ.rˈiː.u.lɛ la rˈa.χa ʃʊ.ɹʊ<br />
<br />
;Spanish (Guatemala)<br />
¡Arch está bien chilero!<br />
<br />
;Spanish (Guatemala, alternative)<br />
¡Arch es la mera tos!<br />
<br />
;Spanish (Uruguay)<br />
¡Arch la rompe!<br />
<br />
;Spanish (Venezuela, standard)<br />
Marico, Arch es la vaina más arrecha.<br />
<br />
;Spanish (Venezuela, maracucho)<br />
Que molleja de bueno es Arch.<br />
<br />
;Swahili<br />
Arch ndiyo bora zaidi<br />
<br />
;Swedish<br />
Arch är bäst!<br />
<br />
;Turkish<br />
Arch en iyisidir!<br />
<br />
;Tamil<br />
ஆர்ச்சே சிறந்தது!<br />
<br />
;Telugu<br />
ఆర్చ్ ఉత్తమమైనది!<br />
<br />
<br />
;Thai<br />
อาค์ชเทพเมพขิงขิง<br />
<br />
;Toki Pona<br />
Arch li pona mute!<br />
<br />
;Ukrainian<br />
Arch — найкращий!<br />
<br />
;Urdu<br />
آرچ سب سے بہتر ہے!<br />
<br />
;Vietnamese<br />
Arch là tốt nhất!<br />
<br />
;Welsh (Cymraeg)<br />
<br />
Emphasis on Arch:<br />
Arch sydd yr orau un!<br />
Arch sydd y gorau un!<br />
<br />
Emphasis on being the best (one):<br />
Yr orau un yw Arch!<br />
Y gorau un yw Arch!<br />
<br />
== Encodings ==<br />
<br />
;ASCII Banner<br />
<br />
{{Text art|<nowiki><br />
_ _ _ _ _ _ _<br />
/\ | | (_) | | | | | | | | | |<br />
/ \ _ __ ___| |__ _ ___ | |_| |__ ___ | |__ ___ ___| |_| |<br />
/ /\ \ | '__/ __| '_ \ | / __| | __| '_ \ / _ \ | '_ \ / _ \/ __| __| |<br />
/ ____ \| | | (__| | | | | \__ \ | |_| | | | __/ | |_) | __/\__ \ |_|_|<br />
/_/ \_\_| \___|_| |_| |_|___/ \__|_| |_|\___| |_.__/ \___||___/\__(_)<br />
</nowiki>}}<br />
<br />
;Base64<br />
{{hc|$ echo 'Arch is the best!' {{!}} base64|<br />
QXJjaCBpcyB0aGUgYmVzdCEK<br />
}}<br />
<br />
;Binary ASCII<br />
{{hc|1=$ echo 'Arch is the best!' {{!}} perl -lpe '$_=unpack"B*"'|2=<br />
0100000101110010011000110110100000100000011010010111001100100000011101000110100001100101001000000110001001100101011100110111010000100001<br />
}}<br />
<br />
;Braille<br />
⠁⠗⠉⠓⠀⠊⠎⠀⠮⠀⠃⠑⠎⠞⠲<br />
<br />
;Desrever (Reversed)<br />
{{hc|$ echo 'Arch is the best!' {{!}} rev|<br />
!tseb eht si hcrA<br />
}}<br />
<br />
;h4x0r<br />
4rch 15 7h3 b357!<br />
<br />
;Hexadecimal ASCII<br />
{{hc|1=$ echo 'Arch is the best!' {{!}} perl -lpe '$_=unpack"H*"'|2=<br />
4172636820697320746865206265737421<br />
}}<br />
<br />
;Morse Code<br />
.- .-. -.-. ..../.. .../- .... ./-... . ... -<br />
<br />
;ROT13<br />
{{hc|$ echo 'Arch is the best!' {{!}} tr 'A-Za-z' 'N-ZA-Mn-za-m'|<br />
Nepu vf gur orfg!<br />
}}<br />
<br />
;Rotated 180°<br />
¡ʇsǝq ǝɥʇ s! ɥɔɹ∀<br />
<br />
;URL Encoded<br />
Arch%20is%20the%20best!<br />
<br />
== Hashes ==<br />
<br />
;md5sum<br />
2d9092e089d77a8e23f47ba3dfe77027<br />
<br />
;sha1sum<br />
7f6ed0bf29abbd7e796ca1311c84a7a21a68a656<br />
<br />
;sha224sum<br />
af15cd556676d37f916a35e2cf74f04cf7b1805b3244ec418c3927d8<br />
<br />
;sha256sum<br />
107139d6b9a15fd97acf743e5806823c8ff868fde8b7c28cfcc2c9184df644ae<br />
<br />
;sha384sum<br />
769ec295d876483aa6cec7ff7997296c8ff2236630b0e48b059576143b60ab30adefec9321d8acc2a133219dfb302bc5<br />
<br />
;sha512sum<br />
b0917f66d05278106808d25f51001b038856fa7171b935d450b4bcbf1e8b82ed6a5a2f49d99734e1efc7ad3d1b8a33519008635d4e1aa3e65a5e70c4de649aad<br />
<br />
;sha3-224sum<br />
D650C03EC4CBAD76DED2CDE5232128F46CA311B266EC09C36D349728<br />
<br />
;sha3-256sum<br />
9FEC011CC05F1430A3832019B72F280536F1E395F067C3E53193A70F082D193B<br />
<br />
;sha3-384sum<br />
3CBFAAAA2509DAFA6804F5CDF5271594F7D6F44038BB342C7BBC802047C05BE98C8AF6020EBB51291188AC99D6803F52<br />
<br />
;sha3-512sum<br />
E30381FFC93C3E727FCF080C2A46852C042517899D8E823435B99A94345C3F95A25FA11DFEE422ED7C7FD009893B5482BEBA87B7FF3B546D4655ADB6EAE410F8</div>Betseghttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=552502Arch is the best2018-11-01T23:00:45Z<p>Betseg: update emojicode to 0.6</p>
<hr />
<div>[[Category:About Arch]]<br />
[[ja:Arch は最高]]<br />
[[ru:Arch is the best]]<br />
The '''Arch is the best''' project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which gives proof of Arch's superiority.<br />
<br />
== History ==<br />
<br />
The visionary project was originally devised in April 2008 by long time Arch community member [https://bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". It was announced to the world with a [https://bbs.archlinux.org/viewtopic.php?id=47306 forum post], thus illuminating other people's minds, who immediately started porting it to multiple different languages, both programming and verbal, so that every human being on the planet could fully appreciate and benefit from this revolutionary discovery.<br />
<br />
== The code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
;1C&#58;Enterprise 7.7/8/8.1/8.2:A procedural domain-specific compiled dynamically-typed programming language mostly similar to VisualBasic which is used in "1C:Enterprise" products widespread in Russia and other CIS countries.<br />
<br />
Предупреждение("Arch is the best!");<br />
<br />
;Ada: A systems critical programming language.<br />
<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end ArchIsTheBest;<br />
<br />
;APL: A Programming Language.<br />
<br />
'Arch is the best!'<br />
<br />
;AppleScript: A scripting language created by Apple Inc. and built into the Classic Mac OS since System 7 and into all versions of macOS.<br />
<br />
display alert "Arch is the best!"<br />
say "Indeed, Arch is the best."<br />
<br />
;ArnoldC: Programming language based on the one-liners of Arnold Schwarzenegger.<br />
<br />
IT'S SHOWTIME<br />
TALK TO THE HAND "Arch is the best!"<br />
YOU HAVE BEEN TERMINATED<br />
<br />
;ATS: A functional programming language that uses dependent types to improve programs' reliability.<br />
<br />
implement main () = println! "Arch is the best!"<br />
<br />
;Awk: A data-driven programming language designed for processing text-based data.<br />
<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
;Batch: A scripting language for Windows that can be used to automate tasks or just have some fun.<br />
<br />
@echo off<br />
echo Arch is the best!<br />
pause<br />
<br />
;Befunge: Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
;Boo:A stablished object oriented statically typed programming language for .NET and Mono with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features such as macros and custom compilation pipelines.<br />
<br />
print "Arch is the best!"<br />
<br />
;Bourne shell: The original program, should be compatible with any shell.<br />
<br />
#!/bin/sh<br />
echo "Arch is the best!"<br />
<br />
;Bourne shell (Alternate):Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
<br />
#!/bin/sh<br />
yes Arch is the best!<br />
<br />
;Bourne shell (Dynamically updated)<br />
<br />
#!/bin/sh<br />
<nowiki>w3m -dump "https://wiki.archlinux.org/index.php/Arch_is_the_best" | sed -n '/^Translations/,/^Encodings/p'</nowiki><br />
<br />
;or<br />
<br />
<pre style='overflow:auto'><br />
#!/bin/bash<br />
curl -s "https://wiki.archlinux.org/index.php?title=Arch_is_the_best&action=raw" | sed -n '/==Translations==/,$p' | sed "s/^\(.*\)$/* \1:/;t;s/^[^=]/ &/"<br />
</pre><br />
<br />
;brainfuck: Doesn't the language name explain it?<br />
<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
;C: Note the three space indenting used in this project, much like that used by other superior beings.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main(void)<br />
{<br />
puts("Arch is the best!");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;C#: Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
<br />
using System;<br />
public class ArchIsTheBest<br />
{<br />
static public void Main ()<br />
{<br />
Console.WriteLine ("Arch is the best!");<br />
}<br />
}<br />
<br />
;C++:Arch == Linux++<br />
<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;COBOL:A simple, lightweight programming language.<br />
<br />
IDENTIFICATION DIVISION.<br />
PROGRAM-ID. TheBest.<br />
<br />
PROCEDURE DIVISION.<br />
DISPLAY "Arch is the best!".<br />
STOP RUN.<br />
<br />
;CoffeeScript: A programming language that transcompiles to JavaScript.<br />
<br />
alert 'Arch is the best!'<br />
<br />
;Clojure: A Lisp dialect that runs on the JVM.<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"})<br />
<br />
(defn read-choice []<br />
(println "\nAvailable languages: ")<br />
(doall (map #(println (key %)) translations))<br />
(print "Enter language or Ctrl-c: ") (flush)<br />
(translations (read-line) :badinput))<br />
<br />
(defn arch-is-the-best []<br />
(loop [choice (read-choice)]<br />
(case choice<br />
:badinput (do (print "\nBad input!\n")<br />
(recur (read-choice)))<br />
(do (print "\n" choice "\n")<br />
(recur (read-choice))))))<br />
<br />
;or<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"<br />
"street" "Arch iz da shizzle ma nizzle"})<br />
(while 1<br />
(println "\nPick a language:\n" (map #(key %) translations) "\n language: ")<br />
(println (translations (read-line) "Not a valid language")))<br />
<br />
;or<br />
<br />
(prn "Arch is the best!")<br />
<br />
;Common Lisp: Tested on SBCL, feel free to add more of the translations.<br />
<br />
#!/usr/bin/sbcl --script<br />
(defparameter *best-list* '((English "Arch is the best!")<br />
(Chinese "Arch, 她出类拔萃!")<br />
(German "Arch ist das Beste!")<br />
(Greek "Το Arch είναι το καλύτερο!")<br />
(Latin "Arch est optimus!")<br />
(French "Arch est le meilleur!")))<br />
(defun aitb ()<br />
(format t "Available languages: ~{~{~@(~a~)~*~}~^, ~}.~%" *best-list*)<br />
(loop for input = (progn (format t "~&Input the desired language, (or 'quit'): ~%")<br />
(force-output)<br />
(read-line))<br />
if (string-equal input "quit")<br />
do (loop-finish)<br />
else<br />
do (let ((language-def<br />
(assoc input *best-list*<br />
:key (lambda (lang) (symbol-name lang))<br />
:test #'string-equal)))<br />
(if language-def<br />
(format t "~&~A~%" (second language-def))<br />
(format t "~&Invalid language.~%"))))<br />
(format t "~&May the Arch be with you!~%"))<br />
(aitb)<br />
<br />
;Common Lisp (Alternate): Should run on any implementation (Clisp, Allegro, SBCL...)<br />
<br />
(princ "Arch is the best!")<br />
<br />
;Crystal: An object-oriented, Ruby-like language.<br />
<br />
puts "Arch is the best!"<br />
<br />
;Crystal (through web server): For distributing the message to multiple friends at once.<br />
<br />
# For giving the message to your friends<br />
require "http/server"<br />
<br />
server = HTTP::Server.new(80) do |context|<br />
context.response.content_type = "text/plain"<br />
context.response.print "Arch is the best!"<br />
end<br />
<br />
puts "Listening."<br />
server.listen<br />
<br />
;csh: A C-like shell.<br />
<br />
#!/bin/csh<br />
echo "Arch is the best!"<br />
<br />
;CSS: A stylesheet language, heavily used for styling web pages.<br />
<br />
body * {<br />
display: none;<br />
}<br />
<br />
body::before {<br />
content: "Arch is the best!";<br />
font-family: monospace;<br />
font-size: 2.7rem;<br />
position: absolute;<br />
left: 50%;<br />
top: 50%;<br />
transform: translate(-50%, -50%);<br />
}<br />
<br />
;D: A C-style language. The benefits of hindsight, with modern conveniences.<br />
<br />
import std.stdio : writeln;<br />
void main()<br />
{<br />
writeln("Arch is the best");<br />
}<br />
<br />
;Dart: Google's javascript killer<br />
<br />
main(){<br />
print('Arch is the best');<br />
}<br />
<br />
;Dogescript: Doge-friendly JavaScript<br />
<br />
console.loge with ' So Arch'<br />
console.loge with ' Much Good'<br />
console.loge with ' Wow'<br />
<br />
;Ebuild: Gentoo's build script format.<br />
<br />
DESCRIPTION="Arch is the best!"<br />
SRC_URI="https://wiki.archlinux.org/index.php/Arch_is_the_best"<br />
<br />
LICENSE="GFDL_1.3"<br />
SLOT="0"<br />
KEYWORDS=""<br />
IUSE=""<br />
<br />
DEPEND=""<br />
RDEPEND=""<br />
<br />
src_compile() {<br />
einfo "Arch is the best!"<br />
}<br />
<br />
;Emacs Lisp: A dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors<br />
<br />
(message "Arch is the best!")<br />
<br />
;Emojicode: A delimiter-less, object oriented, imperative, high-level, hybrid language with emojis as fix points and methods.<br />
<br />
🏁 🍇<br />
😀 🔤Arch is the best!🔤❗️<br />
🍉<br />
<br />
;Elixir: A dynamic, functional language designed for building scalable and maintainable applications<br />
<br />
IO.puts "Arch is the best!"<br />
<br />
;Erlang: A concurrent, garbage-collected programming language and runtime system.<br />
<br />
-module(arch).<br />
-export([is_the_best/0]).<br />
is_the_best() -> io:fwrite("Arch is the best!\n").<br />
<br />
;Or using message passing between processes<br />
<br />
-module(arch).<br />
-export([ultimate_question/0,the_answer/0]).<br />
the_answer() -><br />
receive<br />
{Client,who_is_the_best} -><br />
Client ! {self(),"Arch is the best!"};<br />
{Client,_} -><br />
Client ! {self(),"Taco Taco Taco!"}<br />
end,<br />
the_answer().<br />
ultimate_question() -><br />
Pid = spawn(arch,the_answer,[]),<br />
Pid ! {self(),who_is_the_best},<br />
receive<br />
{Pid,Response} -> io:format("~s~n",[Response])<br />
end.<br />
<br />
;F#: A strongly-typed, functional-first programming language for writing simple code to solve complex problems.<br />
<br />
printfn "Arch is the best!"<br />
<br />
;Factor: High-level stack-based language.<br />
<br />
"Arch is the best" print<br />
<br />
;FIM++: A wordy, imperative, dynamically-typed, and interpreted language that can use Java classes.<br />
<br />
Dear Princess Celestia: Letter About Arch Linux.<br />
Today I learned:<br />
I wrote "Arch is the best!".<br />
Your faithful student, Twilight Sparkle<br />
<br />
;Forth:Stack-based language.<br />
<br />
." Arch is the best" cr -- kiss way<br />
<br />
;Fortran95<br />
<br />
program arch<br />
print *,"Arch is the best!"<br />
end program arch<br />
<br />
;Genie: A new programming language, that allows for a more modern programming style while being able to effortlessly create and use GObjects natively.<br />
<br />
init<br />
print "Arch is the best"<br />
<br />
;Gjs: A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
;Go: A language created by Google that's a love child between C, C++ and Python.<br />
<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() {<br />
fmt.Println("Arch is the best!")<br />
}<br />
<br />
;Groovy: An agile and dynamic language for the Java Virtual Machine.<br />
<br />
println 'Arch is the best!' <br />
<br />
;Haskell: The language where IO is easy and unproblematic.<br />
<br />
main = putStrLn "Arch is the best!"<br />
<br />
;HTML: A markup language used to create and define web pages and their content.<br />
<br />
<pre><br />
<!DOCTYPE html><br />
<html lang='en'><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
<p>Arch is the best!</p><br />
</body><br />
</html><br />
</pre><br />
<br />
;Idris: A general purpose pure functional programming language with dependent types. Haskell, but crazier.<br />
<br />
module Main<br />
<br />
main : IO ()<br />
main = putStrLn "Arch is the best!"<br />
<br />
;Io: A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript.<br />
<br />
"Arch is the best!" println<br />
<br />
;Java: An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
;JavaScript: Also known as ECMAScript, a prototype-based object-oriented scripting language.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;JavaScript (in a web browser)<br />
<br />
alert('Arch is the best!');<br />
<br />
;Julia: A fresh approach to numerical computing.<br />
<br />
println("Arch is the best!")<br />
<br />
;Kotlin: JetBrains' attempt to get world domination.<br />
<br />
fun main(args: Array<String>) {<br />
println("Arch is the best!")<br />
}<br />
<br />
;LilyPond: A powerful music engraving program with an intuitive LaTeX-like input language.<br />
<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
;LOLCODE: Why not?<br />
<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
;Lua: A lightweight, extensible programming language.<br />
<br />
print "Arch is the best!"<br />
<br />
;Malbolge: A language created to make programming as hard as possible.<br />
<br />
bCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]<br />
\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9y16543210/.-,+*)('&}C#"!~}|{zyxwvu<br />
tsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK-CgGFEDCBA@?>=<;:98x6543210/<br />
.-,+*)('&%$#"!~}|u;yxwpun4rqpRhmf,jihgIe^$ba`_^]\[ZYXQVUTMqQPONMFjJI+A<br />
eEDC%A:^>=<|:981U54t21*/.-&Jk)('&}C#"!aw={z\xwvun4lqpi/mlkjiKaf_%p<br />
<br />
;Matlab: A proprietary programming language developed by MathWorks.<br />
<br />
disp('Arch is the best!');<br />
<br />
;Morpho: Morpho is a multi-paradigm programming language that supports procedural, object-oriented and functional programming.<br />
<br />
writeln("Arch is the best!");<br />
<br />
;Myrddin: A system programming language which aims for control and simplicity, featuring strong type checking, generics, type inference, closures, and traits.<br />
<br />
/* mbld -b aitb aitb.myr */<br />
use std<br />
const main = {<br />
std.put("Arch is the best!\n")<br />
}<br />
<br />
;NASM / Yasm (i686): Notice that the string is in the .text section, which feels superior.<br />
<br />
;nasm -f elf32 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
_start:<br />
mov edx,len<br />
mov ecx,msg<br />
mov ebx,1<br />
mov eax,4<br />
int 0x80<br />
xor ebx,ebx<br />
mov eax,1<br />
int 0x80<br />
msg: db "Arch is the best!",10<br />
len equ $-msg<br />
<br />
<br />
;NASM / Yasm (x86_64) :Featuring AMD's sexy new instruction, ''syscall''.<br />
<br />
;nasm -f elf64 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
s:<br />
db 'Arch is the best!',0ah<br />
l equ $-s<br />
_start:<br />
mov rax,1<br />
mov rdi,1<br />
mov rsi,s<br />
mov rdx,l<br />
syscall<br />
mov rax,60<br />
xor rdi,rdi<br />
syscall<br />
<br />
;Nim:Portable lightweight programming language.<br />
<br />
echo "Arch is the best!"<br />
<br />
;node.js: a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications, using an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;Objective-C: A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
<br />
NSLog(@"Arch is the best!");<br />
<br />
;OCaml: The main implementation of the Caml programming language.<br />
<br />
print_endline "Arch is the best!"<br />
<br />
;Octave: High-level interpreted language, primarily intended for numerical computations.<br />
<br />
printf("Arch is the best!\n")<br />
<br />
;Ook!: brainfuck, translated to Orangutan.<br />
<br />
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.<br />
<br />
;Pascal: An influential imperative and procedural programming language.<br />
<br />
program ArchIsTheBest;<br />
begin<br />
writeln('Arch is the best!');<br />
end.<br />
<br />
;Perl:A high-level, general-purpose, interpreted, dynamic programming language.<br />
<br />
#!/usr/bin/env perl<br />
print "Arch is the best!\n";<br />
<br />
;Perl 6: The latest member of the Perl family.<br />
<br />
#!/usr/bin/env perl6<br />
say 'Arch is the best!';<br />
<br />
;PHP: A general-purpose scripting language.<br />
<br />
<?php<br />
echo "Arch is the best!\n";<br />
<br />
;Pixilang: Make me pixels.<br />
<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
;Pony:An object-oriented, actor-model, capabilities-secure, high performance programming language.<br />
<br />
actor Main<br />
new create(env: Env) =><br />
env.out.print("Arch is the best!")<br />
<br />
;Portable GNU assembler: {{ic|as -o arch.o arch.s && ld -o arch -O0 arch.o}}<br />
<br />
.section .data<br />
archIsBest:<br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax<br />
xorl %ebx, %ebx<br />
incl %ebx<br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx<br />
int $0x80<br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx<br />
int $0x80<br />
<br />
;Processing: An open source programming language and IDE built for the electronic arts and visual design.<br />
<br />
println("Arch is the best!");<br />
<br />
;Prolog: A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
<br />
format('Arch is the best~n',[]).<br />
<br />
;Python: A general-purpose high-level programming language.<br />
<br />
print('Arch is the best!')<br />
<br />
;QBASIC: An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
<br />
PRINT "Arch is the best!"<br />
<br />
;R: A language for statistical computing (and much more!).<br />
<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
;Racket: A general purpose, multi-paradigm programming language in the Lisp-Scheme family.<br />
<br />
#lang racket<br />
<br />
(let ([str "Arch is the best!\n"])<br />
(write-string str)<br />
(values))<br />
<br />
;Ruby: A dynamic, reflective, general purpose object-oriented programming language.<br />
<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
;Rust: Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.<br />
<br />
fn main() {<br />
println!("Arch is the best!");<br />
}<br />
<br />
;Salt: Salt is an automation framework<br />
<br />
salt '*' event.fire '{"data":"Arch Is the best!"}' 'arch/best'<br />
<br />
;Scala: A multi paradigm language that runs on the JVM.<br />
<br />
object ArchIsBest extends App {<br />
println("Arch is the best!")<br />
}<br />
<br />
;Scheme: A dialect of Lisp.<br />
<br />
(display "Arch is the best!\n")<br />
<br />
;Seed: A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
;Shoes: A Ruby version using Shoes for a GUI.<br />
<br />
Shoes.app :width => 135, :height => 30 do<br />
para "Arch is the Best!"<br />
end<br />
<br />
;Smalltalk: Smalltalk is an object-oriented, dynamically typed, reflective programming language.<br />
<br />
Transcript show: 'Arch is the best!'.<br />
<br />
;SQL: Structured Query Language, the query language for relational databases<br />
<br />
SELECT 'Arch is the best!';<br />
SELECT 'Arch is the best!' from dual; -- for Oracle DB<br />
<br />
;Standard ML: A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
<br />
print "Arch is the best!\n"<br />
<br />
;Swift: A general-purpose, multi-paradigm, compiled programming language developed by Apple Inc.<br />
<br />
print("Arch is the best!")<br />
<br />
;Tcl/Tk: A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
;TrumpScript: A scripting language based on President Trump's words.<br />
<br />
say it with me, "Arch is the best!";<br />
america is great.<br />
<br />
;UEFI: An extensible firmware framework<br />
<br />
#include <Uefi.h><br />
EFI_STATUS EFIAPI<br />
ArchIsTheBest (<br />
IN EFI_HANDLE ImageHandle,<br />
IN EFI_SYSTEM_TABLE *SystemTable<br />
)<br />
{<br />
SystemTable -> ConOut-> OutputString(SystemTable->ConOut, L"Arch is the best!\n"); <br />
return EFI_SUCCESS;<br />
}<br />
<br />
;Vala: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.<br />
<br />
void main(string[] args) {<br />
stdout.printf("\nArch is the best!\n\n");<br />
}<br />
<br />
; var'aq: [http://www.reocities.com/connorbd/varaq/index.html A warrior's programming language]<br />
"Arch is the best!" cha'<br />
<br />
;VimScript: A scripting language for the Vim text editor.<br />
<br />
echo "Arch is the best!"<br />
<br />
; Wiring (Arduino):Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
}<br />
void loop()<br />
{<br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
;Visual Basic: A third-generation event-driven programming language and integrated development environment (IDE) from Microsoft for its Component Object Model (COM) programming model.<br />
<br />
Module Arch<br />
Sub Main()<br />
MsgBox("Arch is the best!")<br />
End Sub<br />
End Module<br />
<br />
; X11: X11 is an architecture independent system for display of graphical user interfaces.<br />
{{ic|cc -lX11 arch.c}}<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
;Zimbu: A fast, easy to learn, and JS-like programming language.<br />
<br />
FUNC Main() int<br />
IO.write("Arch is the best!")<br />
RETURN 0<br />
}<br />
<br />
;Zsh: A UNIX command interpreter (shell) closely resembling ksh, but includes many enhancements.<br />
<br />
#!/bin/zsh -f<br />
setopt extendedglob<br />
print -- $(tput setaf 2) ${$(<<<${${${(@j: :)${(@s:_:)${:-What_Linux_is_the_best?}}}/* (#b)([A-Z]i)/Arch $match[1]}} tr '?' '!')} $(tput sgr0)<br />
<br />
== Translations ==<br />
<br />
;Ancient Chinese<br />
阿祺,盡善矣。<br />
<br />
;Ancient Greek (Attic)<br />
Ἡ Ἁψίς ἀρίστη!<br />
<br />
;Arabic<br />
ارتش هو الأفضل<br />
<br />
;Australian<br />
Arch is fair dinkum, mate!<br />
<br />
;Bahasa Indonesia<br />
Arch terbaik!<br />
<br />
;Basque<br />
Arch onena da!<br />
<br />
;Belarusian<br />
Арч - самы лепшы!<br />
<br />
;Bengali<br />
আর্চ সবচেয়ে ভালো!<br />
<br />
;Brezhoneg<br />
Arch emañ ar gwellañ!<br />
;or<br />
Arch emañ ar matañ!<br />
<br />
;British<br />
Arch is simply spiffing.<br />
<br />
;Bulgarian<br />
Арч е най-добрият!<br />
<br />
;Catalan<br />
Arch és el millor!<br />
<br />
;Cantonese<br />
阿祺真係冇得頂!<br />
<br />
;Chinese (Mainland)<br />
Arch最棒了!<br />
<br />
;Chinese (Taiwan)<br />
Arch蠻贊的!<br />
<br />
;Czech<br />
Arch je nejlepší!<br />
<br />
;Croatian<br />
Arch je najbolji!<br />
<br />
;Danish<br />
Arch er bedst!<br />
<br />
;Doge<br />
So Arch, Much Good, Wow<br />
<br />
;Dutch<br />
Arch is het beste!<br />
;or<br />
Arch is de beste!<br />
(these have a slighty different meaning)<br />
<br />
;Esperanto<br />
Arch plejbonas!<br />
<br />
;Estonian<br />
Arch on parim!<br />
<br />
;Fikonspråket<br />
Firch Arkon fir äkon fist bäkon<br />
<br />
;Filipino<br />
Mabuhay ang Arch!<br />
<br />
;Finnish<br />
Arch on paras!<br />
<br />
;French<br />
Arch est le meilleur!<br />
<br />
;Fullwidth English<br />
Arch is the Best!<br />
<br />
;Galician<br />
Arch é o mellor!<br />
<br />
;German<br />
Arch ist das Beste!<br />
<br />
;German (Bernese-Swiss)<br />
Arch isch geil wine More!<br />
<br />
;Greek (Modern)<br />
Το Αρτς είναι το καλύτερο!<br />
<br />
;Haitian Creole<br />
Arch se meye bagay!<br />
<br />
;Hantec<br />
Arch je nejbetélnější!<br />
<br />
;Hebrew<br />
ארצ' זה הכי אחי!<br />
<br />
;Hindi<br />
आर्च सर्वोत्तम है ।<br />
<br />
;Hungarian<br />
Az Arch a legjobb!<br />
<br />
;Irish<br />
Arch é is fearr!<br />
<br />
;Italian<br />
Arch è il migliore!<br />
<br />
;Japanese<br />
Archが一番ですよ!<br />
<br />
;Kannada<br />
ಆರ್ಚ್ ಅತ್ಯುತ್ತಮವಾಗಿದೆ<br />
<br />
;Kazakh<br />
Арч - ең жақсы!<br />
<br />
;Klingon<br />
Arch'pu'ta"a'<br />
<br />
;Korean<br />
아치가 최고입니다!<br />
<br />
;Kurdish<br />
Arç herî baş e!<br />
<br />
;Latin<br />
Arch optimus est!<br />
<br />
;Latvian<br />
Arch ir labākais!<br />
<br />
;Leet<br />
4rch 15 7h3 b357!<br />
<br />
;Lithuanian<br />
Arch yra geriausias!<br />
<br />
;Lojban<br />
la .artc. xagrai<br />
;or for those who prefer an experimental grammar:<br />
la'oi Arch xagrai<br />
(to mi catlu do doi la bauspo fazykamni toi)<br />
<br />
;Lolcat<br />
ARCH IZ TEH BEST!<br />
<br />
;Malayalam<br />
ആർച് ആണ് ഏറ്റവും നല്ലത്<br />
<br />
;Mapudungun<br />
writting system: Unificado<br />
Doy kümei Arch<br />
writting system: Raguileo<br />
Zoy kvmey Arc<br />
writting system: Azümchefe (Used in Windows XP)<br />
Zoi kümei Arch<br />
writting system: Nhewenh<br />
Zoi kvmei Arch<br />
writting system: Wirizüŋun<br />
Zoy kümey Arch ''or'' Zoy kvmey Arch<br />
<br />
;Marathi<br />
आर्च सगळ्यात भारी आहे!<br />
<br />
;Nepali<br />
आर्च सबैभन्दा राम्रो हो!<br />
<br />
;Norwegian<br />
Arch er best!<br />
<br />
;Old English<br />
Arch biþ betst!<br />
<br />
;Occitan (lenga d'òc)<br />
Arch es lo melhor!<br />
<br />
;Persian<br />
آرچ بهترین است<br />
<br />
;Pig Latin<br />
Archway isway ethay estbay!<br />
<br />
;Polish<br />
Arch jest najlepszy!<br />
<br />
;Portuguese<br />
Arch é o melhor!<br />
<br />
;Québécois<br />
Arch c'est le plus meilleure du monde!<br />
<br />
;Romanian<br />
Аrch e cel mai bun!<br />
<br />
;Russian<br />
Арч — лучший!<br />
<br />
;Rövarspråket (English)<br />
Arorcochoh isos tothohe bobesostot.<br />
<br />
;Rövarspråket (Swedish)<br />
Arorcochoh äror bobäsostot!<br />
<br />
;Serbian<br />
Arch je najbolji!<br />
<br />
;Shona<br />
Arch iripamberi!<br />
<br />
;Singaporean<br />
Arch the best lah!<br />
<br />
;Slovak<br />
Arch je najlepší!<br />
<br />
;Slovenian<br />
Arch je najboljši!<br />
<br />
;Spanish (Standard)<br />
¡Arch es el mejor!<br />
<br />
;Spanish (Argentina)<br />
Arch es una mazza!!<br />
<br />
;Spanish (Chile)<br />
Arch es bacán<br />
<br />
;Spanish (Chile, alternative)<br />
Arch es la raja<br />
<br />
;Spanish (Chile, marginal)<br />
(written in IPA because standard Spanish doesn't have these sounds)<br />
ˈæɹʃ ɛːʰ tɜ.rˈiː.u.lɛ la rˈa.χa ʃʊ.ɹʊ<br />
<br />
;Spanish (Guatemala)<br />
¡Arch está bien chilero!<br />
<br />
;Spanish (Guatemala, alternative)<br />
¡Arch es la mera tos!<br />
<br />
;Spanish (Uruguay)<br />
¡Arch la rompe!<br />
<br />
;Spanish (Venezuela, standard)<br />
Marico, Arch es la vaina más arrecha.<br />
<br />
;Spanish (Venezuela, maracucho)<br />
Que molleja de bueno es Arch.<br />
<br />
;Swahili<br />
Arch ndiyo bora zaidi<br />
<br />
;Swedish<br />
Arch är bäst!<br />
<br />
;Turkish<br />
Arch en iyisidir!<br />
<br />
;Tamil<br />
ஆர்ச்சே சிறந்தது!<br />
<br />
;Telugu<br />
ఆర్చ్ ఉత్తమమైనది!<br />
<br />
<br />
;Thai<br />
อาค์ชเทพเมพขิงขิง<br />
<br />
;Toki Pona<br />
Arch li pona mute!<br />
<br />
;Ukrainian<br />
Arch — найкращий!<br />
<br />
;Urdu<br />
آرچ سب سے بہتر ہے!<br />
<br />
;Vietnamese<br />
Arch là tốt nhất!<br />
<br />
;Welsh (Cymraeg)<br />
<br />
Emphasis on Arch:<br />
Arch sydd yr orau un!<br />
Arch sydd y gorau un!<br />
<br />
Emphasis on being the best (one):<br />
Yr orau un yw Arch!<br />
Y gorau un yw Arch!<br />
<br />
== Encodings ==<br />
<br />
;ASCII Banner<br />
<br />
{{Text art|<nowiki><br />
_ _ _ _ _ _ _<br />
/\ | | (_) | | | | | | | | | |<br />
/ \ _ __ ___| |__ _ ___ | |_| |__ ___ | |__ ___ ___| |_| |<br />
/ /\ \ | '__/ __| '_ \ | / __| | __| '_ \ / _ \ | '_ \ / _ \/ __| __| |<br />
/ ____ \| | | (__| | | | | \__ \ | |_| | | | __/ | |_) | __/\__ \ |_|_|<br />
/_/ \_\_| \___|_| |_| |_|___/ \__|_| |_|\___| |_.__/ \___||___/\__(_)<br />
</nowiki>}}<br />
<br />
;Base64<br />
{{hc|$ echo 'Arch is the best!' {{!}} base64|<br />
QXJjaCBpcyB0aGUgYmVzdCEK<br />
}}<br />
<br />
;Binary ASCII<br />
{{hc|1=$ echo 'Arch is the best!' {{!}} perl -lpe '$_=unpack"B*"'|2=<br />
0100000101110010011000110110100000100000011010010111001100100000011101000110100001100101001000000110001001100101011100110111010000100001<br />
}}<br />
<br />
;Braille<br />
⠁⠗⠉⠓⠀⠊⠎⠀⠮⠀⠃⠑⠎⠞⠲<br />
<br />
;Desrever (Reversed)<br />
{{hc|$ echo 'Arch is the best!' {{!}} rev|<br />
!tseb eht si hcrA<br />
}}<br />
<br />
;h4x0r<br />
4rch 15 7h3 b357!<br />
<br />
;Hexadecimal ASCII<br />
{{hc|1=$ echo 'Arch is the best!' {{!}} perl -lpe '$_=unpack"H*"'|2=<br />
4172636820697320746865206265737421<br />
}}<br />
<br />
;Morse Code<br />
.- .-. -.-. ..../.. .../- .... ./-... . ... -<br />
<br />
;ROT13<br />
{{hc|$ echo 'Arch is the best!' {{!}} tr 'A-Za-z' 'N-ZA-Mn-za-m'|<br />
Nepu vf gur orfg!<br />
}}<br />
<br />
;Rotated 180°<br />
¡ʇsǝq ǝɥʇ s! ɥɔɹ∀<br />
<br />
;URL Encoded<br />
Arch%20is%20the%20best!<br />
<br />
== Hashes ==<br />
<br />
;md5sum<br />
2d9092e089d77a8e23f47ba3dfe77027<br />
<br />
;sha1sum<br />
7f6ed0bf29abbd7e796ca1311c84a7a21a68a656<br />
<br />
;sha224sum<br />
af15cd556676d37f916a35e2cf74f04cf7b1805b3244ec418c3927d8<br />
<br />
;sha256sum<br />
107139d6b9a15fd97acf743e5806823c8ff868fde8b7c28cfcc2c9184df644ae<br />
<br />
;sha384sum<br />
769ec295d876483aa6cec7ff7997296c8ff2236630b0e48b059576143b60ab30adefec9321d8acc2a133219dfb302bc5<br />
<br />
;sha512sum<br />
b0917f66d05278106808d25f51001b038856fa7171b935d450b4bcbf1e8b82ed6a5a2f49d99734e1efc7ad3d1b8a33519008635d4e1aa3e65a5e70c4de649aad<br />
<br />
;sha3-224sum<br />
D650C03EC4CBAD76DED2CDE5232128F46CA311B266EC09C36D349728<br />
<br />
;sha3-256sum<br />
9FEC011CC05F1430A3832019B72F280536F1E395F067C3E53193A70F082D193B<br />
<br />
;sha3-384sum<br />
3CBFAAAA2509DAFA6804F5CDF5271594F7D6F44038BB342C7BBC802047C05BE98C8AF6020EBB51291188AC99D6803F52<br />
<br />
;sha3-512sum<br />
E30381FFC93C3E727FCF080C2A46852C042517899D8E823435B99A94345C3F95A25FA11DFEE422ED7C7FD009893B5482BEBA87B7FF3B546D4655ADB6EAE410F8</div>Betseghttps://wiki.archlinux.org/index.php?title=Laptop/Lenovo&diff=552500Laptop/Lenovo2018-11-01T22:53:25Z<p>Betseg: /* IdeaPad */</p>
<hr />
<div>[[Category:Lenovo]]<br />
[[ja:ノートパソコン/Lenovo]]<br />
{{Laptops navigation}}<br />
{{Related articles start}}<br />
{{Related|ThinkPad docks}}<br />
{{Related articles end}}<br />
<br />
== IBM/Lenovo ==<br />
<br />
=== ThinkPad ===<br />
<br />
==== Edge series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| [[Lenovo ThinkPad Edge E330]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad Edge E335]] || NA || Yes || Yes || Yes || Yes || NA || Yes || NA || ||<br />
|-<br />
| Lenovo ThinkPad Edge E420s || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || SDcard (Yes), Webcam (Yes), Trackpoint (No) || <br />
|-<br />
| [[Lenovo ThinkPad Edge E430]] || Yes || Yes || Yes* || Yes* || Not tested || Yes || NA || NA || SD card (yes) || <br />
|-<br />
| [[Lenovo ThinkPad Edge E455]] || 2015.04.01 || Yes* || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| Lenovo ThinkPad Edge E470 || 2017.09.01 || Yes || Yes || Yes || Yes || Not tested || NA || NA || trackpoint (yes) ||<br />
|-<br />
| Lenovo ThinkPad Edge E530 || Yes || Yes || Yes* || Yes* || Yes || Yes || NA || NA || SD card (yes), Finger Print (yes) || E530 without fingerprint reader can be equipt with one.<br />
|-<br />
| Lenovo ThinkPad Edge E531 || Yes || Yes || Yes || Yes || Yes* || Yes || Yes || NA || SD card (yes), Touch Pad/Trackpoint (yes), Webcam (yes) || WiFi only works with {{Pkg|broadcom-wl-dkms}}<br />
|-<br />
| Lenovo ThinkPad Edge E540 || 2015.08.01 || Yes || Yes || Yes || Yes || Yes || Yes* || NA || SD card (yes), Finger Print (yes), touch pad and trackpoint (yes), Webcam (yes) || <br />
|-<br />
| Lenovo ThinkPad Edge E545 || NA || Yes || Yes || Yes || Yes* || Not tested || Yes || NA || SD card (yes), touch pad and trackpoint (yes) Webcam (yes) || wifi works only with {{Pkg|broadcom-wl-dkms}}<br />
|-<br />
| Lenovo ThinkPad Edge E580 || 2018.05.01 || Yes || Yes || Yes || Yes || Yes || Yes || NA || Fingerprint sensor doesn't work because of proprietary firmware || ||<br />
|-<br />
|}<br />
<br />
==== E series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo ThinkPad E485 || 2018-10-01 || Yes || Yes || Yes || Yes || Not tested || Not tested || N/A || || if screen stays black immediately after boot, add <code>iommu=soft</code> in [[kernel parameters]]<br />
|-<br />
|}<br />
<br />
==== L series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| [[Lenovo ThinkPad L380 Yoga]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || Trackpoint*, Fingerprint reader ||<br />
|-<br />
| Lenovo ThinkPad L420 || Yes || Yes || Yes || Yes || Yes || Not tested || Yes || NA || ||<br />
|-<br />
| Lenovo ThinkPad L430 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || Trackpoint* ||<br />
|-<br />
| Lenovo ThinkPad L520 || 2018.09.01-x86_64|| Yes || Yes || Yes || Yes || Not tested|| Not tested|| Not tested|| Not tested ||<br />
|-<br />
| Lenovo ThinkPad L530 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || Trackpoint*, Fingerprint reader ||<br />
|-<br />
|}<br />
<br />
==== P series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| [[Lenovo ThinkPad P50]] || 2016.04 || Yes || Yes || Yes || Yes || Yes || Suspend working, hibernate not tested || NA || SD card (Yes), Webcam (Yes), Fingerprint Reader ({{AUR|libfprint-vfs0090-git}}), || Wifi requires Kernel 4.3.3+ <br />
|-<br />
| [[Lenovo ThinkPad P70]] || 2016.04 || Yes || Yes || Yes || Yes || Yes || Suspend working, hibernate not tested || NA || SD card (Yes), Webcam (Yes), Fingerprint Reader (No), || Wifi requires Kernel 4.3.3+ <br />
|-<br />
| Lenovo ThinkPad P51 || Unknown || Yes || Yes || Yes || Yes || Yes || Yes || Yes (No GNSS/GPS) ||<br />
* Working: SD card, Webcam, Express card, Smartcard reader, Fingerprint Reader ({{AUR|libfprint-vfs0097-git}})<br />
* Not working: TPM, Color calibrator, UEFI flash <br />
|| HDMI audio requires nvhda module<br />
|-<br />
| [[Lenovo ThinkPad P52]] || 2018.09 || Yes || Yes || Yes || Yes || Unknown || Suspend working, hibernate not tested || NA || Touchpad (No) ||<br />
|-<br />
|}<br />
<br />
==== T series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| IBM ThinkPad T60 || Yes || Yes || Yes || Yes || Yes || Yes || ? || NA || ||<br />
|-<br />
| IBM ThinkPad T60p || Yes || Yes || Yes || Yes || Yes || Yes || ? || NA || ThinkFinger ||<br />
|-<br />
| [[IBM ThinkPad T61]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || || ||<br />
|-<br />
| IBM ThinkPad T61p || Yes || Yes || Yes || Yes || Yes || Yes || NA || || ||<br />
|-<br />
| [[Lenovo ThinkPad T400]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad T400s]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| Lenovo ThinkPad T410 || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad T420]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || Card reader tested, no Fingerprint scanner||<br />
|-<br />
| [[Lenovo ThinkPad T420s]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || Card Reader ||<br />
|-<br />
| [[Lenovo ThinkPad T430]] || Yes || Yes || Yes || Yes || Yes || Yes* || Yes* || Not tested || ||<br />
|-<br />
| [[#Lenovo ThinkPad T440p|Lenovo ThinkPad T440p]] || Yes || Yes || Yes || Yes || Yes || Yes* || NA || NA || Card Reader || See below<br />
|-<br />
| [[Lenovo ThinkPad T440s]] || Yes || Yes || Yes || Yes || Yes* || ? || Yes || ? || || See wiki page for more details about wireless<br />
|-<br />
| [[Lenovo ThinkPad T450s]] || 2015.10.01 || Yes || Yes || Yes || Yes || Yes || ? || NA || SD Card reader; fingerprint scanner|| <br />
|-<br />
| [[Lenovo ThinkPad T460s]] || Yes || Yes || no beep || Yes || Yes || Yes || ? || NA || SD Card reader|| <br />
|-<br />
| [[Lenovo ThinkPad T25]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD Card reader; fingerprint scanner; Touchscreen|| <br />
|-<br />
| [[Lenovo ThinkPad T470]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD Card reader; fingerprint scanner|| <br />
|-<br />
| [[Lenovo ThinkPad T470s]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD Card reader; fingerprint scanner|| <br />
|-<br />
| [[Lenovo ThinkPad T480]] || 2018.07.01 || Yes || Yes || Yes || Yes || Yes || ? || NA || Thunderbolt 3 (USB-C); SD Card reader; fingerprint scanner|| <br />
|-<br />
| [[Lenovo ThinkPad T480s]] || 2018.03.01 || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD Card reader; Thunderbolt 3 (USB-C)|| For [[Hardware_video_acceleration|video h/w acceleration]] install {{AUR|chromium-vaapi-bin}} and ensure to enable acceleration in {{ic|about:flags}}. Check everything is working in {{ic|about:gpu}}.<br />
|-<br />
| Lenovo ThinkPad T500 || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad T520]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad T530]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad T550]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || DisplayPort ||<br />
|-<br />
| Lenovo ThinkPad T560 || Yes || Yes || Yes || Yes || Yes || Yes || Yes* || NA || MiniDP; Fingerprint scanner; Intel + Nvidia GPU; Card Reader || See special notes for the hardware specifications of this test device<br />
|-<br />
| [[Lenovo ThinkPad T570]] || Yes || Yes || Yes || Yes || Yes || ? || Yes* || NA || not yet fully tested || <br />
|-<br />
| Lenovo ThinkPad T580 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD Card Reader is supported; [https://forums.lenovo.com/t5/Linux-Discussion/Thinkpad-T580-Synaptics-Metallica-MIS-Touch-Fingerprint-Reader/m-p/4057745 Fingerprint reader is not supported] || Tested on ''2 May 2018'' (with ''Linux 4.16.5'')<br />
|}<br />
<br />
==== W series ====<br />
{{HCL/Laptops table header}}<br />
|-<br />
| Lenovo ThinkPad W510 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Touchscreen (Yes), Fingerprint Reader (Not tested) || Tested April 2017 / Linux 4.10.8<br />
|-<br />
| Lenovo ThinkPad W530 || 2016.03 || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Fingerprint Reader (Yes) || Tested April 2018 / Linux 4.15.15<br />
|-<br />
| Lenovo ThinkPad W540 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Fingerprint Reader (Yes) || Tested April 2017 / Linux 4.10.8<br />
|-<br />
| Lenovo ThinkPad W541 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || Not tested || SD card (Yes), Webcam (Yes), Fingerprint Reader (Not tested) || Tested August 2018 / Linux 4.17.12<br />
|-<br />
| Lenovo ThinkPad W550s || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Fingerprint Reader (Yes) || Tested April 2018 / Linux 4.15.15<br />
|-<br />
|}<br />
<br />
==== X series ====<br />
<br />
{{HCL/Laptops table header}}<br />
| [[IBM ThinkPad X60s]] || Yes|| Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| Lenovo ThinkPad X61s || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD slot ||<br />
|-<br />
| [[Lenovo ThinkPad X100e]] || Yes|| Yes || Yes || Yes || Yes || Yes || Not tested || NA || SD card (Yes), Webcam (Yes) ||<br />
|-<br />
| [[Lenovo ThinkPad X200]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || Yes || ||<br />
|-<br />
| [[Lenovo ThinkPad X200S]] || Yes || Yes || Yes || Yes || Yes || Not tested || NA || Not tested || Everything worked out of the box. However, fingerprint, SD card and webcam were not tested ||<br />
|-<br />
| [[Lenovo ThinkPad X201]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || Not tested || ||<br />
|-<br />
| [[Lenovo ThinkPad X220]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes) ||<br />
|-<br />
| [[Lenovo ThinkPad X230]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), UMTS Modem (Yes) ||<br />
|-<br />
| [[Lenovo ThinkPad X240]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || WWAN LTE (yes) || SD card (Yes), Webcam (Yes), Fingerprint (yes) ||<br />
|-<br />
| [[Lenovo ThinkPad X250]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Fingerprint (yes) ||<br />
|-<br />
| [[Lenovo ThinkPad X260]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || SD card (Yes), Webcam (Yes), Fingerprint (yes) ||<br />
|-<br />
| Lenovo ThinkPad X270 || Yes || Yes || Yes || Yes || Yes || Not tested || Yes || NA || Webcam (yes) ||<br />
|-<br />
| Lenovo ThinkPad X280 || Yes || Yes || Yes || Yes || Yes || Not tested || Yes || NA || Webcam (yes) ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Carbon]] || NA || Yes || Yes || Yes || Yes || Proprietary/nonfree || Yes || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Carbon (Gen 2)]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Carbon (Gen 3)]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Carbon (Gen 4)]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Carbon (Gen 5)]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || Yes || ||<br />
|-<br />
| [[Lenovo ThinkPad X1 Carbon (Gen 6)]] || NA || Yes || Yes || Yes || Yes || Yes || Yes || Yes || ||<br />
|_<br />
|}<br />
<br />
==== Yoga Series ====<br />
{{HCL/Laptops table header}}<br />
| [[Lenovo ThinkPad Yoga 260]] || USB || Yes || Yes || Yes || Yes || Yes || Unknown || Yes || SD card (Yes), Webcam (Yes), Fingerprint Reader (Unknown), Touchscreen (Yes), Tablet (Partial), Accelerometer (No) || Wifi requires Kernel 4.3.3+<br />
|-<br />
|}<br />
<br />
==== Helix Series ====<br />
{{HCL/Laptops table header}}<br />
| [[Lenovo ThinkPad Helix]] || Unknown || YES || YES || NA || YES || YES || NA || Touchscreen (yes), Pen (yes), Sensors (yes) || ||<br />
|-<br />
| [[Lenovo ThinkPad Helix 2nd Gen]] || 2018.04.01 (USB) || YES || YES || NA || YES || Not tested || Yes* (with updated BIOS) || Touchscreen (yes), Pen (not tested), Sensors (w/ patched kernel) || NA || Only suspend-to-idle ("freeze") is supported<br />
|-<br />
|}<br />
== Lenovo ==<br />
<br />
=== IdeaPad ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo IdeaPad 120S || 2018-04-26 || Yes || Yes || NA || Yes || Yes || Yes || NA || Everything works ||<br />
|-<br />
| [[Lenovo IdeaPad Flex 10]] || Yes || Yes* || Yes || NA || Yes || Yes || Yes || NA || Touchscreen* ||<br />
|-<br />
| [[Lenovo IdeaPad S10]] || Yes || Yes || Yes || Yes || Yes || Yes || NA || NA || ||<br />
|-<br />
| [[Lenovo IdeaPad S400 Touch]] || Yes || Yes || Yes || Yes || Yes || Yes || Not tested || NA || ||<br />
|-<br />
| Lenovo IdeaPad U430p || Yes || Yes || Yes || Yes || Yes || Yes || Not tested || NA || ||<br />
|-<br />
| Lenovo IdeaPad Y700 || 2015.12.01 || Yes || Yes* || Yes || Yes || Yes || Not tested || NA || Trackpad - [https://unix.stackexchange.com/questions/362165/lenovo-y700-elantech-touchpad-query-0x01-failed buggy] || [https://bugzilla.kernel.org/show_bug.cgi?id=151681 Trackpad requires pata_legacy to be blacklisted]<br />
|-<br />
| [[Lenovo IdeaPad Z580]] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || NA || ||<br />
|-<br />
| [[Lenovo IdeaPad 720s]] || 2018.03.01 || Yes || Yes || NA* || Yes || Yes || Yes || NA || Fingerprint reader not working || *requires USB or USB C dongle<br />
|-<br />
| [[Lenovo IdeaPad 720s (Ryzen)]] || 2018.02.01 || Not tested || Not tested || Yes* || No || Not tested || Not tested || NA || Fingerprint reader not tested but most likely not working || *requires USB or USB C dongle<br />
|-<br />
| Lenovo Ideapad 320 || 2018.03.01 || Yes || Yes || Yes || Yes || Not tested || Not tested || NA || To stop constant annoying messages by AMD-Vi, use 'iommu=soft' & 'amd_iommu=off' in kernel arguments || <br />
|-<br />
| Lenovo Ideapad N24 || 2018.04.01 || Yes || Yes || NA || Yes || Not tested || Not tested || NA || Touchscreen || <br />
|-<br />
|}<br />
<br />
=== B series ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo B50 || NA || Yes || Yes || Yes || Yes || Not tested || Not tested || Not tested || ||<br />
|-<br />
| Lenovo B50-70 || Yes || Yes* ||Yes || Yes || Yes || Yes || Not tested || NA || See below* ||<br />
|-<br />
| Lenovo B450 || Yes || Yes ||Yes || Yes || Yes || NA || Not tested || NA || ||<br />
|-<br />
|}<br />
<br />
=== K series ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo K450e || NA || Yes || Yes || Yes || Yes || Not tested || Yes || Not tested || ||<br />
|-<br />
|}<br />
<br />
=== N series ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo N200 (3000) || Yes || Yes* || Yes || Yes || Yes || Yes* || NA || NA || See below ||<br />
|-<br />
|}<br />
<br />
=== S series ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo S21e-20 || 2015.07.01 || Yes || Yes || NA || Yes* || ? || Yes || NA || SD Card (Yes), USB 3.0 (Yes), HDMI Out (?), Touchpad (Yes*) ||<br />
|-<br />
|}<br />
<br />
=== U Series ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo U31-70 || 2015.10.01 || Yes || Yes || Yes || Yes* || Yes || Yes || NA || SD Card (Yes), USB 3.0 (Yes), HDMI Out (Yes), Touchpad (Yes), Webcam (Yes) ||<br />
|-<br />
|}<br />
<br />
=== V Series ===<br />
<br />
{{HCL/Laptops table header}}<br />
| Lenovo V110-15ISK || ??? || Yes || Yes || Yes || Yes || Not Tested || Yes || NA || SD Card (Not Tested), USB 3.0 (Not Tested), HDMI Out (Not Tested), Touchpad (Yes), Webcam (Yes) ||<br />
|-<br />
| Lenovo V330-15IKB || 2018.10.01 || Yes || Yes || Yes || Yes || Not Tested || Yes || NA || Fingerprint (No), Touchpad (Yes), Webcam (Yes) ||<br />
|-<br />
|}<br />
<br />
=== Y series ===<br />
{{HCL/Laptops table header}}<br />
| Lenovo Legion Y520 || 2017.12.01 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || SD card (Not tested), Webcam (Not tested), USB & USB 3.0 (Yes) || Tested December 2017 / Linux 4.14.8. Must change SATA configuration in BIOS from RAID to AHCI in order to recognize SSD.<br />
|-<br />
|}<br />
<br />
== Special Notes (*): ==<br />
<br />
{{Accuracy|Lots of vague or unproven bugs/workarounds, poor writing}}<br />
<br />
=== Lenovo U31-70 ===<br />
Wireless needs {{Pkg|linux}} >= 4.3 and latest {{Pkg|linux-firmware}}, both packages are currently in testing. Copy one of the firmware blobs {{ic|eeprom_ar6320_2p1_NFA345i.bin}} or {{ic|eeprom_ar6320_2p1_NFA345i_highTX.bin}} from the windows driver to {{ic|/usr/lib/firmware/ath10k/QCA6174/hw2.1/board-pci-168c:0041:17aa:3545.bin}}.<br />
<br />
Wireless with firmware blobs from windows driver may no longer work on {{Pkg|linux}} >= 4.4. Download firmware blob https://github.com/kvalo/ath10k-firmware/blob/f428f53b36b144971c9c4c3d2ebd5fa8cae86c89/QCA6174/hw2.1/board-2.bin and copy it to {{ic|/usr/lib/firmware/ath10k/QCA6174/hw2.1/board-2.bin}}. Tested with {{Pkg|linux}} 4.4.5-1 and {{Pkg|linux-firmware}} 20160113.40e9ae8-1nu<br />
<br />
With packages {{Pkg|linux}} 4.6.1-2 and {{Pkg|linux-firmware}} 20160516.80d463b-1 being in stable, wireless works without any additional steps needed.<br />
<br />
=== Lenovo B50-70 ===<br />
* UEFI:<br />
** to be able to disable Secure Boot (necessary for dual boot, not needed for Linux only), you have to switch from "UEFI first" to "UEFI only" (or something like this) in UEFI setup menu; the Secure Boot option appears then on the Security tab<br />
** after UEFI update having Linux and Windows installed, the Linux bootloader ceased to be the default one, UEFI started to load Windows by default and it was impossible to select the Linux one in the UEFI boot menu and in the UEFI setup - reinstalling the bootloader helped; having no access to a boot media that supports UEFI, a solution might be also replacing the Windows EFI bootloader file with a Linux one temporalily, in order to be able to boot Linux from HDD<br />
** for the UEFI update, a Windows OS is needed<br />
* Touchpad:<br />
** Synaptics - works after installing Synaptics drivers from repo, possible to change behaviour (like reaction for double tap) according to your wish<br />
* Video:<br />
** in laptops with dual video card (Intel and ATI) - detects both, Intel is active as a default, not checked if it's possible at all to switch between them<br />
<br />
==== Operation with a HDD caddy ====<br />
When you install an SSD in the place of the plate HDD drive and you want to have your HDD still inside the laptop, it is possible to install it in the place of the optical drive in a special "HDD caddy". The optical drive is of 9 mm height, but a 9,5 mm caddy (ultra slim) fits in the slot. A caddy with a SATA interface is needed. It is difficult to separate the front bezel from the original optical drive (and opening its case does not help, but brings a danger of making a mess in the opening mechanism; the only option is just to pull the bezel using a bit of force, but you risk breaking the latches).<br />
<br />
While the HDD installed instead of the optical drive operates flawlessly in Windows, it was not going to work out of the box in Linux, at least in one case. The kernel tries to establish a connection with the disk, but fails to do it (''SATA link down'' entry in /var/log/messages). The solution is to force a 1.5 Gbps transfer speed (instead of 6 Gbps) by adding a ''libata.force='' kernel parameter. See [https://www.kernel.org/doc/Documentation/kernel-parameters.txt] for details.<br />
<br />
=== Lenovo K450e ===<br />
<br />
After installing Arch Linux and booting, a single beep may be heard. To disable this beep, press F1 during startup, then change Boot Priority to 'UEFI First', as well as enabling 'CSM'.<br />
<br />
=== ThinkPad X1 Carbon 3rd ===<br />
<br />
* http://natalian.org/archives/2015/02/18/Archlinux_on_a_Lenovo_X1C3/<br />
<br />
=== Lenovo 3000 N200 ===<br />
<br />
* Sound:<br />
** You may have to append {{ic|1=options snd_hda_intel model=lenovo}} to {{ic|/etc/modprobe.d/modprobe.conf}} for sound to work.<br />
<br />
=== Lenovo ThinkPad T430 ===<br />
{{Accuracy | I was not able to reproduce this bug as of September 2017 }}<br />
<br />
* Bluetooth (0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad]) appears to be functional, even during standby or hibernation.<br />
<br />
=== Lenovo ThinkPad T440p ===<br />
<br />
* ClickPad: the whole trackpad clicks, and disabling the trackpad using older versions of synclient makes the trackpoint essentially unusable. This has been resolved in newer versions of {{Pkg|xf86-input-synaptics}}.<br />
** See [http://who-t.blogspot.com.au/2014/03/xorg-synaptics-support-for-lenovo-t440.html this article] and [http://who-t.blogspot.com.au/2013/12/lenovo-t440-touchpad-button.html previous version].<br />
** Install {{AUR|xf86-input-synlx40}}{{Broken package link|{{aur-mirror|xf86-input-synlx40}}}} and {{AUR|xf86-input-mtrack}} for alternative drivers.<br />
* Audio:<br />
** HDMI audio is the default audio output device. Consult the [[ALSA]] page for details on changing the default.<br />
** As the X100e/Mini10, it's possible to mute the headset and speaker outputs separately to the master. Muting the speaker output improves bass output on the headset port.<br />
** If the system fails to wake from sleep, it can lose sync with the internal audio card and speakers/headphones may fail to work. In this case, put the system to sleep, and wake it again and audio functionality should be restored. <br />
* The fingerprint sensor is a Validity VFS5011, which requires [https://github.com/abbradar/fprint_vfs5011 a patched fprintd] and is apparently highly unreliable.<br />
* thinkpad_acpi:<br />
** To toggle Fn-Lock, press Fn + Esc, this will toggle the LED on the keyboard. While the Fn LED is on all Fn functionalities work as intended out of the box. <br />
** Controlling the 'glowing I' LED is apparently not possible.<br />
** fan control does not seem to work.<br />
* Graphics and Video:<br />
** With the integrated GPU, [[xrandr]] can crash while attaching or detaching displays connected via the dock.<br />
** The built-in miniDisplayPort will sometimes spew I²C issues into the kernel log.<br />
** [[Hardware video acceleration]] is highly recommended as it performs significantly better than CPU decoding of large media files.<br />
** '''The BIOS should not be upgraded past version 1.14, as newer BIOSes cause memory corruption when used with Bumblebee.''' See [https://github.com/Bumblebee-Project/bbswitch/issues/78#issuecomment-42741698 Bumblebee GitHub]<br />
* Connectivity:<br />
** Bluetooth is ''extremely'' fragile. The controller works fine most of the time, but can cause the system to wedge totally on sleep/wake cycles, especially if a connection was active at sleep. Disable the controller using {{ic|bluetoothctl}} before sleeping.<br />
<br />
=== Lenovo ThinkPad T560 ===<br />
* No automatic brightness adjusting when switching power supply battery <-> AC<br />
<br />
* Hardware specifications of test device<br />
** CPU: Intel CORE i7-6600U @ 2.60GHz or Intel CORE i5-6200U @ 2.30GHz or Intel CORE i5-6300U @ 2.40GHz<br />
** GPU Primary: Intel HD 520<br />
** GPU Secondary: Nvidia GeForce 940MX or None<br />
** WiFi: Intel 8260<br />
** Ethernet: Intel I219-LM<br />
** Card reader: Realtek RTS522A<br />
<br />
=== Lenovo S21e-20 ===<br />
* Tested with {{Pkg|broadcom-wl-dkms}} 802.11 wireless driver<br />
* Synaptics touchpad required 3 patches to {{Pkg|linux}}:drivers/hid/hid-rmi.c on 2015-07-26 ([https://bugs.freedesktop.org/show_bug.cgi?id=91102 bug report], [https://github.com/harisokanovic/archlinux-packages/commit/f4550c211ca7809ecf926f8074c7b7250a74bd92 kernel recipe patch]). The current 4.3 kernel includes these patches. You will also need to install the xf86_64-input-synaptics package([https://www.archlinux.org/packages/?name=xf86-input-synaptics]) <br />
<br />
==== tpacpi-bat ====<br />
<br />
There is an issue with tpacpi-bat not reporting the right value for the stop threshold. This seems to be related to a buggy BIOS and can not be fixed application wise. <br />
<br />
See https://github.com/teleshoes/tpacpi-bat/issues/44<br />
<br />
==== ThinkPad Edge E420s Delay with Space Bar====<br />
Solution: Update BIOS (at least 1.08).<br />
<br />
=== Lenovo IdeaPad Y700 ===<br />
* The subwoofer does not work out of the box.<br />
** Updating to Kernel 4.15 or later seems to fix the subwoofer.<br />
<br />
== See also ==<br />
* [http://www.thinkwiki.org/wiki Think wiki]</div>Betseghttps://wiki.archlinux.org/index.php?title=Mirrors&diff=529979Mirrors2018-07-16T08:16:03Z<p>Betseg: /* Netherlands */ is now an official T2 mirror</p>
<hr />
<div>[[Category:About Arch]]<br />
[[Category:Package management]]<br />
[[ar:Mirrors]]<br />
[[es:Mirrors]]<br />
[[fr:Miroirs]]<br />
[[it:Mirrors]]<br />
[[ja:ミラー]]<br />
[[pt:Mirrors]]<br />
[[ru:Mirrors]]<br />
[[zh-hans:Mirrors]]<br />
{{Related articles start}}<br />
{{Related|pacman}}<br />
{{Related articles end}}<br />
<br />
This page is a guide to selecting and configuring your mirrors, and a listing of current available mirrors.<br />
<br />
== Official mirrors ==<br />
<br />
The official Arch Linux mirror list is available from the {{pkg|pacman-mirrorlist}} package. To get an even more up-to-date list of mirrors, use the [https://www.archlinux.org/mirrorlist/ Pacman Mirrorlist Generator] page on the main site.<br />
<br />
Check the status of the Arch mirrors by visiting the [https://www.archlinux.org/mirrors/status/ Mirror Status] page. It is recommended to only use mirrors that are up to date, i.e. not out of sync.<br />
<br />
If you want your mirror to be added to the official list, see [[DeveloperWiki:NewMirrors]]. In the meantime, add it to the [[#Unofficial mirrors]] list at the end of this page.<br />
<br />
=== IPv6-ready mirrors ===<br />
<br />
The [https://www.archlinux.org/mirrorlist/?ip_version=6 Pacman Mirrorlist Generator] can also be used to find a list of current IPv6 mirrors.<br />
<br />
== Enabling a specific mirror ==<br />
<br />
To enable mirrors, edit {{ic|/etc/pacman.d/mirrorlist}} and locate your geographic region. Uncomment mirrors you would like to use.<br />
<br />
Example:<br />
<br />
# Any<br />
# Server = <nowiki>ftp://mirrors.kernel.org/archlinux/$repo/os/$arch</nowiki><br />
'''Server = <nowiki>http://mirrors.kernel.org/archlinux/$repo/os/$arch</nowiki>'''<br />
<br />
See [[#Sorting mirrors]] for tools that help choosing mirrors.<br />
<br />
{{Tip|<br />
* Uncomment 5 favorite mirrors and place them at the top of the mirrorlist file. That way it's easy to find them and move them around if the first mirror on the list has problems. It also makes merging mirrorlist updates easier.<br />
* HTTP mirrors are faster than FTP due to [[Wikipedia:HTTP persistent connection|persistent HTTP connection]]: with FTP, a new connection to server has to be established each time ''pacman'' requests a package to be downloaded, which results in a brief pause.<br />
}}<br />
<br />
It is also possible to specify mirrors in {{ic|/etc/pacman.conf}}. For the ''[core]'' repository, the default setup is:<br />
[core]<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
To use the ''HostEurope'' mirror as a default mirror, add it before the {{ic|Include}} line:<br />
[core]<br />
'''Server = <nowiki>ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/core/os/$arch</nowiki>'''<br />
Include = /etc/pacman.d/mirrorlist<br />
<br />
pacman will now try to connect to this mirror first. Proceed to do the same for ''[testing]'', ''[extra]'', and ''[community]'', if applicable.<br />
<br />
{{Note|If mirrors have been stated directly in {{ic|pacman.conf}}, remember to use the same mirror for all repositories. Otherwise packages that are incompatible to each other may be installed, like linux from ''[core]'' and an older kernel module from ''[extra]''.}}<br />
<br />
=== Force pacman to refresh the package lists ===<br />
<br />
Mirrors can be out of sync and the package list from the old mirror may not correspond to the package list of the new mirror, even though the dates of the lists may suggest that they do.<br />
<br />
After creating/editing {{ic|/etc/pacman.d/mirrorlist}}, issue the following command:<br />
# pacman -Syyu<br />
<br />
Passing two {{ic|--refresh}}/{{ic|-y}} flags forces pacman to refresh all package lists even if they are considered to be up to date. Issuing {{ic|pacman -Syyu}} is an unnecessary waste of bandwidth in most cases, but can sometimes fix issues when switching from a broken mirror to a working mirror. See also [https://bbs.archlinux.org/viewtopic.php?id=163124 Is -Syy safe?].<br />
<br />
{{Warning|In most cases if you force refresh the pacman database, you will want to force downgrade any potentially too-new packages to correspond to the versions offered by the new mirror. This prevents issues where packages are inconsistently upgraded, leading to a partial update.<br />
# pacman -Syyuu<br />
This is not necessary when using timestamps to ensure the mirrors are only upgraded.<br />
}}<br />
<br />
== Sorting mirrors ==<br />
<br />
When downloading packages, pacman uses the mirrors in the order they are listed in {{ic|/etc/pacman.d/mirrorlist}}. The order servers appear in the list sets their priority.<br />
<br />
It is not optimal to only rank mirrors based on speed since the fastest servers might be out-of-sync. Instead, make a list of mirrors sorted by their [[#List by speed|speed]], then remove those from the list that are out of sync according to their [https://www.archlinux.org/mirrors/status/ status].<br />
<br />
It is recommended to repeat this process before every system upgrade to keep the list of mirrors up-to-date.<br />
<br />
=== List by speed ===<br />
====Ranking an existing mirror list====<br />
The {{Pkg|pacman-contrib}} package provides a Bash script, {{ic|/usr/bin/rankmirrors}}, which can be used to rank the mirrors according to their connection and opening speeds to take advantage of using the fastest local mirror.<br />
<br />
Back up the existing {{ic|/etc/pacman.d/mirrorlist}}:<br />
<br />
# cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup<br />
<br />
To prepare {{ic|mirrorlist.backup}} for ranking with ''rankmirrors'', the following actions can be carried out:<br />
<br />
* Edit {{ic|mirrorlist.backup}} and uncomment the servers to be tested<br />
<br />
* If the servers in the file are grouped by country, one can extract all the servers of a specific country by using: {{bc|1=$ awk '/^## ''Country Name''$/{f=1}f==0{next}/^$/{exit}{print substr($0, 2)}' /etc/pacman.d/mirrorlist.backup}}<br />
<br />
* To uncomment every mirror, run the following {{ic|sed}} line: {{bc|# sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.backup}}<br />
<br />
Finally, rank the mirrors, here with the operand {{ic|-n 6}} to only output the 6 fastest mirrors:<br />
<br />
# rankmirrors -n 6 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist<br />
<br />
====Fetching and ranking a live mirror list====<br />
<br />
In order to start with a shortlist of up-to-date mirrors based in some countries and feed it to ''rankmirrors'' one can fetch the list from the ''Pacman Mirrorlist Generator''.<br />
The command below pulls the up-to-date mirrors in either ''France'' or the ''United Kingdom'' which support the ''https'' protocol, it uncomments the servers in the list and then ranks them and outputs the 5 fastest.<br />
<br />
$ curl -s "https://www.archlinux.org/mirrorlist/?country=FR&country=GB&protocol=https&use_mirror_status=on" | sed -e 's/^#Server/Server/' -e '/^#/d' | rankmirrors -n 5 -<br />
<br />
{{Tip|This procedure can be done interactively by navigating to {{ic|1=https://www.archlinux.org/mirrorlist}} with any text-based browser, for example {{man|1|elinks}}.}}<br />
<br />
=== Server-side ranking ===<br />
<br />
The official [https://www.archlinux.org/mirrorlist/ Pacman Mirrorlist Generator] provides an easy way to obtain a ranked list of mirrors. Because all ranking is done on a single server that takes multiple factors into account, the amount of load on the mirrors and the clients is significantly lower compared to ranking on each individual client.<br />
<br />
Another popular alternative is the following tool:<br />
<br />
{{App|[[Reflector]]|Retrieves the latest mirrorlist from the [https://www.archlinux.org/mirrors/status/ MirrorStatus] page, filters and sorts them by speed and overwrites {{ic|/etc/pacman.d/mirrorlist}}|https://xyne.archlinux.ca/projects/reflector/|{{pkg|reflector}}}}<br />
<br />
== Troubleshooting ==<br />
<br />
In the unlikely scenario that you are without any configured mirrors and {{ic|pacman-mirrorlist}} is not installed, run the following command:<br />
# curl -o /etc/pacman.d/mirrorlist <nowiki>https://www.archlinux.org/mirrorlist/all/</nowiki><br />
<br />
Be sure to uncomment a preferred mirror as described above, then:<br />
# pacman -Syu pacman-mirrorlist<br />
<br />
== Unofficial mirrors ==<br />
<br />
These mirrors are ''not'' listed in {{ic|/etc/pacman.d/mirrorlist}}.<br />
<br />
=== Austria ===<br />
<br />
*http://gd.tuwien.ac.at/opsys/linux/archlinux/ - ''Vienna University of Technology''<br />
*ftp://gd.tuwien.ac.at/opsys/linux/archlinux/<br />
<br />
=== Canada ===<br />
<br />
*https://na.mirrors.coltondrg.com/archlinux/<br />
<br />
=== China ===<br />
<br />
'''Telecom'''<br />
*http://mirror.bit.edu.cn/archlinux/ - ''Beijing Institute of Technology''<br />
*http://mirrors.aliyun.com/archlinux/ - ''Alibaba''<br />
<br />
'''Unicom'''<br />
*http://mirrors.sohu.com/archlinux/<br />
*http://mirrors.yun-idc.com/archlinux/<br />
<br />
'''Cernet'''<br />
*http://mirror.hust.edu.cn/archlinux/ - ''Huazhong University of Science and Technology Mirror (HUSTMirror)''<br />
*http://mirrors.geekpie.org/archlinux/ - ''Geek Pie Association @ ShanghaiTech University''<br />
*http://ftp.sjtu.edu.cn/archlinux/ - ''Shanghai Jiaotong University(Legacy)''<br />
*https://mirrors.sjtug.sjtu.edu.cn/archlinux/ - ''Shanghai Jiaotong University Linux User Group''<br />
*http://mirrors.4.tuna.tsinghua.edu.cn/archlinux/ ''(ipv4 only)''<br />
*http://mirrors.6.tuna.tsinghua.edu.cn/archlinux/ ''(ipv6 only)''<br />
*http://mirror.lzu.edu.cn/archlinux/ - ''Lanzhou University''<br />
*https://mirrors.nju.edu.cn/archlinux/ - ''Nanjing University''<br />
<br />
=== France ===<br />
<br />
*http://delta.archlinux.fr/ - ''With Delta package support. Needs {{Pkg|xdelta3}} to run.''<br />
*https://eu.mirrors.coltondrg.com/archlinux/<br />
*https://mirror.oldsql.cc/archlinux/<br />
<br />
=== Indonesia ===<br />
<br />
*http://kambing.ui.ac.id/archlinux/<br />
<br />
=== Iran ===<br />
<br />
*http://mirror.yazd.ac.ir/arch/<br />
*http://repo.sadjad.ac.ir/arch/<br />
<br />
=== Italy ===<br />
<br />
*http://mi.mirror.garr.it/mirrors/archlinux/<br />
<br />
=== Japan ===<br />
<br />
*http://ftp.nara.wide.ad.jp/pub/Linux/archlinux/ - ''Nara Institute of Science and Technology''<br />
*http://ftp.kddilabs.jp/Linux/packages/archlinux/<br />
*http://srv2.ftp.ne.jp/Linux/packages/archlinux/<br />
*http://mirror.archlinuxjp.org/<br />
<br />
=== Malaysia ===<br />
<br />
*http://mirror.oscc.org.my/archlinux/<br />
<br />
=== Netherlands ===<br />
<br />
*http://mirror.transip.net/archlinux/ ''TransIP B.V.''<br />
<br />
=== New Zealand ===<br />
<br />
*http://mirror.ece.auckland.ac.nz/archlinux/ ''NZ only''<br />
*https://mirror.fsmg.org.nz/archlinux/ - ''Free Software Mirror Group''<br />
<br />
=== Poland ===<br />
<br />
*ftp://ftp.icm.edu.pl/pub/Linux/dist/archlinux/ - ICM UW<br />
*http://ftp.icm.edu.pl/pub/Linux/dist/archlinux/ - ICM UW<br />
*https://ftp.icm.edu.pl/pub/Linux/dist/archlinux/ - ICM UW<br />
*rsync://ftp.icm.edu.pl/pub/Linux/dist/archlinux/ - ICM UW<br />
<br />
=== Russia ===<br />
<br />
*http://mirrors.krasinfo.ru/archlinux/ - ''Krasnoyarsk, Classica-Service Ltd''<br />
<br />
=== South Africa ===<br />
<br />
*http://ftp.leg.uct.ac.za/pub/linux/arch/ - ''University of Cape Town''<br />
*ftp://ftp.leg.uct.ac.za/pub/linux/arch/<br />
*http://mirror.ufs.ac.za/archlinux/ - ''University of the Free State''<br />
*ftp://mirror.ufs.ac.za/os/linux/distros/archlinux/<br />
*http://archlinux.mirror.ac.za - ''TENET - Tertiary Education and Research Network of South Africa''<br />
*ftp://archlinux.mirror.ac.za<br />
<br />
=== Sweden ===<br />
<br />
*http://foss.dhyrule.se/linux/archlinux/ <br />
*ftp://foss.dhyrule.se/linux/archlinux/<br />
<br />
=== Thailand ===<br />
<br />
* http://mirror1.ku.ac.th/archlinux/<br />
<br />
=== Turkey ===<br />
<br />
* http://mirror.veriteknik.net.tr/archlinux/'' - VeriTeknik Data Center''<br />
* http://ftp.linux.org.tr/archlinux/<br />
<br />
=== United States ===<br />
<br />
* http://mirror.clarkson.edu/archlinux/<br />
* http://mirror.pointysoftware.net/archlinux/<br />
* http://mirror.ziemer.bz/archlinux<br />
* https://lug.mines.edu/mirrors/archlinux/<br />
* http://mirror.cs.umn.edu/arch/<br />
<br />
=== Sourceforge (old ISOs) ===<br />
<br />
* http://sourceforge.net/projects/archlinux/files/ - ''ISO files only; Does not have any releases since 2006. Use it only for getting older ISOs.''<br />
<br />
== See also ==<br />
* [https://github.com/archlinux/archweb/blob/master/mirrors/views/mirrorlist.py GitHub archweb mirrorlist.py] - source code of the archweb mirrorlist generator</div>Betseghttps://wiki.archlinux.org/index.php?title=NVIDIA/Troubleshooting&diff=505024NVIDIA/Troubleshooting2017-12-29T22:02:55Z<p>Betseg: /* Full system freeze or crashes when using Flash */</p>
<hr />
<div>[[Category:Graphics]]<br />
[[Category:X server]]<br />
[[ja:NVIDIA/トラブルシューティング]]<br />
[[ru:NVIDIA/Troubleshooting]]<br />
== Corrupted screen: "Six screens" Problem ==<br />
<br />
For some users, using GeForce GT 100M's, the screen gets corrupted after X starts, divided into 6 sections with a resolution limited to 640x480.<br />
The same problem has been recently reported with Quadro 2000 and hi-res displays.<br />
<br />
To solve this problem, enable the Validation Mode {{ic|NoTotalSizeCheck}} in section {{ic|Device}}:<br />
Section "Device"<br />
...<br />
Option "ModeValidation" "NoTotalSizeCheck"<br />
...<br />
EndSection<br />
<br />
== '/dev/nvidia0' input/output error ==<br />
<br />
{{Accuracy|Verify that the BIOS related suggestions work and are not coincidentally set while troubleshooting.|section='/dev/nvidia0' Input/Output error... suggested fixes}}<br />
This error can occur for several different reasons, and the most common solution given for this error is to check for group/file permissions, which in almost every case is ''not'' the problem. The NVIDIA documentation does not talk in detail on what you should<br />
do to correct this problem but there are a few things that have worked for some people. The problem can be a IRQ conflict with another device or bad routing by either the kernel or your BIOS.<br />
<br />
First thing to try is to remove other video devices such as video capture cards and see if the problem goes away. If there are too many video processors on the same system it can lead into the kernel being unable to start them because of memory allocation problems with the video controller. In particular on systems with low video memory this can occur even if there is only one video processor. In such case you should find out the amount of your system's video memory (e.g. with {{ic|lspci -v}}) and pass allocation parameters to the kernel, e.g. for a 32-bit kernel:<br />
vmalloc=384M<br />
<br />
If running a 64bit kernel, a driver defect can cause the NVIDIA module to fail initializing when IOMMU is on. Turning it off in the BIOS has been confirmed to work for some users. [http://www.nvnews.net/vbulletin/showthread.php?s=68bb2fabadcb53b10b286aa42d13c5bc&t=159335][[User:Clickthem#nvidia module]]<br />
<br />
Another thing to try is to change your BIOS IRQ routing from {{ic|Operating system controlled}} to {{ic|BIOS controlled}} or the other way around. The first one can be passed as a kernel parameter:<br />
PCI=biosirq<br />
<br />
The {{ic|noacpi}} kernel parameter has also been suggested as a solution but since it disables ACPI completely it should be used with caution. Some hardware are easily damaged by overheating.<br />
<br />
{{Note|The kernel parameters can be passed either through the kernel command line or the bootloader configuration file. See your bootloader Wiki page for more information.}}<br />
<br />
== Crashing in general ==<br />
<br />
* Try disabling {{ic|RenderAccel}} in xorg.conf.<br />
* If Xorg outputs an error about {{ic|"conflicting memory type"}} or {{ic|"failed to allocate primary buffer: out of memory"}}, or crashes with a "Signal 11" while using nvidia-96xx drivers, add {{ic|nopat}} to your [[kernel parameters]].<br />
* If the NVIDIA compiler complains about different versions of GCC between the current one and the one used for compiling the kernel, add in {{ic|/etc/profile}}:<br />
export IGNORE_CC_MISMATCH=1<br />
* If Xorg is crashing , try disabling PAT. Pass the argument {{ic|nopat}} to [[kernel parameters]].<br />
More information about troubleshooting the driver can be found in the [https://forums.geforce.com/ NVIDIA forums.]<br />
<br />
== Bad performance after installing a new driver version ==<br />
<br />
If FPS have dropped in comparison with older drivers, check if direct rendering is enabled ({{ic|glxinfo}} is included in {{Pkg|mesa-demos}}):<br />
$ glxinfo | grep direct<br />
<br />
If the command prints:<br />
direct rendering: No<br />
<br />
A possible solution could be to regress to the previously installed driver version and rebooting afterwards.<br />
<br />
== Avoid screen tearing ==<br />
{{Note|This has been reported to reduce the performance of some OpenGL applications and may produce issues in WebGL.}}<br />
<br />
Tearing can be avoided by forcing a full composition pipeline, regardless of the compositor you are using. To test whether this option will work, run:<br />
$ nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"<br />
<br />
Or click on the ''Advanced'' button that is available on the ''X Server Display Configuration'' menu option. Select either ''Force Composition Pipeline'' or ''Force Full Composition Pipeline'' and click on ''Apply''.<br />
<br />
In order to make the change permanent, it must be added to the {{ic|"Screen"}} section of the [[Xorg]] configuration file. When making this change, {{ic|TripleBuffering}} should be enabled and {{ic|AllowIndirectGLXProtocol}} should be disabled in the driver configuration as well. See example configuration below:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/20-nvidia.conf|<nowiki><br />
Section "Device"<br />
Identifier "Nvidia Card"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
BoardName "GeForce GTX 1050 Ti"<br />
EndSection<br />
<br />
Section "Screen"<br />
Identifier "Screen0"<br />
Device "Device0"<br />
Monitor "Monitor0"<br />
Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"<br />
Option "AllowIndirectGLXProtocol" "off"<br />
Option "TripleBuffer" "on"<br />
EndSection<br />
</nowiki>}}<br />
<br />
If you do not have an Xorg configuration file, you can create one for your present hardware using {{ic|nvidia-xconfig}} (see [[NVIDIA#Automatic configuration]]) and move it from {{ic|/etc/X11/xorg.conf}} to the preferred location {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}}.<br />
<br />
{{Note|Many of the configuration options produced in {{ic|20-nvidia.conf}} by using {{ic|nvidia-xconfig}} are set automatically by the driver and are not needed. To only use this file for enabling composition pipeline, only the section {{ic|"Screen"}} containing lines with values for {{ic|Identifier}} and {{ic|Option}} are necessary. Other sections may be removed from this file.}}<br />
<br />
=== Multi-monitor ===<br />
<br />
For multi-monitor setup you will need to specify {{ic|1=ForceCompositionPipleline=On}} for each display. For example:<br />
<br />
$ nvidia-settings --assign CurrentMetaMode="DP-2: nvidia-auto-select +0+0 {ForceCompositionPipeline=On}, DP-4: nvidia-auto-select +3840+0 {ForceCompositionPipeline=On}"<br />
<br />
Without doing this, the {{ic|nvidia-settings}} command will disable your secondary display.<br />
<br />
The above line is for two 3840x2160 monitors connected to DP-2 and DP-4. You will need to read the correct {{ic|CurrentMetaMode}} by exporting {{ic|xorg.conf}} and append {{ic|ForceCompositionPipeline}} to each of your displays. Setting {{ic|ForceCompositionPipeline}} only affects the targeted display. <br />
<br />
{{Tip|Multi monitor setups using different model monitors may have slightly different refresh rates. If vsync is enabled by the driver it will sync to only one of these refresh rates which can cause the appearance of screen tearing on incorrectly synced monitors. Select to sync the display device which is the primarily used monitor as others will not sync properly. This is configurable in {{ic|~/.nvidia-settings-rc}} as {{ic|<nowiki>0/XVideoSyncToDisplayID=</nowiki>}} or by installing {{pkg|nvidia-settings}} and using the graphical configuration options.}}<br />
<br />
=== Avoid screen tearing in KDE (KWin) ===<br />
<br />
If {{ic|ForceFullCompositionPipeline}} described above does not help:<br />
<br />
{{hc|/etc/profile.d/kwin.sh|<nowiki><br />
export KWIN_TRIPLE_BUFFER=1<br />
</nowiki>}}<br />
<br />
If you enable triple buffering make sure to enable {{ic|TripleBuffering}} for the driver itself.<br />
{{hc|/etc/X11/xorg.conf or /etc/X11/xorg.conf.d/20-nvidia.conf|<nowiki><br />
Section "Device"<br />
[...]<br />
Option "TripleBuffer" "on"<br />
[...]<br />
EndSection<br />
</nowiki>}}<br />
<br />
Also make sure to select OpenGL >= 2.0 as rendering backend under ''Systemsettings'', ''Display and Monitor'', ''Compositor''.<br />
<br />
If the above does not help, then try this, however you could have huge performance loss in games since this option will put the GL threads to sleep:<br />
{{hc|/etc/profile.d/kwin.sh|<nowiki><br />
export __GL_YIELD="USLEEP"<br />
</nowiki>}}<br />
{{warning|1=Do not have both of the above enabled at the same time [https://bugs.kde.org/show_bug.cgi?id=322060].}}<br />
<br />
== Modprobe Error: "Could not insert 'nvidia': No such device" on linux >=4.8 ==<br />
<br />
With linux 4.8, one can get the following errors when trying to use the discrete card:<br />
{{hc|$ modprobe nvidia -vv|<nowiki><br />
modprobe: INFO: custom logging function 0x409c10 registered<br />
modprobe: INFO: Failed to insert module '/lib/modules/4.8.6-1-ARCH/extramodules/nvidia.ko.gz': No such device<br />
modprobe: ERROR: could not insert 'nvidia': No such device<br />
modprobe: INFO: context 0x24481e0 released<br />
insmod /lib/modules/4.8.6-1-ARCH/extramodules/nvidia.ko.gz <br />
</nowiki>}}<br />
{{hc|$ dmesg|<nowiki><br />
...<br />
NVRM: The NVIDIA GPU 0000:01:00.0 (PCI ID: 10de:139b)<br />
NVRM: installed in this system is not supported by the 370.28<br />
NVRM: NVIDIA Linux driver release. Please see 'Appendix<br />
NVRM: A - Supported NVIDIA GPU Products' in this release's<br />
NVRM: README, available on the Linux driver download page<br />
NVRM: at www.nvidia.com.<br />
...<br />
</nowiki>}}<br />
<br />
This problem is caused by bad commits pertaining to PCIe power management in the Linux Kernel (as documented in [https://devtalk.nvidia.com/default/topic/971733/-370-28-with-kernel-4-8-on-gt-2015-machines-driver-claims-card-not-supported-if-nvidia-is-not-primary-card/ this NVIDIA DevTalk thread]). <br />
<br />
The workaround is to add {{ic|1=pcie_port_pm=off}} to your [[kernel parameters]]. Note that this disables PCIe power management for all devices.<br />
<br />
== Poor performance after resuming from suspend ==<br />
<br />
If you are getting poor performance after resuming from suspend, you need to register the nvidia kernel module with the ACPI subsystem. This can be done by [[Kernel modules#Setting module options|loading]] the {{ic|nvidia}} module with the {{ic|1=NVreg_RegisterForACPIEvents=1 NVreg_EnableMSI=1}} options.<br />
<br />
== CPU spikes with 400 series cards ==<br />
<br />
If you are experiencing intermittent CPU spikes with a 400 series card, it may be caused by PowerMizer constantly changing the GPU's clock frequency. Switching PowerMizer's setting from Adaptive to Performance, add the following to the {{ic|Device}} section of your Xorg configuration:<br />
<br />
Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1"<br />
<br />
== Full system freeze or crashes when using Flash ==<br />
<br />
If you experience occasional full system freezes using [[Flash]], a possible workaround is to disable Hardware Acceleration:<br />
<br />
{{hc|/etc/adobe/mms.cfg|2=<br />
EnableLinuxHWVideoDecode=0<br />
}}<br />
<br />
Or, if you want to keep Hardware acceleration enabled but allowing a higher chance of screen tearing, you may try to before starting a browser:<br />
export VDPAU_NVIDIA_NO_OVERLAY=1<br />
<br />
== Laptops: X hangs on login/out, worked around with Ctrl+Alt+Backspace ==<br />
<br />
If, while using the legacy NVIDIA drivers, Xorg hangs on login and logout (particularly with an odd screen split into two black and white/gray pieces), but logging in is still possible via {{ic|Ctrl+Alt+Backspace}} (or whatever the new "kill X" key binding is), try adding this in {{ic|/etc/modprobe.d/modprobe.conf}}:<br />
options nvidia NVreg_Mobile=1<br />
<br />
One user had luck with this instead, but it makes performance drop significantly for others:<br />
options nvidia NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=33 NVreg_DeviceFileMode=0660 NVreg_SoftEDIDs=0 NVreg_Mobile=1<br />
<br />
Note that {{ic|NVreg_Mobile}} needs to be changed according to the laptop:<br />
* 1 for Dell laptops.<br />
* 2 for non-Compal Toshiba laptops.<br />
* 3 for other laptops.<br />
* 4 for Compal Toshiba laptops.<br />
* 5 for Gateway laptops.<br />
<br />
See [ftp://download.nvidia.com/XFree86/Linux-x86/355.11/README/README.txt NVIDIA Driver's README: Appendix K] for more information.<br />
<br />
== Screen(s) found, but none have a usable configuration ==<br />
<br />
Sometimes NVIDIA and X have trouble finding the active screen. If your graphics card has multiple outputs try plugging your monitor into the other ones. On a laptop it may be because your graphics card has VGA/TV out. Xorg.0.log will provide more info.<br />
<br />
Another thing to try is adding invalid {{ic|"ConnectedMonitor" Option}} to {{ic|Section "Device"}}<br />
to force Xorg throws error and shows you how correct it.<br />
[ftp://download.nvidia.com/XFree86/Linux-x86/355.11/README/xconfigoptions.html Here]<br />
more about ConnectedMonitor setting.<br />
<br />
After re-run X see Xorg.0.log to get valid CRT-x,DFP-x,TV-x values.<br />
<br />
{{ic|nvidia-xconfig --query-gpu-info}} could be helpful.<br />
<br />
== Blackscreen at X startup / Machine poweroff at X shutdown ==<br />
<br />
If you have installed an update of Nvidia and your screen stays black after launching Xorg, or if shutting down Xorg causes a machine poweroff, try the below workarounds:<br />
<br />
* Use the {{ic|<nowiki>rcutree.rcu_idle_gp_delay=1</nowiki>}} [[kernel parameter]].<br />
<br />
* You can also try to add the {{ic|nvidia}} module directly to your [[mkinitcpio]] config file.<br />
<br />
* If the screen still stays black with '''both''' the {{ic|<nowiki>rcutree.rcu_idle_gp_delay=1</nowiki>}} [[kernel parameter]] and the {{ic|nvidia}} module directly in the [[mkinitcpio]] config file, try re-installing {{Pkg|nvidia}} and {{Pkg|nvidia-utils}} in that order, and finally reload the driver:<br />
<br />
# modprobe nvidia<br />
<br />
== Backlight is not turning off in some occasions ==<br />
<br />
By default, DPMS should turn off backlight with the timeouts set or by running xset. However, probably due to a bug in the proprietary Nvidia drivers the result is a blank screen with no powersaving whatsoever. To workaround it, until the bug has been fixed you can use the {{ic|vbetool}} as root.<br />
<br />
Install the {{Pkg|vbetool}} package.<br />
<br />
Turn off your screen on demand and then by pressing a random key backlight turns on again:<br />
<br />
vbetool dpms off && read -n1; vbetool dpms on<br />
<br />
Alternatively, xrandr is able to disable and re-enable monitor outputs without requiring root.<br />
<br />
xrandr --output DP-1 --off; read -n1; xrandr --output DP-1 --auto<br />
<br />
== Xorg fails to load or Red Screen of Death ==<br />
<br />
If you get a red screen and use GRUB, disable the GRUB framebuffer by editing {{ic|/etc/default/grub}} and uncomment {{ic|1=GRUB_TERMINAL_OUTPUT=console}}. For more information see [[GRUB/Tips and tricks#Disable framebuffer]].<br />
<br />
== Black screen on systems with Intel integrated GPU ==<br />
<br />
If you have an Intel CPU with an integrated GPU (e.g. Intel HD 4000) and have installed the {{Pkg|nvidia}} package, you may experience a black screen on boot, when changing virtual terminal, or when exiting an X session. This may be caused by a conflict between the graphics modules. This is solved by blacklisting the Intel GPU modules. Create the file {{ic|/etc/modprobe.d/blacklist.conf}} and prevent the ''i915'' and ''intel_agp'' modules from loading on boot:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|<br />
install i915 /usr/bin/false<br />
install intel_agp /usr/bin/false<br />
}}<br />
<br />
== Black screen on systems with VIA integrated GPU ==<br />
<br />
As above, blacklisting the ''viafb'' module may resolve conflicts with NVIDIA drivers:<br />
<br />
{{hc|/etc/modprobe.d/blacklist.conf|<br />
install viafb /usr/bin/false<br />
}}<br />
<br />
== X fails with "no screens found" with Intel iGPU ==<br />
<br />
Like above, if you have an Intel CPU with an integrated GPU and X fails to start with <br />
<br />
[ 76.633] (EE) No devices detected.<br />
[ 76.633] Fatal server error:<br />
[ 76.633] no screens found<br />
<br />
then you need to add your discrete card's BusID to your X configuration. Find it:<br />
<br />
{{hc|<nowiki># lspci | grep VGA</nowiki>|<br />
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09)<br />
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)<br />
}}<br />
<br />
then you fix it by adding it to the card's Device section in your X configuration. In my case:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/10-nvidia.conf|<br />
Section "Device"<br />
Identifier "Device0"<br />
Driver "nvidia"<br />
VendorName "NVIDIA Corporation"<br />
BusID "PCI:1:0:0"<br />
EndSection<br />
}}<br />
<br />
Note how {{ic|01:00.0}} is written as {{ic|1:0:0}}.<br />
<br />
== Xorg fails during boot, but otherwise starts fine ==<br />
<br />
On very fast booting systems, systemd may attempt to start the display manager before the NVIDIA driver has fully initialized. You will see a message like the following in your logs only when Xorg runs during boot.<br />
{{hc|/var/log/Xorg.0.log|output=<br />
[ 1.807] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the<br />
[ 1.807] (EE) NVIDIA(0): system's kernel log for additional error messages and<br />
[ 1.808] (EE) NVIDIA(0): consult the NVIDIA README for details.<br />
[ 1.808] (EE) NVIDIA(0): *** Aborting ***<br />
}}<br />
In this case you will need to establish an ordering dependency from the display manager to the DRI device. First create device units for DRI devices by creating a new udev rules file.<br />
{{hc|/etc/udev/rules.d/99-systemd-dri-devices.rules|output=<br />
ACTION=="add", KERNEL=="card*", SUBSYSTEM=="drm", TAG+="systemd"<br />
}}<br />
Then create dependencies from the display manager to the device(s).<br />
{{hc|/etc/systemd/system/display-manager.service.d/10-wait-for-dri-devices.conf|output=<br />
[Unit]<br />
Wants=dev-dri-card0.device<br />
After=dev-dri-card0.device<br />
}}<br />
If you have additional cards needed for the desktop then list them in Wants and After seperated by spaces.<br />
<br />
== xrandr BadMatch ==<br />
<br />
If you are trying to configure a WQHD monitor such as DELL U2515H using [[xrandr]] and {{ic|xrandr --addmode}} gives you the error {{ic|X Error of failed request: BadMatch}}, it might be because the proprietary NVIDIA driver clips the pixel clock maximum frequency of HDMI output to 225 MHz or lower. To set the monitor to maximum resolution you have to install [[nouveau]] drivers. You can force nouveau to use a specific pixel clock frequency by setting {{ic|1=nouveau.hdmimhz=297}} (or {{ic|330}}) in your [[Kernel parameters]].<br />
<br />
Alternatively, it may be that your monitor's EDID is incorrect. See [[#Override EDID]].<br />
<br />
== Override EDID ==<br />
<br />
See [[Kernel mode setting#Forcing modes and EDID]] and [[Xrandr#Troubleshooting]].<br />
<br />
== Overclocking with nvidia-settings GUI not working ==<br />
<br />
{{Style|Duplication, vague "not working"}}<br />
<br />
Workaround is to use nvidia-settings CLI to query and set certain variables after enabling overclocking (as explained in [[NVIDIA/Tips and tricks#Enabling overclocking]], see {{man|1|nvidia-settings}} for more information).<br />
<br />
Example to query all variables:<br />
<br />
nvidia-settings -q all<br />
<br />
Example to set PowerMizerMode to prefer performance mode:<br />
<br />
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=1<br />
<br />
Example to set fan speed to fixed 21%:<br />
<br />
nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=21<br />
<br />
Example to set multiple variables at once (overclock GPU by 50MHz, overclock video memory by 50MHz, increase GPU voltage by 100mV):<br />
<br />
nvidia-settings -a GPUGraphicsClockOffsetAllPerformanceLevels=50 -a GPUMemoryTransferRateOffsetGPUGraphicsClockOffsetAllPerformanceLevels=50 -a GPUOverVoltageOffset=100</div>Betseghttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=445801Arch is the best2016-08-07T16:37:06Z<p>Betseg: Oops forgot changing "Hello World" to "Arch is the best!"</p>
<hr />
<div>[[Category:About Arch]]<br />
[[ja:Arch は最高]]<br />
[[ru:Arch is the best]]<br />
The '''Arch is the best''' project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which gives proof of Arch's superiority.<br />
<br />
== History ==<br />
<br />
The visionary project was originally devised in April 2008 by long time Arch community member [https://bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". It was announced to the world with a [https://bbs.archlinux.org/viewtopic.php?id=47306 forum post], thus illuminating other people's minds, who immediately started porting it to multiple different languages, both programming and verbal, so that every human being on the planet could fully appreciate and benefit from this revolutionary discovery.<br />
<br />
== The code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
;1C&#58;Enterprise 7.7/8/8.1/8.2:A procedural domain-specific compiled dynamically-typed programming language mostly similar to VisualBasic which is used in "1C:Enterprise" products widespread in Russia and other CIS countries.<br />
<br />
Предупреждение("Arch is the best!");<br />
<br />
;Ada: A systems critical programming language.<br />
<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end ArchIsTheBest;<br />
<br />
;APL: A Programming Language.<br />
<br />
'Arch is the best!'<br />
<br />
;ArnoldC: Programming language based on the one-liners of Arnold Schwarzenegger.<br />
<br />
IT'S SHOWTIME<br />
TALK TO THE HAND "Arch is the best!"<br />
YOU HAVE BEEN TERMINATED<br />
<br />
;ATS: A functional programming language that uses dependent types to improve programs' reliability.<br />
<br />
implement main () = println! "Arch is the best!"<br />
<br />
;Awk: A data-driven programming language designed for processing text-based data.<br />
<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
;Befunge: Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
;Boo:A stablished object oriented statically typed programming language for .NET and Mono with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features such as macros and custom compilation pipelines.<br />
<br />
print "Arch is the best!"<br />
<br />
;Bourne shell: The original program, should be compatible with any shell.<br />
<br />
#!/bin/sh<br />
echo "Arch is the best!"<br />
<br />
;Bourne shell (Alternate):Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
<br />
#!/bin/sh<br />
yes Arch is the best!<br />
<br />
;Bourne shell (Dynamically updated)<br />
<br />
#!/bin/sh<br />
<nowiki>w3m -dump "https://wiki.archlinux.org/index.php/Arch_is_the_best" | sed -n '/^Translations/,/^Encodings/p'</nowiki><br />
<br />
;or<br />
<br />
<pre style='overflow:auto'><br />
#!/bin/bash<br />
curl -s "https://wiki.archlinux.org/index.php?title=Arch_is_the_best&action=raw" | sed -n '/==Translations==/,$p' | sed "s/^\(.*\)$/* \1:/;t;s/^[^=]/ &/"<br />
</pre><br />
<br />
;brainfuck: Doesn't the language name explain it?<br />
<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
;C: Note the three space indenting used in this project, much like that used by other superior beings.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main(void)<br />
{<br />
puts("Arch is the best!");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;C#: Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
<br />
using System;<br />
public class ArchIsTheBest<br />
{<br />
static public void Main ()<br />
{<br />
Console.WriteLine ("Arch is the best!");<br />
}<br />
}<br />
<br />
;C++:Arch == Linux++<br />
<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;COBOL:A simple, lightweight programming language.<br />
<br />
IDENTIFICATION DIVISION.<br />
PROGRAM-ID. TheBest.<br />
<br />
PROCEDURE DIVISION.<br />
DISPLAY "Arch is the best!".<br />
STOP RUN.<br />
<br />
;CoffeeScript: A programming language that transcompiles to JavaScript.<br />
<br />
alert 'Arch is the best!'<br />
<br />
;Clojure: A Lisp dialect that runs on the JVM.<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"})<br />
<br />
(defn read-choice []<br />
(println "\nAvailable languages: ")<br />
(doall (map #(println (key %)) translations))<br />
(print "Enter language or Ctrl-c: ") (flush)<br />
(translations (read-line) :badinput))<br />
<br />
(defn arch-is-the-best []<br />
(loop [choice (read-choice)]<br />
(case choice<br />
:badinput (do (print "\nBad input!\n")<br />
(recur (read-choice)))<br />
(do (print "\n" choice "\n")<br />
(recur (read-choice))))))<br />
<br />
;or<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"<br />
"street" "Arch iz da shizzle ma nizzle"})<br />
(while 1<br />
(println "\nPick a language:\n" (map #(key %) translations) "\n language: ")<br />
(println (translations (read-line) "Not a valid language")))<br />
<br />
;or<br />
<br />
(prn "Arch is the best!")<br />
<br />
;Common Lisp: Tested on SBCL, feel free to add more of the translations.<br />
<br />
#!/usr/bin/sbcl --script<br />
(defparameter *best-list* '((English "Arch is the best!")<br />
(Chinese "Arch, 她出类拔萃!")<br />
(German "Arch ist das Beste!")<br />
(Greek "Το Arch είναι το καλύτερο!")))<br />
(defun aitb ()<br />
(format t "Available languages: ~{~{~@(~a~)~*~}~^, ~}.~%" *best-list*)<br />
(loop for input = (progn (format t "~&Input the desired language, (or 'quit'): ~%")<br />
(force-output)<br />
(read-line))<br />
if (string-equal input "quit")<br />
do (loop-finish)<br />
else<br />
do (let ((language-def<br />
(assoc input *best-list*<br />
:key (lambda (lang) (symbol-name lang))<br />
:test #'string-equal)))<br />
(if language-def<br />
(format t "~&~A~%" (second language-def))<br />
(format t "~&Invalid language.~%"))))<br />
(format t "~&May the Arch be with you!~%"))<br />
(aitb)<br />
<br />
;Common Lisp (Alternate): Should run on any implementation (Clisp, Allegro, SBCL...)<br />
<br />
(princ "Arch is the best!")<br />
<br />
;CSS: A stylesheet language, heavily used for styling web pages.<br />
<br />
body * {<br />
display: none;<br />
}<br />
<br />
body::before {<br />
content: "Arch is the best!";<br />
font-family: monospace;<br />
font-size: 2.7rem;<br />
position: absolute;<br />
left: 50%;<br />
top: 50%;<br />
transform: translate(-50%, -50%);<br />
}<br />
<br />
;D: A C-style language. The benefits of hindsight, with modern conveniences.<br />
<br />
import std.stdio : writeln;<br />
void main()<br />
{<br />
writeln("Arch is the best");<br />
}<br />
<br />
;Dart: Google's javascript killer<br />
<br />
main(){<br />
print('Arch is the best');<br />
}<br />
<br />
;Dogescript: Doge-friendly JavaScript<br />
<br />
console.loge with ' So Arch'<br />
console.loge with ' Much Good'<br />
console.loge with ' Wow'<br />
<br />
;Emacs Lisp: A dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors<br />
<br />
(message "Arch is the best!")<br />
<br />
;Emojicode: A delimiter-less, object oriented, imperative, high-level, hybrid language with emojis as fix points and methods.<br />
<br />
🏁 🍇<br />
😀 🔤Arch is the best!🔤<br />
🍉<br />
<br />
;Erlang: A concurrent, garbage-collected programming language and runtime system.<br />
<br />
-module(arch).<br />
-export([is_the_best/0]).<br />
is_the_best() -> io:fwrite("Arch is the best!\n").<br />
<br />
;Or using message passing between processes<br />
<br />
-module(arch).<br />
-export([ultimate_question/0,the_answer/0]).<br />
the_answer() -><br />
receive<br />
{Client,who_is_the_best} -><br />
Client ! {self(),"Arch is the best!"};<br />
{Client,_} -><br />
Client ! {self(),"Taco Taco Taco!"}<br />
end,<br />
the_answer().<br />
ultimate_question() -><br />
Pid = spawn(arch,the_answer,[]),<br />
Pid ! {self(),who_is_the_best},<br />
receive<br />
{Pid,Response} -> io:format("~s~n",[Response])<br />
end.<br />
<br />
;F#: A strongly-typed, functional-first programming language for writing simple code to solve complex problems.<br />
<br />
printfn "Arch is the best!"<br />
<br />
;Factor: High-level stack-based language.<br />
<br />
"Arch is the best" print<br />
<br />
;FIM++: A wordy, imperative, dynamically-typed, and interpreted language that can use Java classes.<br />
<br />
Dear Princess Celestia: Letter About Arch Linux.<br />
Today I learned:<br />
I wrote "Arch is the best!".<br />
Your faithful student, Twilight Sparkle<br />
<br />
;Forth:Stack-based language.<br />
<br />
." Arch is the best" cr -- kiss way<br />
<br />
;Fortran95<br />
<br />
program arch<br />
print *,"Arch is the best!"<br />
end program arch<br />
<br />
;Genie: A new programming language, that allows for a more modern programming style while being able to effortlessly create and use GObjects natively.<br />
<br />
init<br />
print "Arch is the best"<br />
<br />
;Gjs: A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
;Go: A language created by Google that's a love child between C, C++ and Python.<br />
<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() {<br />
fmt.Println("Arch is the best!")<br />
}<br />
<br />
;Groovy: An agile and dynamic language for the Java Virtual Machine.<br />
<br />
println 'Arch is the best!' <br />
<br />
;Haskell: The language where IO is easy and unproblematic.<br />
<br />
main = putStrLn "Arch is the best!"<br />
<br />
;HTML: A markup language used to create and define web pages and their content.<br />
<br />
<pre><br />
<!DOCTYPE html><br />
<html lang='en'><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
<p>Arch is the best!</p><br />
</body><br />
</html><br />
</pre><br />
<br />
;Io: A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript.<br />
<br />
"Arch is the best!" println<br />
<br />
;Java: An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
;JavaScript: Also known as ECMAScript, a prototype-based object-oriented scripting language.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;JavaScript (in a web browser)<br />
<br />
alert('Arch is the best!');<br />
<br />
;Julia: A fresh approach to numerical computing.<br />
<br />
println("Arch is the best!")<br />
<br />
;LilyPond: A powerful music engraving program with an intuitive LaTeX-like input language.<br />
<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
;LOLCODE: Why not?<br />
<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
;Lua: A lightweight, extensible programming language.<br />
<br />
print "Arch is the best!"<br />
<br />
;Malbolge: A language created to make programming as hard as possible.<br />
<br />
bCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]<br />
\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9y16543210/.-,+*)('&}C#"!~}|{zyxwvu<br />
tsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK-CgGFEDCBA@?>=<;:98x6543210/<br />
.-,+*)('&%$#"!~}|u;yxwpun4rqpRhmf,jihgIe^$ba`_^]\[ZYXQVUTMqQPONMFjJI+A<br />
eEDC%A:^>=<|:981U54t21*/.-&Jk)('&}C#"!aw={z\xwvun4lqpi/mlkjiKaf_%p<br />
<br />
;Morpho: Morpho is a multi-paradigm programming language that supports procedural, object-oriented and functional programming.<br />
<br />
writeln("Arch is the best!");<br />
<br />
;NASM / Yasm (i686): Notice that the string is in the .text section, which feels superior.<br />
<br />
;nasm -f elf32 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
_start:<br />
mov edx,len<br />
mov ecx,msg<br />
mov ebx,1<br />
mov eax,4<br />
int 0x80<br />
xor ebx,ebx<br />
mov eax,1<br />
int 0x80<br />
msg: db "Arch is the best!",10<br />
len equ $-msg<br />
<br />
<br />
;NASM / Yasm (x86_64) :Featuring AMD's sexy new instruction, ''syscall''.<br />
<br />
;nasm -f elf64 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
s:<br />
db 'Arch is the best!',0ah<br />
l equ $-s<br />
_start:<br />
mov rax,1<br />
mov rdi,1<br />
mov rsi,s<br />
mov rdx,l<br />
syscall<br />
mov rax,60<br />
xor rdi,rdi<br />
syscall<br />
<br />
;Nimrod:Portable lightweight programming language.<br />
<br />
echo "Arch is the best!"<br />
<br />
;node.js: a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications, using an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;Objective-C: A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
<br />
NSLog(@"Arch is the best!");<br />
<br />
;OCaml: The main implementation of the Caml programming language.<br />
<br />
print_endline "Arch is the best!"<br />
<br />
;Octave: High-level interpreted language, primarily intended for numerical computations.<br />
<br />
printf("Arch is the best!\n")<br />
<br />
;Ook!: brainfuck, translated to Orangutan.<br />
<br />
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.<br />
<br />
;Pascal: An influential imperative and procedural programming language.<br />
<br />
program ArchIsTheBest;<br />
begin<br />
writeln('Arch is the best!');<br />
end.<br />
<br />
;Perl:A high-level, general-purpose, interpreted, dynamic programming language.<br />
<br />
#!/usr/bin/perl<br />
print "Arch is the best!\n";<br />
<br />
;PHP: A general-purpose scripting language.<br />
<br />
<?php<br />
echo "Arch is the best!\n";<br />
?><br />
<br />
;Pixilang: Make me pixels.<br />
<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
;Pony:An object-oriented, actor-model, capabilities-secure, high performance programming language.<br />
<br />
actor Main<br />
new create(env: Env) =><br />
env.out.print("Arch is the best!")<br />
<br />
;Portable GNU assembler: {{ic|as -o arch.o arch.s && ld -o arch -O0 arch.o}}<br />
<br />
.section .data<br />
archIsBest:<br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax<br />
xorl %ebx, %ebx<br />
incl %ebx<br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx<br />
int $0x80<br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx<br />
int $0x80<br />
<br />
;Processing: An open source programming language and IDE built for the electronic arts and visual design.<br />
<br />
println("Arch is the best!");<br />
<br />
;Prolog: A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
<br />
format('Arch is the best~n',[]).<br />
<br />
;Python: A general-purpose high-level programming language.<br />
<br />
print('Arch is the best!')<br />
<br />
;QBASIC: An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
<br />
PRINT "Arch is the best!"<br />
<br />
;R: A language for statistical computing (and much more!).<br />
<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
;Ruby: A dynamic, reflective, general purpose object-oriented programming language.<br />
<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
;Rust: Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.<br />
<br />
fn main() {<br />
println!("Arch is the best!");<br />
}<br />
<br />
;Salt: Salt is an automation framework<br />
<br />
salt '*' event.fire '{"data":"Arch Is the best!"}' 'arch/best'<br />
<br />
;Scala: A multi paradigm language that runs on the JVM.<br />
<br />
object ArchIsBest extends App {<br />
println("Arch is the best!")<br />
}<br />
<br />
;Scheme: A dialect of Lisp.<br />
<br />
(display "Arch is the best!\n")<br />
<br />
or in XunDu style<br />
<br />
#!/usr/bin/guile1.8 -s<br />
!#<br />
(define 节 or)<br />
(define 哀 #t)<br />
(define (xi) (display "Arch is the best!\n"))<br />
(节 (xi) 哀 (wen) 顺 (le) 变 (jian) )<br />
<br />
;Seed: A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
;Shoes: A Ruby version using Shoes for a GUI.<br />
<br />
Shoes.app :width => 135, :height => 30 do<br />
para "Arch is the Best!"<br />
end<br />
<br />
;Smalltalk: Smalltalk is an object-oriented, dynamically typed, reflective programming language.<br />
<br />
Transcript show: 'Arch is the best!'.<br />
<br />
;SQL: Structured Query Language, the query language for relational databases<br />
<br />
SELECT 'Arch is the best!';<br />
SELECT 'Arch is the best!' from dual; -- for Oracle DB<br />
<br />
;Standard ML: A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
<br />
print "Arch is the best!\n"<br />
<br />
;Tcl/Tk: A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
;UEFI: An extensible firmware framework<br />
<br />
#include <Uefi.h><br />
EFI_STATUS EFIAPI<br />
ArchIsTheBest (<br />
IN EFI_HANDLE ImageHandle,<br />
IN EFI_SYSTEM_TABLE *SystemTable<br />
)<br />
{<br />
SystemTable -> ConOut-> OutputString(SystemTable->ConOut, L"Arch is the best!\n"); <br />
return EFI_SUCCESS;<br />
}<br />
<br />
;Vala: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.<br />
<br />
void main(string[] args) {<br />
stdout.printf("\nArch is the best!\n\n");<br />
}<br />
<br />
; Wiring (Arduino):Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
}<br />
void loop()<br />
{<br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
; X11: X11 is an architecture independent system for display of graphical user interfaces.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
== Translations ==<br />
<br />
;Ancient Chinese<br />
阿祺,盡善矣。<br />
<br />
;Ancient Greek (Attic)<br />
Ἡ Ἀψίς ἄριστην ἐστί!<br />
<br />
;Arabic<br />
ارتش هو الأفضل<br />
<br />
;Australian<br />
Arch is fair dinkum, mate!<br />
<br />
;Bahasa Indonesia<br />
Arch terbaik!<br />
<br />
;Basque<br />
Arch onena da!<br />
<br />
;Belarusian<br />
Арч - самы лепшы!<br />
<br />
;Bengali<br />
আর্চ সবচেয়ে ভালো!<br />
<br />
;British<br />
Arch is simply spiffing.<br />
<br />
;Bulgarian<br />
Арч е най-добрият!<br />
<br />
;Catalan<br />
Arch és el millor!<br />
<br />
;Chinese (Simplified)<br />
Arch 最棒了!<br />
<br />
;Chinese (Traditional)<br />
Arch 好棒棒!<br />
<br />
;Chinese (Taobao Style - 淘宝体)<br />
Arch,好评哦,亲!<br />
<br />
;Czech<br />
Arch je nejlepší!<br />
<br />
;Croatian<br />
Arch je najbolji!<br />
<br />
;Danish<br />
Arch er bedst!<br />
<br />
;Doge<br />
So Arch, Much Good, Wow<br />
<br />
;Dutch<br />
Arch is het best!<br />
<br />
;Esperanto<br />
Arch plejbonas!<br />
<br />
;Estonian<br />
Arch on parim!<br />
<br />
;Fikonspråket<br />
Firch Arkon fir äkon fist bäkon<br />
<br />
;Filipino<br />
Mabuhay ang Arch!<br />
<br />
;Finnish<br />
Arch on paras!<br />
<br />
;French<br />
Arch est le meilleur!<br />
<br />
;Galician<br />
Arch é o mellor!<br />
<br />
;German<br />
Arch ist das Beste!<br />
<br />
;Greek (Modern)<br />
Το Αρτς είναι το καλύτερο!<br />
<br />
;Haitian Creole<br />
Arch se meye bagay!<br />
<br />
;Hantec<br />
Arch je nejbetélnější!<br />
<br />
;Hebrew<br />
ארצ' זה הכי אחי!<br />
<br />
;Hindi<br />
आर्च सर्वोत्तम है ।<br />
<br />
;Hungarian<br />
Az Arch a legjobb!<br />
<br />
;Irish<br />
Arch é is fearr!<br />
<br />
;Italian<br />
Arch è il migliore!<br />
<br />
;Japanese<br />
Archが一番ですよ!<br />
<br />
;Kazakh<br />
Арч - ең жақсы!<br />
<br />
;Klingon<br />
Arch'pu'ta"a'<br />
<br />
;Korean<br />
아치가 최고입니다!<br />
<br />
;Kurdish<br />
Arç herî baş e!<br />
<br />
;Latin<br />
Arch optimus est!<br />
<br />
;Latvian<br />
Arch ir labākais!<br />
<br />
;Leet<br />
4rch 15 7h3 b357!<br />
<br />
;Lithuanian<br />
Arch yra geriausias!<br />
<br />
;Lojban<br />
la .artc. xagrai<br />
<br />
;Lolcat<br />
ARCH IZ TEH BEST!<br />
<br />
;Malayalam<br />
ആർച് ആണ് ഏറ്റവും നല്ലത്<br />
<br />
;Mapudungun<br />
writting system: Unificado<br />
Doy kümei Arch<br />
writting system: Raguileo<br />
Zoy kvmey Arc<br />
writting system: Azümchefe (Used in Windows XP)<br />
Zoi kümei Arch<br />
writting system: Nhewenh<br />
Zoi kvmei Arch<br />
writting system: Wirizüŋun<br />
Zoy kümey Arch ''or'' Zoy kvmey Arch<br />
<br />
;Marathi<br />
आर्च सगळ्यात भारी आहे!<br />
<br />
;Nepali<br />
आर्च सबैभन्दा राम्रो हो!<br />
<br />
;Norwegian<br />
Arch er best!<br />
<br />
;Old English<br />
Arch biþ betst!<br />
<br />
;Persian<br />
آرچ بهترین است<br />
<br />
;Pig Latin<br />
Archway isway ethay estbay!<br />
<br />
;Polish<br />
Arch jest najlepszy!<br />
<br />
;Portuguese<br />
Arch é o melhor!<br />
<br />
;Québécois<br />
Arch c'est le plus meilleure du monde!<br />
<br />
;Romanian<br />
Аrch e cel mai bun!<br />
<br />
;Russian<br />
Арч:лучший!<br />
<br />
;Serbian<br />
Arch je najbolji!<br />
<br />
;Shona<br />
Arch iripamberi!<br />
<br />
;Singaporean<br />
Arch the best lah!<br />
<br />
;Slovak<br />
Arch je najlepší!<br />
<br />
;Slovenian<br />
Arch je najboljši!<br />
<br />
;Spanish (Standard)<br />
¡Arch es el mejor!<br />
<br />
;Spanish (Argentina)<br />
Arch es una mazza!!<br />
<br />
;Spanish (Chile)<br />
Arch es bacán<br />
<br />
;Spanish (Chile, alternative)<br />
Arch es la raja<br />
<br />
;Spanish (Chile, marginal)<br />
(written in IPA because standard Spanish doesn't have these sounds)<br />
ˈæɹʃ ɛːʰ tɜ.rˈiː.u.lɛ la rˈa.χa ʃʊ.ɹʊ<br />
<br />
;Spanish (Uruguay)<br />
Arch la rompe!<br />
<br />
;Swedish<br />
Arch är bäst!<br />
<br />
;Turkish<br />
Arch en iyisidir!<br />
<br />
;Tamil<br />
ஆர்ச்சே சிறந்தது!<br />
<br />
;Telugu<br />
ఆర్చ్ ఉత్తమమైనది!<br />
<br />
<br />
;Thai<br />
อาค์ชเทพเมพขิงขิง<br />
<br />
;Toki Pona<br />
Arch li pona mute!<br />
<br />
;Ukrainian<br />
Arch:найкращий!<br />
<br />
;Urdu<br />
آرچ سب سے بہتر ہے!<br />
<br />
;Vietnamese<br />
Arch là tốt nhất!<br />
<br />
;Welsh (Cymraeg)<br />
<br />
Emphasis on Arch:<br />
Arch sydd yr orau un!<br />
Arch sydd y gorau un!<br />
<br />
Emphasis on being the best (one):<br />
Yr orau un yw Arch!<br />
Y gorau un yw Arch!<br />
<br />
== Encodings ==<br />
<br />
;ASCII Banner<br />
_ _ _ _ _ _ _<br />
/\ | | (_) | | | | | | | | | |<br />
/ \ _ __ ___| |__ _ ___ | |_| |__ ___ | |__ ___ ___| |_| |<br />
/ /\ \ | '__/ __| '_ \ | / __| | __| '_ \ / _ \ | '_ \ / _ \/ __| __| |<br />
/ ____ \| | | (__| | | | | \__ \ | |_| | | | __/ | |_) | __/\__ \ |_|_|<br />
/_/ \_\_| \___|_| |_| |_|___/ \__|_| |_|\___| |_.__/ \___||___/\__(_)<br />
<br />
;Base64<br />
QXJjaCBpcyB0aGUgYmVzdCEK<br />
<br />
;Binary ASCII<br />
0100000101110010011000110110100000100000011010010111001100100000011101000110100001100101001000000110001001100101011100110111010000100001<br />
<br />
;Braille<br />
⠁⠗⠉⠓⠀⠊⠎⠀⠮⠀⠃⠑⠎⠞⠲<br />
<br />
;Desrever (Reversed)<br />
!tseb eht si hcrA<br />
<br />
;h4x0r<br />
4rch 15 7h3 b357!<br />
<br />
;Hexadecimal ASCII<br />
4172636820697320746865206265737421<br />
<br />
;md5sum<br />
2d9092e089d77a8e23f47ba3dfe77027<br />
<br />
;Morse Code<br />
.- .-. -.-. .... .. ... - .... . -... . ... -<br />
<br />
;ROT13<br />
Nepu vf gur orfg!<br />
<br />
;sha1sum<br />
7f6ed0bf29abbd7e796ca1311c84a7a21a68a656<br />
<br />
;sha224sum<br />
af15cd556676d37f916a35e2cf74f04cf7b1805b3244ec418c3927d8<br />
<br />
;sha256sum<br />
107139d6b9a15fd97acf743e5806823c8ff868fde8b7c28cfcc2c9184df644ae<br />
<br />
;sha384sum<br />
769ec295d876483aa6cec7ff7997296c8ff2236630b0e48b059576143b60ab30adefec9321d8acc2a133219dfb302bc5<br />
<br />
;sha512sum<br />
b0917f66d05278106808d25f51001b038856fa7171b935d450b4bcbf1e8b82ed6a5a2f49d99734e1efc7ad3d1b8a33519008635d4e1aa3e65a5e70c4de649aad<br />
<br />
;Upside Down<br />
¡ʇsǝq ǝɥʇ s! ɥɔɹ∀<br />
<br />
;URL Encoded<br />
Arch%20is%20the%20best!</div>Betseghttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=445395Arch is the best2016-08-07T10:08:16Z<p>Betseg: /* The code */ Emojicode 0.3</p>
<hr />
<div>[[Category:About Arch]]<br />
[[ja:Arch は最高]]<br />
[[ru:Arch is the best]]<br />
The '''Arch is the best''' project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which gives proof of Arch's superiority.<br />
<br />
== History ==<br />
<br />
The visionary project was originally devised in April 2008 by long time Arch community member [https://bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". It was announced to the world with a [https://bbs.archlinux.org/viewtopic.php?id=47306 forum post], thus illuminating other people's minds, who immediately started porting it to multiple different languages, both programming and verbal, so that every human being on the planet could fully appreciate and benefit from this revolutionary discovery.<br />
<br />
== The code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
;1C&#58;Enterprise 7.7/8/8.1/8.2:A procedural domain-specific compiled dynamically-typed programming language mostly similar to VisualBasic which is used in "1C:Enterprise" products widespread in Russia and other CIS countries.<br />
<br />
Предупреждение("Arch is the best!");<br />
<br />
;Ada: A systems critical programming language.<br />
<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end ArchIsTheBest;<br />
<br />
;APL: A Programming Language.<br />
<br />
'Arch is the best!'<br />
<br />
;ArnoldC: Programming language based on the one-liners of Arnold Schwarzenegger.<br />
<br />
IT'S SHOWTIME<br />
TALK TO THE HAND "Arch is the best!"<br />
YOU HAVE BEEN TERMINATED<br />
<br />
;ATS: A functional programming language that uses dependent types to improve programs' reliability.<br />
<br />
implement main () = println! "Arch is the best!"<br />
<br />
;Awk: A data-driven programming language designed for processing text-based data.<br />
<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
;Befunge: Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
;Boo:A stablished object oriented statically typed programming language for .NET and Mono with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features such as macros and custom compilation pipelines.<br />
<br />
print "Arch is the best!"<br />
<br />
;Bourne shell: The original program, should be compatible with any shell.<br />
<br />
#!/bin/sh<br />
echo "Arch is the best!"<br />
<br />
;Bourne shell (Alternate):Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
<br />
#!/bin/sh<br />
yes Arch is the best!<br />
<br />
;Bourne shell (Dynamically updated)<br />
<br />
#!/bin/sh<br />
<nowiki>w3m -dump "https://wiki.archlinux.org/index.php/Arch_is_the_best" | sed -n '/^Translations/,/^Encodings/p'</nowiki><br />
<br />
;or<br />
<br />
<pre style='overflow:auto'><br />
#!/bin/bash<br />
curl -s "https://wiki.archlinux.org/index.php?title=Arch_is_the_best&action=raw" | sed -n '/==Translations==/,$p' | sed "s/^\(.*\)$/* \1:/;t;s/^[^=]/ &/"<br />
</pre><br />
<br />
;brainfuck: Doesn't the language name explain it?<br />
<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
;C: Note the three space indenting used in this project, much like that used by other superior beings.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main(void)<br />
{<br />
puts("Arch is the best!");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;C#: Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
<br />
using System;<br />
public class ArchIsTheBest<br />
{<br />
static public void Main ()<br />
{<br />
Console.WriteLine ("Arch is the best!");<br />
}<br />
}<br />
<br />
;C++:Arch == Linux++<br />
<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
;COBOL:A simple, lightweight programming language.<br />
<br />
IDENTIFICATION DIVISION.<br />
PROGRAM-ID. TheBest.<br />
<br />
PROCEDURE DIVISION.<br />
DISPLAY "Arch is the best!".<br />
STOP RUN.<br />
<br />
;CoffeeScript: A programming language that transcompiles to JavaScript.<br />
<br />
alert 'Arch is the best!'<br />
<br />
;Clojure: A Lisp dialect that runs on the JVM.<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"})<br />
<br />
(defn read-choice []<br />
(println "\nAvailable languages: ")<br />
(doall (map #(println (key %)) translations))<br />
(print "Enter language or Ctrl-c: ") (flush)<br />
(translations (read-line) :badinput))<br />
<br />
(defn arch-is-the-best []<br />
(loop [choice (read-choice)]<br />
(case choice<br />
:badinput (do (print "\nBad input!\n")<br />
(recur (read-choice)))<br />
(do (print "\n" choice "\n")<br />
(recur (read-choice))))))<br />
<br />
;or<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"<br />
"street" "Arch iz da shizzle ma nizzle"})<br />
(while 1<br />
(println "\nPick a language:\n" (map #(key %) translations) "\n language: ")<br />
(println (translations (read-line) "Not a valid language")))<br />
<br />
;or<br />
<br />
(prn "Arch is the best!")<br />
<br />
;Common Lisp: Tested on SBCL, feel free to add more of the translations.<br />
<br />
#!/usr/bin/sbcl --script<br />
(defparameter *best-list* '((English "Arch is the best!")<br />
(Chinese "Arch, 她出类拔萃!")<br />
(German "Arch ist das Beste!")<br />
(Greek "Το Arch είναι το καλύτερο!")))<br />
(defun aitb ()<br />
(format t "Available languages: ~{~{~@(~a~)~*~}~^, ~}.~%" *best-list*)<br />
(loop for input = (progn (format t "~&Input the desired language, (or 'quit'): ~%")<br />
(force-output)<br />
(read-line))<br />
if (string-equal input "quit")<br />
do (loop-finish)<br />
else<br />
do (let ((language-def<br />
(assoc input *best-list*<br />
:key (lambda (lang) (symbol-name lang))<br />
:test #'string-equal)))<br />
(if language-def<br />
(format t "~&~A~%" (second language-def))<br />
(format t "~&Invalid language.~%"))))<br />
(format t "~&May the Arch be with you!~%"))<br />
(aitb)<br />
<br />
;Common Lisp (Alternate): Should run on any implementation (Clisp, Allegro, SBCL...)<br />
<br />
(princ "Arch is the best!")<br />
<br />
;CSS: A stylesheet language, heavily used for styling web pages.<br />
<br />
body * {<br />
display: none;<br />
}<br />
<br />
body::before {<br />
content: "Arch is the best!";<br />
font-family: monospace;<br />
font-size: 2.7rem;<br />
position: absolute;<br />
left: 50%;<br />
top: 50%;<br />
transform: translate(-50%, -50%);<br />
}<br />
<br />
;D: A C-style language. The benefits of hindsight, with modern conveniences.<br />
<br />
import std.stdio : writeln;<br />
void main()<br />
{<br />
writeln("Arch is the best");<br />
}<br />
<br />
;Dart: Google's javascript killer<br />
<br />
main(){<br />
print('Arch is the best');<br />
}<br />
<br />
;Dogescript: Doge-friendly JavaScript<br />
<br />
console.loge with ' So Arch'<br />
console.loge with ' Much Good'<br />
console.loge with ' Wow'<br />
<br />
;Emacs Lisp: A dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors<br />
<br />
(message "Arch is the best!")<br />
<br />
;Emojicode: A delimiter-less, object oriented, imperative, high-level, hybrid language with emojis as fix points and methods.<br />
<br />
🏁 🍇<br />
😀 🔤Hello, World!🔤<br />
🍉<br />
<br />
;Erlang: A concurrent, garbage-collected programming language and runtime system.<br />
<br />
-module(arch).<br />
-export([is_the_best/0]).<br />
is_the_best() -> io:fwrite("Arch is the best!\n").<br />
<br />
;Or using message passing between processes<br />
<br />
-module(arch).<br />
-export([ultimate_question/0,the_answer/0]).<br />
the_answer() -><br />
receive<br />
{Client,who_is_the_best} -><br />
Client ! {self(),"Arch is the best!"};<br />
{Client,_} -><br />
Client ! {self(),"Taco Taco Taco!"}<br />
end,<br />
the_answer().<br />
ultimate_question() -><br />
Pid = spawn(arch,the_answer,[]),<br />
Pid ! {self(),who_is_the_best},<br />
receive<br />
{Pid,Response} -> io:format("~s~n",[Response])<br />
end.<br />
<br />
;F#: A strongly-typed, functional-first programming language for writing simple code to solve complex problems.<br />
<br />
printfn "Arch is the best!"<br />
<br />
;Factor: High-level stack-based language.<br />
<br />
"Arch is the best" print<br />
<br />
;FIM++: A wordy, imperative, dynamically-typed, and interpreted language that can use Java classes.<br />
<br />
Dear Princess Celestia: Letter About Arch Linux.<br />
Today I learned:<br />
I wrote "Arch is the best!".<br />
Your faithful student, Twilight Sparkle<br />
<br />
;Forth:Stack-based language.<br />
<br />
." Arch is the best" cr -- kiss way<br />
<br />
;Fortran95<br />
<br />
program arch<br />
print *,"Arch is the best!"<br />
end program arch<br />
<br />
;Genie: A new programming language, that allows for a more modern programming style while being able to effortlessly create and use GObjects natively.<br />
<br />
init<br />
print "Arch is the best"<br />
<br />
;Gjs: A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
;Go: A language created by Google that's a love child between C, C++ and Python.<br />
<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() {<br />
fmt.Println("Arch is the best!")<br />
}<br />
<br />
;Groovy: An agile and dynamic language for the Java Virtual Machine.<br />
<br />
println 'Arch is the best!' <br />
<br />
;Haskell: The language where IO is easy and unproblematic.<br />
<br />
main = putStrLn "Arch is the best!"<br />
<br />
;HTML: A markup language used to create and define web pages and their content.<br />
<br />
<pre><br />
<!DOCTYPE html><br />
<html lang='en'><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
<p>Arch is the best!</p><br />
</body><br />
</html><br />
</pre><br />
<br />
;Io: A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript.<br />
<br />
"Arch is the best!" println<br />
<br />
;Java: An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
;JavaScript: Also known as ECMAScript, a prototype-based object-oriented scripting language.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;JavaScript (in a web browser)<br />
<br />
alert('Arch is the best!');<br />
<br />
;Julia: A fresh approach to numerical computing.<br />
<br />
println("Arch is the best!")<br />
<br />
;LilyPond: A powerful music engraving program with an intuitive LaTeX-like input language.<br />
<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
;LOLCODE: Why not?<br />
<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
;Lua: A lightweight, extensible programming language.<br />
<br />
print "Arch is the best!"<br />
<br />
;Malbolge: A language created to make programming as hard as possible.<br />
<br />
bCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]<br />
\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9y16543210/.-,+*)('&}C#"!~}|{zyxwvu<br />
tsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK-CgGFEDCBA@?>=<;:98x6543210/<br />
.-,+*)('&%$#"!~}|u;yxwpun4rqpRhmf,jihgIe^$ba`_^]\[ZYXQVUTMqQPONMFjJI+A<br />
eEDC%A:^>=<|:981U54t21*/.-&Jk)('&}C#"!aw={z\xwvun4lqpi/mlkjiKaf_%p<br />
<br />
;Morpho: Morpho is a multi-paradigm programming language that supports procedural, object-oriented and functional programming.<br />
<br />
writeln("Arch is the best!");<br />
<br />
;NASM / Yasm (i686): Notice that the string is in the .text section, which feels superior.<br />
<br />
;nasm -f elf32 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
_start:<br />
mov edx,len<br />
mov ecx,msg<br />
mov ebx,1<br />
mov eax,4<br />
int 0x80<br />
xor ebx,ebx<br />
mov eax,1<br />
int 0x80<br />
msg: db "Arch is the best!",10<br />
len equ $-msg<br />
<br />
<br />
;NASM / Yasm (x86_64) :Featuring AMD's sexy new instruction, ''syscall''.<br />
<br />
;nasm -f elf64 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
s:<br />
db 'Arch is the best!',0ah<br />
l equ $-s<br />
_start:<br />
mov rax,1<br />
mov rdi,1<br />
mov rsi,s<br />
mov rdx,l<br />
syscall<br />
mov rax,60<br />
xor rdi,rdi<br />
syscall<br />
<br />
;Nimrod:Portable lightweight programming language.<br />
<br />
echo "Arch is the best!"<br />
<br />
;node.js: a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications, using an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.<br />
<br />
console.log('Arch is the best!');<br />
<br />
;Objective-C: A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
<br />
NSLog(@"Arch is the best!");<br />
<br />
;OCaml: The main implementation of the Caml programming language.<br />
<br />
print_endline "Arch is the best!"<br />
<br />
;Octave: High-level interpreted language, primarily intended for numerical computations.<br />
<br />
printf("Arch is the best!\n")<br />
<br />
;Ook!: brainfuck, translated to Orangutan.<br />
<br />
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.<br />
<br />
;Pascal: An influential imperative and procedural programming language.<br />
<br />
program ArchIsTheBest;<br />
begin<br />
writeln('Arch is the best!');<br />
end.<br />
<br />
;Perl:A high-level, general-purpose, interpreted, dynamic programming language.<br />
<br />
#!/usr/bin/perl<br />
print "Arch is the best!\n";<br />
<br />
;PHP: A general-purpose scripting language.<br />
<br />
<?php<br />
echo "Arch is the best!\n";<br />
?><br />
<br />
;Pixilang: Make me pixels.<br />
<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
;Pony:An object-oriented, actor-model, capabilities-secure, high performance programming language.<br />
<br />
actor Main<br />
new create(env: Env) =><br />
env.out.print("Arch is the best!")<br />
<br />
;Portable GNU assembler: {{ic|as -o arch.o arch.s && ld -o arch -O0 arch.o}}<br />
<br />
.section .data<br />
archIsBest:<br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax<br />
xorl %ebx, %ebx<br />
incl %ebx<br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx<br />
int $0x80<br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx<br />
int $0x80<br />
<br />
;Processing: An open source programming language and IDE built for the electronic arts and visual design.<br />
<br />
println("Arch is the best!");<br />
<br />
;Prolog: A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
<br />
format('Arch is the best~n',[]).<br />
<br />
;Python: A general-purpose high-level programming language.<br />
<br />
print('Arch is the best!')<br />
<br />
;QBASIC: An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
<br />
PRINT "Arch is the best!"<br />
<br />
;R: A language for statistical computing (and much more!).<br />
<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
;Ruby: A dynamic, reflective, general purpose object-oriented programming language.<br />
<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
;Rust: Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.<br />
<br />
fn main() {<br />
println!("Arch is the best!");<br />
}<br />
<br />
;Salt: Salt is an automation framework<br />
<br />
salt '*' event.fire '{"data":"Arch Is the best!"}' 'arch/best'<br />
<br />
;Scala: A multi paradigm language that runs on the JVM.<br />
<br />
object ArchIsBest extends App {<br />
println("Arch is the best!")<br />
}<br />
<br />
;Scheme: A dialect of Lisp.<br />
<br />
(display "Arch is the best!\n")<br />
<br />
or in XunDu style<br />
<br />
#!/usr/bin/guile1.8 -s<br />
!#<br />
(define 节 or)<br />
(define 哀 #t)<br />
(define (xi) (display "Arch is the best!\n"))<br />
(节 (xi) 哀 (wen) 顺 (le) 变 (jian) )<br />
<br />
;Seed: A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
;Shoes: A Ruby version using Shoes for a GUI.<br />
<br />
Shoes.app :width => 135, :height => 30 do<br />
para "Arch is the Best!"<br />
end<br />
<br />
;Smalltalk: Smalltalk is an object-oriented, dynamically typed, reflective programming language.<br />
<br />
Transcript show: 'Arch is the best!'.<br />
<br />
;SQL: Structured Query Language, the query language for relational databases<br />
<br />
SELECT 'Arch is the best!';<br />
SELECT 'Arch is the best!' from dual; -- for Oracle DB<br />
<br />
;Standard ML: A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
<br />
print "Arch is the best!\n"<br />
<br />
;Tcl/Tk: A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
;UEFI: An extensible firmware framework<br />
<br />
#include <Uefi.h><br />
EFI_STATUS EFIAPI<br />
ArchIsTheBest (<br />
IN EFI_HANDLE ImageHandle,<br />
IN EFI_SYSTEM_TABLE *SystemTable<br />
)<br />
{<br />
SystemTable -> ConOut-> OutputString(SystemTable->ConOut, L"Arch is the best!\n"); <br />
return EFI_SUCCESS;<br />
}<br />
<br />
;Vala: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.<br />
<br />
void main(string[] args) {<br />
stdout.printf("\nArch is the best!\n\n");<br />
}<br />
<br />
; Wiring (Arduino):Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
}<br />
void loop()<br />
{<br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
; X11: X11 is an architecture independent system for display of graphical user interfaces.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
== Translations ==<br />
<br />
;Ancient Chinese<br />
阿祺,盡善矣。<br />
<br />
;Ancient Greek (Attic)<br />
Ἡ Ἀψίς ἄριστην ἐστί!<br />
<br />
;Arabic<br />
ارتش هو الأفضل<br />
<br />
;Australian<br />
Arch is fair dinkum, mate!<br />
<br />
;Bahasa Indonesia<br />
Arch terbaik!<br />
<br />
;Basque<br />
Arch onena da!<br />
<br />
;Belarusian<br />
Арч - самы лепшы!<br />
<br />
;Bengali<br />
আর্চ সবচেয়ে ভালো!<br />
<br />
;British<br />
Arch is simply spiffing.<br />
<br />
;Bulgarian<br />
Арч е най-добрият!<br />
<br />
;Catalan<br />
Arch és el millor!<br />
<br />
;Chinese (Simplified)<br />
Arch 最棒了!<br />
<br />
;Chinese (Traditional)<br />
Arch 好棒棒!<br />
<br />
;Chinese (Taobao Style - 淘宝体)<br />
Arch,好评哦,亲!<br />
<br />
;Czech<br />
Arch je nejlepší!<br />
<br />
;Croatian<br />
Arch je najbolji!<br />
<br />
;Danish<br />
Arch er bedst!<br />
<br />
;Doge<br />
So Arch, Much Good, Wow<br />
<br />
;Dutch<br />
Arch is het best!<br />
<br />
;Esperanto<br />
Arch plejbonas!<br />
<br />
;Estonian<br />
Arch on parim!<br />
<br />
;Fikonspråket<br />
Firch Arkon fir äkon fist bäkon<br />
<br />
;Filipino<br />
Mabuhay ang Arch!<br />
<br />
;Finnish<br />
Arch on paras!<br />
<br />
;French<br />
Arch est le meilleur!<br />
<br />
;Galician<br />
Arch é o mellor!<br />
<br />
;German<br />
Arch ist das Beste!<br />
<br />
;Greek (Modern)<br />
Το Αρτς είναι το καλύτερο!<br />
<br />
;Haitian Creole<br />
Arch se meye bagay!<br />
<br />
;Hantec<br />
Arch je nejbetélnější!<br />
<br />
;Hebrew<br />
ארצ' זה הכי אחי!<br />
<br />
;Hindi<br />
आर्च सर्वोत्तम है ।<br />
<br />
;Hungarian<br />
Az Arch a legjobb!<br />
<br />
;Irish<br />
Arch é is fearr!<br />
<br />
;Italian<br />
Arch è il migliore!<br />
<br />
;Japanese<br />
Archが一番ですよ!<br />
<br />
;Kazakh<br />
Арч - ең жақсы!<br />
<br />
;Klingon<br />
Arch'pu'ta"a'<br />
<br />
;Korean<br />
아치가 최고입니다!<br />
<br />
;Kurdish<br />
Arç herî baş e!<br />
<br />
;Latin<br />
Arch optimus est!<br />
<br />
;Latvian<br />
Arch ir labākais!<br />
<br />
;Leet<br />
4rch 15 7h3 b357!<br />
<br />
;Lithuanian<br />
Arch yra geriausias!<br />
<br />
;Lojban<br />
la .artc. xagrai<br />
<br />
;Lolcat<br />
ARCH IZ TEH BEST!<br />
<br />
;Malayalam<br />
ആർച് ആണ് ഏറ്റവും നല്ലത്<br />
<br />
;Mapudungun<br />
writting system: Unificado<br />
Doy kümei Arch<br />
writting system: Raguileo<br />
Zoy kvmey Arc<br />
writting system: Azümchefe (Used in Windows XP)<br />
Zoi kümei Arch<br />
writting system: Nhewenh<br />
Zoi kvmei Arch<br />
writting system: Wirizüŋun<br />
Zoy kümey Arch ''or'' Zoy kvmey Arch<br />
<br />
;Marathi<br />
आर्च सगळ्यात भारी आहे!<br />
<br />
;Nepali<br />
आर्च सबैभन्दा राम्रो हो!<br />
<br />
;Norwegian<br />
Arch er best!<br />
<br />
;Old English<br />
Arch biþ betst!<br />
<br />
;Persian<br />
آرچ بهترین است<br />
<br />
;Pig Latin<br />
Archway isway ethay estbay!<br />
<br />
;Polish<br />
Arch jest najlepszy!<br />
<br />
;Portuguese<br />
Arch é o melhor!<br />
<br />
;Québécois<br />
Arch c'est le plus meilleure du monde!<br />
<br />
;Romanian<br />
Аrch e cel mai bun!<br />
<br />
;Russian<br />
Арч:лучший!<br />
<br />
;Serbian<br />
Arch je najbolji!<br />
<br />
;Shona<br />
Arch iripamberi!<br />
<br />
;Singaporean<br />
Arch the best lah!<br />
<br />
;Slovak<br />
Arch je najlepší!<br />
<br />
;Slovenian<br />
Arch je najboljši!<br />
<br />
;Spanish (Standard)<br />
¡Arch es el mejor!<br />
<br />
;Spanish (Argentina)<br />
Arch es una mazza!!<br />
<br />
;Spanish (Chile)<br />
Arch es bacán<br />
<br />
;Spanish (Chile, alternative)<br />
Arch es la raja<br />
<br />
;Spanish (Chile, marginal)<br />
(written in IPA because standard Spanish doesn't have these sounds)<br />
ˈæɹʃ ɛːʰ tɜ.rˈiː.u.lɛ la rˈa.χa ʃʊ.ɹʊ<br />
<br />
;Spanish (Uruguay)<br />
Arch la rompe!<br />
<br />
;Swedish<br />
Arch är bäst!<br />
<br />
;Turkish<br />
Arch en iyisidir!<br />
<br />
;Tamil<br />
ஆர்ச்சே சிறந்தது!<br />
<br />
;Telugu<br />
ఆర్చ్ ఉత్తమమైనది!<br />
<br />
<br />
;Thai<br />
อาค์ชเทพเมพขิงขิง<br />
<br />
;Toki Pona<br />
Arch li pona mute!<br />
<br />
;Ukrainian<br />
Arch:найкращий!<br />
<br />
;Urdu<br />
آرچ سب سے بہتر ہے!<br />
<br />
;Vietnamese<br />
Arch là tốt nhất!<br />
<br />
;Welsh (Cymraeg)<br />
<br />
Emphasis on Arch:<br />
Arch sydd yr orau un!<br />
Arch sydd y gorau un!<br />
<br />
Emphasis on being the best (one):<br />
Yr orau un yw Arch!<br />
Y gorau un yw Arch!<br />
<br />
== Encodings ==<br />
<br />
;ASCII Banner<br />
_ _ _ _ _ _ _<br />
/\ | | (_) | | | | | | | | | |<br />
/ \ _ __ ___| |__ _ ___ | |_| |__ ___ | |__ ___ ___| |_| |<br />
/ /\ \ | '__/ __| '_ \ | / __| | __| '_ \ / _ \ | '_ \ / _ \/ __| __| |<br />
/ ____ \| | | (__| | | | | \__ \ | |_| | | | __/ | |_) | __/\__ \ |_|_|<br />
/_/ \_\_| \___|_| |_| |_|___/ \__|_| |_|\___| |_.__/ \___||___/\__(_)<br />
<br />
;Base64<br />
QXJjaCBpcyB0aGUgYmVzdCEK<br />
<br />
;Binary ASCII<br />
0100000101110010011000110110100000100000011010010111001100100000011101000110100001100101001000000110001001100101011100110111010000100001<br />
<br />
;Braille<br />
⠁⠗⠉⠓⠀⠊⠎⠀⠮⠀⠃⠑⠎⠞⠲<br />
<br />
;Desrever (Reversed)<br />
!tseb eht si hcrA<br />
<br />
;h4x0r<br />
4rch 15 7h3 b357!<br />
<br />
;Hexadecimal ASCII<br />
4172636820697320746865206265737421<br />
<br />
;md5sum<br />
2d9092e089d77a8e23f47ba3dfe77027<br />
<br />
;Morse Code<br />
.- .-. -.-. .... .. ... - .... . -... . ... -<br />
<br />
;ROT13<br />
Nepu vf gur orfg!<br />
<br />
;sha1sum<br />
7f6ed0bf29abbd7e796ca1311c84a7a21a68a656<br />
<br />
;sha224sum<br />
af15cd556676d37f916a35e2cf74f04cf7b1805b3244ec418c3927d8<br />
<br />
;sha256sum<br />
107139d6b9a15fd97acf743e5806823c8ff868fde8b7c28cfcc2c9184df644ae<br />
<br />
;sha384sum<br />
769ec295d876483aa6cec7ff7997296c8ff2236630b0e48b059576143b60ab30adefec9321d8acc2a133219dfb302bc5<br />
<br />
;sha512sum<br />
b0917f66d05278106808d25f51001b038856fa7171b935d450b4bcbf1e8b82ed6a5a2f49d99734e1efc7ad3d1b8a33519008635d4e1aa3e65a5e70c4de649aad<br />
<br />
;Upside Down<br />
¡ʇsǝq ǝɥʇ s! ɥɔɹ∀<br />
<br />
;URL Encoded<br />
Arch%20is%20the%20best!</div>Betseghttps://wiki.archlinux.org/index.php?title=Talk:Arch_is_the_best&diff=432420Talk:Arch is the best2016-04-24T05:16:29Z<p>Betseg: /* Poll */</p>
<hr />
<div>== <s>pygtk implementation</s> ==<br />
<br />
Do you think a GTK implementation in Python would be a bit long to add to the article? Here it is:<br />
<br />
#!/usr/bin/python<br />
<br />
import pygtk<br />
pygtk.require('2.0')<br />
import gtk<br />
import random<br />
<br />
class ArchIsTheBest:<br />
def __init__(self):<br />
window = gtk.Window(gtk.WINDOW_TOPLEVEL)<br />
window.set_title("Arch is the best!")<br />
window.set_size_request(500,250)<br />
window.connect("delete_event", self.delete_event)<br />
window.connect("destroy", self.destroy)<br />
<br />
vbox = gtk.VBox(False, 0)<br />
window.add(vbox)<br />
vbox.show()<br />
<br />
textview = gtk.TextView(buffer=None)<br />
textviewb = textview.get_buffer()<br />
textviewt = "Arch is the best"<br />
textviewb.set_text(textviewt)<br />
textview.set_editable(False)<br />
textview.set_cursor_visible(False)<br />
textview.set_wrap_mode(True)<br />
vbox.pack_start(textview, True, True, 0)<br />
textview.show()<br />
<br />
button = gtk.Button(stock=gtk.STOCK_CLOSE)<br />
button.connect("clicked", lambda w: gtk.main_quit())<br />
vbox.pack_start(button, False, False, 0)<br />
button.set_flags(gtk.CAN_DEFAULT)<br />
button.grab_default()<br />
button.show()<br />
<br />
window.show()<br />
<br />
def delete_event(self, widget, event, data=None):<br />
return False<br />
<br />
def destroy(self, widget, data=None):<br />
gtk.main_quit()<br />
<br />
def main(self):<br />
gtk.main()<br />
<br />
if __name__ == "__main__":<br />
archisthebest = ArchIsTheBest()<br />
archisthebest.main()<br />
<br />
Also, is it possibly violating The Arch Way by providing a GUI to this application? I think it may just entice those Ubuntu users to jump ship to Arch if we provide this as a GUI, however it is definitely not 'simple'.<br />
[[User:Barrucadu|Barrucadu]] 19:25, 13 May 2008 (EDT)<br />
<br />
Whilst the [https://bbs.archlinux.org/viewtopic.php?id=47306&p=1/ forum thread] relating to this is fun, this page does not add anything meaningful to the Arch wiki, and I don't see how this page adheres to the wiki philosophy or Arch principles (KISS minimalism). Have flagged this page for deletion.<br />
[[User:Joetotale|Joetotale]] 05:42, 9 January 2011 (EST)<br />
<br />
:I agree. I marked it for deletion some time ago, and didn't really feel like pursuing the subject because it would've been an exchange involving a grand total of 2 people.<br />
:There's always some truth to irony, and 'Arch is the best' is implicit enough to survive undetected under the reach of armchair psychology! [[User:Lavandero|Lavandero]] 18:32, 10 January 2011 (EST)<br />
<br />
::I DISagree ^_^. This is an interesting and fun project, and causes no harm for being here. Not only was the page created by an Arch developer, deletion has been removed before by a WIKI ADMIN "(unmarking for deletion (no rationale -- I think this is clever); marked for expansion; categorized)" I should probably put back on the expansion template. Enjoy life, have fun, don't hate on fun. [[User:Jmad980|Jmad980]] 21:27, 2 February 2011 (EST)<br />
<br />
:::^_________^ [[User:Lavandero|Lavandero]] 22:06, 2 February 2011 (EST)<br />
<br />
== <s>Klingon</s> ==<br />
We need it in klingon language!!<br />
<br />
::Done, maybe I writting incorrectly but in theory I use: Arch + Perfection + augmentative, aka 'Arch is more than perfect'--[[user:Jristz|Jristz]] 06:12, 21 September 2013 (UTC)<br />
<br />
== <s>Brithenig</s> ==<br />
Iso code brz, We need brithenig to e perfect--[[user:Jristz|Jristz]] 06:12, 21 September 2013 (UTC)<br />
<br />
== <s>New heading</s> ==<br />
<br />
Sounds lovely. --'''<span style="text-shadow:grey 0.1em 0.1em 0.1em; font-size:110%">[[User:Det|<span style="color:gold">D</span><span style="color:orange">e</span><span style="color:red">t</span>]][[User talk:Det|<sup><font color="white">talk</font></sup>]]</span>''' 22:22, 20 March 2014 (UTC)<br />
<br />
== Greek translations ==<br />
<br />
We currently have [[wikipedia:Attic Greek|Attic]] and [[wikipedia:Demotic Greek|Demotic]].<br />
<br />
I think more translations should be added, such as [[wikipedia:Katharevousa|Katharevousa]], [[wikipedia:Pontic Greek|Pontic]] or any local dialect. Speakers are few nowadays, so if anyone can contribute, please do. [[User:Sudowoodo|Sudowoodo]] ([[User talk:Sudowoodo|talk]]) 09:29, 23 January 2015 (UTC)<br />
<br />
== C code ==<br />
<br />
This comment https://www.reddit.com/r/archlinux/comments/4g0y7v/arch_is_the_best/d2dq13e, while ironic in a tone, seems to have a point. Is the C code unnecessary bloated and not in the Arch way?<br />
<br />
Wouldn't this be better? (simple hello world repurpose)<br />
<br />
#include<stdio.h><br />
<br />
int main(void) {<br />
printf("Arch is the best!\n");<br />
return 0;<br />
}<br />
--[[User:JonnyRobbie|JonnyRobbie]] ([[User talk:JonnyRobbie|talk]]) 09:32, 23 April 2016 (UTC)<br />
<br />
:+1 -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:19, 23 April 2016 (UTC)<br />
<br />
:Same issue with the C++ version. -- [[User:Rdeckard|Rdeckard]] ([[User_talk:Rdeckard|talk]]), [[ArchWiki:Maintainers|Maintainer]] 13:50, 23 April 2016 (UTC)<br />
<br />
::I thought it might be some involved meta joke I'm not getting. The same with the three space indentation. --[[User:JonnyRobbie|JonnyRobbie]] ([[User talk:JonnyRobbie|talk]]) 14:17, 23 April 2016 (UTC)<br />
<br />
:::+1, but still incl. the 3-space meta nudge towards [https://www.python.org/dev/peps/pep-0008/#indentation python]. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 15:02, 23 April 2016 (UTC)<br />
<br />
:I'll argue that it's not better at all, GCC 5.3 generates identical binary for both versions, even with default options. The reddit post is complete nonsense.<br />
:Besides, nitpicking about indentation width and minimality of this code is the least concern compared to the X11 example or any esoteric language.<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 19:03, 23 April 2016 (UTC)<br />
<br />
== Archiving == <br />
<br />
Maybe we should just delete the page to avoid unnecessary work in the spirit of KISS. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 14:01, 23 April 2016 (UTC)<br />
<br />
:+1 It's really just how to do "Hello World" in different programming languages. I guess that's the joke? [https://en.wikibooks.org/wiki/Computer_Programming/Hello_world] -- [[User:Rdeckard|Rdeckard]] ([[User_talk:Rdeckard|talk]]), [[ArchWiki:Maintainers|Maintainer]] 15:23, 23 April 2016 (UTC)<br />
<br />
::-1. Project pages' purpose is described in the intro & has not lost focus since first [https://wiki.archlinux.org/index.php?title=Arch_is_the_best&oldid=40856 revision]. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 17:00, 23 April 2016 (UTC)<br />
<br />
:::Looking at the history, I don't see how this page adds a significant maintenance effort. It's true that it's similar to the Hello World page on wikibooks, but it also includes translations to natural languages: [[Arch_is_the_best#Translations]]. Also, it has its value as a wiki "easter egg". <br />
:::That said, I'm just going to open a poll on this one, and announce it on the forums. [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:42, 23 April 2016 (UTC)<br />
:::It's a joke page. An ironic look to our souls. It doesn't seem to interfere with the rest of the wiki and it doesn't need to be maintained...(kinda). Nobody forces anyone to prioritize this page over more serious and more useful ones. I don't see the need to delete this page.--[[User:JonnyRobbie|JonnyRobbie]] ([[User talk:JonnyRobbie|talk]]) 18:52, 23 April 2016 (UTC)<br />
:::This page and the thread bring a little smile to my face. They hark back to the days when skoal was writing poetry, cactus and others were praising tacos and phrakture was lifting cars over his head. I don't know much about the people populating the bbs now (I liked helping people troubleshoot on the bbs, and the wiki slowly killed that by providing info), but back then some people on the bbs weren't interested only in technical issues. I'd leave it alone, as a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) blast to the past. [[User:Lucke|lucke]] ([[User talk:Lucke|talk]]) 19:25, 23 April 2016 (UTC)<br />
<br />
=== Poll ===<br />
<br />
; Keep the page<br />
* [[User:Dmerej|Dmerej]] ([[User talk:Dmerej|talk]]) 20:45, 23 April 2016 (UTC)<br />
* [[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 17:00, 23 April 2016 (UTC)<br />
* [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:42, 23 April 2016 (UTC)<br />
* [[User:JonnyRobbie|JonnyRobbie]] ([[User talk:JonnyRobbie|talk]]) 18:47, 23 April 2016 (UTC)<br />
* [[User:Lucke|lucke]] ([[User talk:Lucke|talk]]) 19:25, 23 April 2016 (UTC)<br />
* [[User:Steef435|Steef435]] ([[User talk:Steef435|talk]]) 19:38, 23 April 2016 (UTC)<br />
* [[User:Allan|Allan]] ([[User talk:Allan|talk]]) 00:55, 24 April 2016 (UTC)<br />
* <span style="border:1px solid black;font-family:serif;">[[User:Betseg|<font color="#aaaa00">bet</font>]]</span><span style="border:1px solid black;border-left:0px;font-family:serif;">[[User talk:Betseg|<font color="#444400">seg</font>]]</span> 05:16, 24 April 2016 (UTC)<br />
<br />
; Archive it<br />
* [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 14:01, 23 April 2016 (UTC)<br />
* [[User:Rdeckard|Rdeckard]] ([[User_talk:Rdeckard|talk]]) 15:23, 23 April 2016 (UTC)</div>Betseghttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=412513Arch is the best2015-12-16T11:55:25Z<p>Betseg: gone*</p>
<hr />
<div>[[Category:About Arch]]<br />
[[Category:Programming languages]]<br />
[[ja:Arch は最高]]<br />
[[ru:Arch is the best]]<br />
The '''Arch is the best''' project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which gives proof of Arch's superiority.<br />
<br />
== History ==<br />
<br />
The visionary project was originally devised in April 2008 by long time Arch community member [//bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". It was announced to the world with a [//bbs.archlinux.org/viewtopic.php?id=47306 forum post], thus illuminating other people's minds, who immediately started porting it to multiple different languages, both programming and verbal, so that every human being on the planet could fully appreciate and benefit from this revolutionary discovery.<br />
<br />
== Installation ==<br />
<br />
A sample PKGBUILD called {{AUR|archbest-mod1}}{{Broken package link|{{aur-mirror|archbest-mod1}}}} has been uploaded to [[AUR]].<br />
<br />
== The code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
<br />
;1C&#58;Enterprise 7.7/8/8.1/8.2:A procedural domain-specific compiled dynamically-typed programming language mostly similar to VisualBasic which is used in "1C:Enterprise" products widespread in Russia and other CIS countries.<br />
<br />
Предупреждение("Arch is the best!");<br />
<br />
<br />
;Ada:A systems critical programming language.<br />
<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end HelloWorld;<br />
<br />
<br />
;APL:A Programming Language.<br />
<br />
'Arch is the best!'<br />
<br />
<br />
;ATS:A functional programming language that uses dependent types to improve programs' reliability.<br />
<br />
implement main () = println! "Arch is the best!"<br />
<br />
;Awk:A data-driven programming language designed for processing text-based data.<br />
<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
<br />
;Befunge:Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
<br />
;Boo:A stablished object oriented statically typed programming language for .NET and Mono with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features such as macros and custom compilation pipelines.<br />
<br />
print "Arch is the best!"<br />
<br />
<br />
;Bourne shell:The original program, should be compatible with any shell.<br />
<br />
#!/bin/sh<br />
echo "Arch is the best!"<br />
<br />
<br />
;Bourne shell (Alternate):Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
<br />
#!/bin/sh<br />
yes Arch is the best!<br />
<br />
<br />
;Bourne shell (Dynamically updated)<br />
<br />
<pre style='overflow:auto'><br />
#!/bin/bash<br />
wget http://wiki.archlinux.org/index.php/Arch_is_the_best -qO-| sed -n ':b;n;s/id="Translations"//;Tb;:d;n;s/id="Encodings"//;t;p;bd'|sed '/<i>.*<\/i>/d;s/<[^>]*>//g'|sed 'N;s/\n/: /;N;N;s/\n//g'<br />
</pre><br />
<br />
;or<br />
<br />
<pre style='overflow:auto'><br />
#!/bin/bash<br />
curl -s "https://wiki.archlinux.org/index.php?title=Arch_is_the_best&action=raw" | sed -n '/==Translations==/,$p' | sed "s/^\(.*\)$/* \1:/;t;s/^[^=]/ &/"<br />
</pre><br />
<br />
<br />
;brainfuck:Doesn't the language name explain it?<br />
<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
<br />
;C:Note the three space indenting used in this project, much like that used by other superior beings.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main(void)<br />
{<br />
puts("Arch is the best!");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
<br />
;C#:Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
<br />
using System;<br />
public class ArchIsTheBest<br />
{<br />
static public void Main ()<br />
{<br />
Console.WriteLine ("Arch is the best!");<br />
}<br />
}<br />
<br />
<br />
;C++:Arch == Linux++<br />
<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
<br />
;COBOL:A simple, lightweight programming language.<br />
<br />
IDENTIFICATION DIVISION.<br />
PROGRAM-ID. TheBest.<br />
<br />
PROCEDURE DIVISION.<br />
DISPLAY "Arch is the best!".<br />
STOP RUN.<br />
<br />
<br />
;CoffeeScript:A programming language that transcompiles to JavaScript.<br />
<br />
alert 'Arch is the best!'<br />
<br />
<br />
;Clojure:A Lisp dialect that runs on the JVM.<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"})<br />
<br />
(defn read-choice []<br />
(println "\nAvailable languages: ")<br />
(doall (map #(println (key %)) translations))<br />
(print "Enter language or Ctrl-c: ") (flush)<br />
(translations (read-line) :badinput))<br />
<br />
(defn arch-is-the-best []<br />
(loop [choice (read-choice)]<br />
(case choice<br />
:badinput (do (print "\nBad input!\n")<br />
(recur (read-choice)))<br />
(do (print "\n" choice "\n")<br />
(recur (read-choice))))))<br />
<br />
;or<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"<br />
"street" "Arch iz da shizzle ma nizzle"})<br />
(while 1<br />
(println "\nPick a language:\n" (map #(key %) translations) "\n language: ")<br />
(println (translations (read-line) "Not a valid language")))<br />
<br />
;or<br />
<br />
(prn "Arch is the best!")<br />
<br />
<br />
;Common Lisp:Tested on SBCL, feel free to add more of the translations.<br />
<br />
#!/usr/bin/sbcl --script<br />
(defparameter *best-list* '((English "Arch is the best!")<br />
(Chinese "Arch, 她出类拔萃!")<br />
(German "Arch ist das Beste!")<br />
(Greek "Το Arch είναι το καλύτερο!")))<br />
(defun aitb ()<br />
(format t "Available languages: ~{~{~@(~a~)~*~}~^, ~}.~%" *best-list*)<br />
(loop for input = (progn (format t "~&Input the desired language, (or 'quit'): ~%")<br />
(force-output)<br />
(read-line))<br />
if (string-equal input "quit")<br />
do (loop-finish)<br />
else<br />
do (let ((language-def<br />
(assoc input *best-list*<br />
:key (lambda (lang) (symbol-name lang))<br />
:test #'string-equal)))<br />
(if language-def<br />
(format t "~&~A~%" (second language-def))<br />
(format t "~&Invalid language.~%"))))<br />
(format t "~&May the Arch be with you!~%"))<br />
(aitb)<br />
<br />
<br />
;Common Lisp (Alternate):Should run on any implementation (Clisp, Allegro, SBCL...)<br />
<br />
(princ "Arch is the best!")<br />
<br />
<br />
;D:A C-style language. The benefits of hindsight, with modern conveniences.<br />
<br />
import std.stdio : writeln;<br />
void main()<br />
{<br />
writeln("Arch is the best");<br />
}<br />
<br />
<br />
;Dart:Google's javascript killer<br />
<br />
main(){<br />
print('Arch is the best');<br />
}<br />
<br />
<br />
;Dogescript:Doge-friendly JavaScript<br />
<br />
console.loge with ' So Arch'<br />
console.loge with ' Much Good'<br />
console.loge with ' Wow'<br />
<br />
<br />
;Emacs Lisp:A dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors<br />
<br />
(message "Arch is the best!")<br />
<br />
<br />
;Erlang:A concurrent, garbage-collected programming language and runtime system.<br />
<br />
-module(arch).<br />
-export([is_the_best/0]).<br />
is_the_best() -> io:fwrite("Arch is the best!\n").<br />
<br />
;Or using message passing between processes<br />
<br />
-module(arch).<br />
-export([ultimate_question/0,the_answer/0]).<br />
the_answer() -><br />
receive<br />
{Client,who_is_the_best} -><br />
Client ! {self(),"Arch is the best!"};<br />
{Client,_} -><br />
Client ! {self(),"Taco Taco Taco!"}<br />
end,<br />
the_answer().<br />
ultimate_question() -><br />
Pid = spawn(arch,the_answer,[]),<br />
Pid ! {self(),who_is_the_best},<br />
receive<br />
{Pid,Response} -> io:format("~s~n",[Response])<br />
end.<br />
<br />
<br />
;F#:A strongly-typed, functional-first programming language for writing simple code to solve complex problems.<br />
<br />
printfn "Arch is the best!"<br />
<br />
<br />
;Factor:High-level stack-based language.<br />
<br />
"Arch is the best" print<br />
<br />
<br />
;FIM++:A wordy, imperative, dynamically-typed, and interpreted language that can use Java classes.<br />
<br />
Dear Princess Celestia: Letter About Arch Linux.<br />
Today I learned:<br />
I wrote "Arch is the best!".<br />
Your faithful student, Twilight Sparkle<br />
<br />
<br />
;Forth:Stack-based language.<br />
<br />
." Arch is the best" cr -- kiss way<br />
<br />
<br />
;Fortran95<br />
<br />
program arch<br />
print *,"Arch is the best!"<br />
end program arch<br />
<br />
<br />
;Genie:A new programming language, that allows for a more modern programming style while being able to effortlessly create and use GObjects natively.<br />
<br />
init<br />
print "Arch is the best"<br />
<br />
<br />
;Gjs:A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
<br />
;Go:A language created by Google that's a love child between C, C++ and Python.<br />
<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() {<br />
fmt.Println("Arch is the best!")<br />
}<br />
<br />
;Groovy:An agile and dynamic language for the Java Virtual Machine.<br />
<br />
println 'Arch is the best!' <br />
<br />
<br />
;Haskell:The language where IO is easy and unproblematic.<br />
<br />
main = putStrLn "Arch is the best!"<br />
<br />
<br />
;HTML:A markup language used to create and define web pages and their content.<br />
<br />
<pre><br />
<!DOCTYPE html><br />
<html lang='en'><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
<p>Arch is the best!</p><br />
</body><br />
</html><br />
</pre><br />
<br />
;Io:A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript.<br />
<br />
"Arch is the best!" println<br />
<br />
<br />
;Java:An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
<br />
;JavaScript:Also known as ECMAScript, a prototype-based object-oriented scripting language.<br />
<br />
console.log('Arch is the best!');<br />
<br />
<br />
;JavaScript (in a web browser)<br />
<br />
alert('Arch is the best!');<br />
<br />
<br />
;Julia:A fresh approach to numerical computing.<br />
<br />
println("Arch is the best!")<br />
<br />
<br />
;LilyPond:A powerful music engraving program with an intuitive LaTeX-like input language.<br />
<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
<br />
;LOLCODE:Why not?<br />
<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
<br />
;Lua:A lightweight, extensible programming language.<br />
<br />
print "Arch is the best!"<br />
<br />
<br />
;Malbolge:A language created to make programming as hard as possible.<br />
<br />
bCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]<br />
\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9y16543210/.-,+*)('&}C#"!~}|{zyxwvu<br />
tsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK-CgGFEDCBA@?>=<;:98x6543210/<br />
.-,+*)('&%$#"!~}|u;yxwpun4rqpRhmf,jihgIe^$ba`_^]\[ZYXQVUTMqQPONMFjJI+A<br />
eEDC%A:^>=<|:981U54t21*/.-&Jk)('&}C#"!aw={z\xwvun4lqpi/mlkjiKaf_%p<br />
<br />
<br />
;Morpho:Morpho is a multi-paradigm programming language that supports procedural, object-oriented and functional programming.<br />
<br />
writeln("Arch is the best!");<br />
<br />
<br />
;Nasm(x86_64) (or yasm):Notice that the string is in the .text section, which feels superior.<br />
<br />
;nasm -f elf64 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
_start:<br />
mov edx,len<br />
mov ecx,msg<br />
mov ebx,1<br />
mov eax,4<br />
int 0x80<br />
xor ebx,ebx<br />
mov eax,1<br />
int 0x80<br />
msg: db "Arch is the best!",10<br />
len equ $-msg<br />
<br />
<br />
;Nimrod:Portable lightweight programming language.<br />
<br />
echo "Arch is the best!"<br />
<br />
<br />
;node.js:a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications, using an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.<br />
<br />
console.log('Arch is the best!');<br />
<br />
<br />
;Objective-C:A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
<br />
NSLog(@"Arch is the best!");<br />
<br />
<br />
;OCaml:The main implementation of the Caml programming language.<br />
<br />
print_endline "Arch is the best!"<br />
<br />
<br />
;Octave:High-level interpreted language, primarily intended for numerical computations.<br />
<br />
printf("Arch is the best!\n")<br />
<br />
<br />
;Ook!:brainfuck, translated to Orangutan.<br />
<br />
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.<br />
<br />
<br />
;Pascal:An influential imperative and procedural programming language.<br />
<br />
program ArchIsTheBest;<br />
begin<br />
writeln('Arch is the best!');<br />
end.<br />
<br />
<br />
;Perl:A high-level, general-purpose, interpreted, dynamic programming language.<br />
<br />
#!/usr/bin/perl<br />
print "Arch is the best!\n";<br />
<br />
<br />
;PHP:A general-purpose scripting language.<br />
<br />
<?php<br />
echo "Arch is the best!\n";<br />
?><br />
<br />
<br />
;Pixilang:Make me pixels.<br />
<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
<br />
;Pony:An object-oriented, actor-model, capabilities-secure, high performance programming language.<br />
<br />
actor Main<br />
new create(env: Env) =><br />
env.out.print("Arch is the best!")<br />
<br />
<br />
;Portable GNU assembler:{{ic|as -o arch.o arch.s && ld -o arch -O0 arch.o}}<br />
<br />
.section .data<br />
archIsBest:<br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax<br />
xorl %ebx, %ebx<br />
incl %ebx<br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx<br />
int $0x80<br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx<br />
int $0x80<br />
<br />
<br />
;Processing:An open source programming language and IDE built for the electronic arts and visual design.<br />
<br />
println("Arch is the best!");<br />
<br />
<br />
;Prolog:A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
<br />
format('Arch is the best~n',[]).<br />
<br />
<br />
;Python:A general-purpose high-level programming language.<br />
<br />
#!/usr/bin/env python3<br />
print('Arch is the best!')<br />
<br />
<br />
;QBASIC:An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
<br />
PRINT "Arch is the best!"<br />
<br />
<br />
;R:A language for statistical computing (and much more!).<br />
<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
<br />
;Ruby:A dynamic, reflective, general purpose object-oriented programming language.<br />
<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
<br />
;Rust:Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.<br />
<br />
fn main() {<br />
println!("Arch is the best!");<br />
}<br />
<br />
<br />
;Scala:A multi paradigm language that runs on the JVM.<br />
<br />
object ArchIsBest extends App {<br />
println("Arch is the best!")<br />
}<br />
<br />
<br />
;Scheme:A dialect of Lisp.<br />
<br />
(display "Arch is the best!\n")<br />
<br />
or in XunDu style<br />
<br />
#!/usr/bin/guile1.8 -s<br />
!#<br />
(define 节 or)<br />
(define 哀 #t)<br />
(define (xi) (display "Arch is the best!\n"))<br />
(节 (xi) 哀 (wen) 顺 (le) 变 (jian) )<br />
<br />
<br />
;Seed:A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
<br />
;Shoes:A Ruby version using Shoes for a GUI.<br />
<br />
Shoes.app :width => 135, :height => 30 do<br />
para "Arch is the Best!"<br />
end<br />
<br />
<br />
;SQL:Structured Query Language, the query language for relational databases<br />
<br />
SELECT 'Arch is the best!';<br />
SELECT 'Arch is the best!' from dual; -- for Oracle DB<br />
<br />
<br />
;Standard ML:A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
<br />
print "Arch is the best!\n"<br />
<br />
<br />
;Tcl/Tk:A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
;UEFI:An extensible firmware framework<br />
<br />
#include <Uefi.h><br />
EFI_STATUS EFIAPI<br />
ArchIsTheBest (<br />
IN EFI_HANDLE ImageHandle,<br />
IN EFI_SYSTEM_TABLE *SystemTable<br />
)<br />
{<br />
SystemTable -> ConOut-> OutputString(SystemTable->ConOut, L"Arch is the best!\n"); <br />
return EFI_SUCCESS;<br />
}<br />
<br />
;Vala:Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.<br />
<br />
void main(string[] args) {<br />
stdout.printf("\nArch is the best!\n\n");<br />
}<br />
<br />
<br />
; Wiring (Arduino):Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
}<br />
void loop()<br />
{<br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
<br />
; X11 :X11 is an architecture independent system for display of graphical user interfaces.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
== Translations ==<br />
<br />
;Ancient Chinese<br />
阿祺,盡善矣。<br />
<br />
;Ancient Greek (Attic)<br />
Ἡ Ἀψίς ἄριστην ἐστί!<br />
<br />
;Arabic<br />
ارتش هو الأفضل<br />
<br />
;Australian<br />
Arch is fair dinkum, mate!<br />
<br />
;Bahasa Indonesia<br />
Arch terbaik!<br />
<br />
;Basque<br />
Arch onena da!<br />
<br />
;Belarusian<br />
Арч - самы лепшы!<br />
<br />
;Bengali<br />
আর্চ সবচেয়ে ভালো!<br />
<br />
;British<br />
Arch is simply spiffing.<br />
<br />
;Bulgarian<br />
Арч е най-добрият!<br />
<br />
;Catalan<br />
Arch és el millor!<br />
<br />
;Chinese (Simplified)<br />
Arch 最棒了!<br />
<br />
;Chinese (Traditional)<br />
Arch 好棒棒!<br />
<br />
;Chinese (Taobao Style - 淘宝体)<br />
Arch,好评哦,亲!<br />
<br />
;Czech<br />
Arch je nejlepší!<br />
<br />
;Croatian<br />
Arch je najbolji!<br />
<br />
;Danish<br />
Arch er bedst!<br />
<br />
;Doge<br />
So Arch, Much Good, Wow<br />
<br />
;Dutch<br />
Arch is de beste!<br />
<br />
;Esperanto<br />
Arch plejbonas!<br />
<br />
;Estonian<br />
Arch on parim!<br />
<br />
;Fikonspråket<br />
Firch Arkon fir äkon fist bäkon<br />
<br />
;Filipino<br />
Mabuhay ang Arch!<br />
<br />
;Finnish<br />
Arch on paras!<br />
<br />
;French<br />
Arch est le meilleur!<br />
<br />
;Galician<br />
Arch é o mellor!<br />
<br />
;German<br />
Arch ist das Beste!<br />
<br />
;Greek (Modern)<br />
Το Αρτς είναι το καλύτερο!<br />
<br />
;Haitian Creole<br />
Arch se meye bagay!<br />
<br />
;Hantec<br />
Arch je nejbetélnější!<br />
<br />
;Hebrew<br />
ארצ' זה הכי אחי!<br />
<br />
;Hindi<br />
आर्च सर्वोत्तम है ।<br />
<br />
;Hungarian<br />
Az Arch a legjobb!<br />
<br />
;Irish<br />
Arch é is fearr!<br />
<br />
;Italian<br />
Arch è il migliore!<br />
<br />
;Japanese<br />
Archが一番ですよ!<br />
<br />
;Kazakh<br />
Арч - ең жақсы!<br />
<br />
;Klingon<br />
Arch'pu'ta"a'<br />
<br />
;Korean<br />
아치가 최고입니다!<br />
<br />
;Latin<br />
Arch optimus est!<br />
<br />
;Latvian<br />
Arch ir labākais!<br />
<br />
;Leet<br />
4rch 15 7h3 b357!<br />
<br />
;Lithuanian<br />
Arch yra geriausias!<br />
<br />
;Lojban<br />
la .artc. xagrai<br />
<br />
;Lolcat<br />
ARCH IZ TEH BEST!<br />
<br />
;Malayalam<br />
ആർച് ആണ് ഏറ്റവും നല്ലത്<br />
<br />
;Mapudungun<br />
writting system: Unificado<br />
Doy kümei Arch<br />
writting system: Raguileo<br />
Zoy kvmey Arc<br />
writting system: Azümchefe (Used in Windows XP)<br />
Zoi kümei Arch<br />
writting system: Nhewenh<br />
Zoi kvmei Arch<br />
writting system: Wirizüŋun<br />
Zoy kümey Arch ''or'' Zoy kvmey Arch<br />
<br />
;Marathi<br />
आर्च सगळ्यात भारी आहे!<br />
<br />
;Nepali<br />
आर्च सबैभन्दा राम्रो हो!<br />
<br />
;Norwegian<br />
Arch er best!<br />
<br />
;Old English<br />
Arch biþ betst!<br />
<br />
;Persian<br />
آرچ بهترین است<br />
<br />
;Pig Latin<br />
Archway isway ethay estbay!<br />
<br />
;Polish<br />
Arch jest najlepszy!<br />
<br />
;Portuguese<br />
Arch é o melhor!<br />
<br />
;Québécois<br />
Arch est le plus meilleure du monde!<br />
<br />
;Romanian<br />
Аrch e cel mai bun!<br />
<br />
;Russian<br />
Арч:лучший!<br />
<br />
;Serbian<br />
Arch je najbolji!<br />
<br />
;Singaporean<br />
Arch the best lah!<br />
<br />
;Slovenian<br />
Arch je najboljši!<br />
<br />
;Spanish (Standard)<br />
¡Arch es el mejor!<br />
<br />
;Spanish (Argentina)<br />
Arch es una mazza!!<br />
<br />
;Spanish (Chile)<br />
Arch es bacán<br />
<br />
;Spanish (Chile, alternative)<br />
Arch es la raja<br />
<br />
;Spanish (Chile, marginal)<br />
(written in IPA because standard Spanish doesn't have these sounds)<br />
ˈæɹʃ ɛːʰ tɜ.rˈiː.u.lɛ la rˈa.χa ʃʊ.ɹʊ<br />
<br />
;Spanish (Uruguay)<br />
Arch la rompe!<br />
<br />
;Swedish<br />
Arch är bäst!<br />
<br />
;Turkish<br />
Arch en iyisidir!<br />
<br />
;Tamil<br />
ஆர்ச்சே சிறந்தது!<br />
<br />
;Telugu<br />
ఆర్చ్ ఉత్తమమైనది!<br />
<br />
<br />
;Thai<br />
อาค์ชเทพเมพขิงขิง<br />
<br />
;Toki Pona<br />
Arch li pona mute!<br />
<br />
;Ukrainian<br />
Arch:найкращий!<br />
<br />
;Urdu<br />
آرچ سب سے بہتر ہے!<br />
<br />
;Vietnamese<br />
Arch là tốt nhất!<br />
<br />
;Welsh (Cymraeg)<br />
<br />
Emphasis on Arch:<br />
Arch sydd yr orau un!<br />
Arch sydd y gorau un!<br />
<br />
Emphasis on being the best (one):<br />
Yr orau un yw Arch!<br />
Y gorau un yw Arch!<br />
<br />
== Encodings ==<br />
<br />
;ASCII Banner<br />
_ _ _ _ _ _ _<br />
/\ | | (_) | | | | | | | | | |<br />
/ \ _ __ ___| |__ _ ___ | |_| |__ ___ | |__ ___ ___| |_| |<br />
/ /\ \ | '__/ __| '_ \ | / __| | __| '_ \ / _ \ | '_ \ / _ \/ __| __| |<br />
/ ____ \| | | (__| | | | | \__ \ | |_| | | | __/ | |_) | __/\__ \ |_|_|<br />
/_/ \_\_| \___|_| |_| |_|___/ \__|_| |_|\___| |_.__/ \___||___/\__(_)<br />
<br />
;Base64<br />
QXJjaCBpcyB0aGUgYmVzdCEK<br />
<br />
;Binary ASCII<br />
0100000101110010011000110110100000100000011010010111001100100000011101000110100001100101001000000110001001100101011100110111010000100001<br />
<br />
;Braille<br />
⠁⠗⠉⠓⠀⠊⠎⠀⠮⠀⠃⠑⠎⠞⠲<br />
<br />
;Desrever (Reversed)<br />
!tseb eht si hcrA<br />
<br />
;h4x0r<br />
4rch 15 7h3 b357!<br />
<br />
;Hexadecimal ASCII<br />
4172636820697320746865206265737421<br />
<br />
;md5sum<br />
2d9092e089d77a8e23f47ba3dfe77027<br />
<br />
;Morse Code<br />
.- .-. -.-. .... .. ... - .... . -... . ... -<br />
<br />
;ROT13<br />
Nepu vf gur orfg!<br />
<br />
;sha1sum<br />
7f6ed0bf29abbd7e796ca1311c84a7a21a68a656<br />
<br />
;sha224sum<br />
af15cd556676d37f916a35e2cf74f04cf7b1805b3244ec418c3927d8<br />
<br />
;sha256sum<br />
107139d6b9a15fd97acf743e5806823c8ff868fde8b7c28cfcc2c9184df644ae<br />
<br />
;sha384sum<br />
769ec295d876483aa6cec7ff7997296c8ff2236630b0e48b059576143b60ab30adefec9321d8acc2a133219dfb302bc5<br />
<br />
;sha512sum<br />
b0917f66d05278106808d25f51001b038856fa7171b935d450b4bcbf1e8b82ed6a5a2f49d99734e1efc7ad3d1b8a33519008635d4e1aa3e65a5e70c4de649aad<br />
<br />
;Upside Down<br />
¡ʇsǝq ǝɥʇ s! ɥɔɹ∀<br />
<br />
;URL Encoded<br />
Arch%20is%20the%20best!</div>Betseghttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=412512Arch is the best2015-12-16T11:54:39Z<p>Betseg: oops, sed gome too far</p>
<hr />
<div>[[Category:About Arch]]<br />
[[Category:Programming languages]]<br />
[[ja:Arch は最高]]<br />
[[ru:Arch is the best]]<br />
The '''Arch is the best''' project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which gives proof of Arch's superiority.<br />
<br />
== History ==<br />
<br />
The visionary project was originally devised in April 2008 by long time Arch community member [https://bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". It was announced to the world with a [https://bbs.archlinux.org/viewtopic.php?id=47306 forum post], thus illuminating other people's minds, who immediately started porting it to multiple different languages, both programming and verbal, so that every human being on the planet could fully appreciate and benefit from this revolutionary discovery.<br />
<br />
== Installation ==<br />
<br />
A sample PKGBUILD called {{AUR|archbest-mod1}}{{Broken package link|{{aur-mirror|archbest-mod1}}}} has been uploaded to [[AUR]].<br />
<br />
== The code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
<br />
;1C&#58;Enterprise 7.7/8/8.1/8.2:A procedural domain-specific compiled dynamically-typed programming language mostly similar to VisualBasic which is used in "1C:Enterprise" products widespread in Russia and other CIS countries.<br />
<br />
Предупреждение("Arch is the best!");<br />
<br />
<br />
;Ada:A systems critical programming language.<br />
<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end HelloWorld;<br />
<br />
<br />
;APL:A Programming Language.<br />
<br />
'Arch is the best!'<br />
<br />
<br />
;ATS:A functional programming language that uses dependent types to improve programs' reliability.<br />
<br />
implement main () = println! "Arch is the best!"<br />
<br />
;Awk:A data-driven programming language designed for processing text-based data.<br />
<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
<br />
;Befunge:Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
<br />
;Boo:A stablished object oriented statically typed programming language for .NET and Mono with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features such as macros and custom compilation pipelines.<br />
<br />
print "Arch is the best!"<br />
<br />
<br />
;Bourne shell:The original program, should be compatible with any shell.<br />
<br />
#!/bin/sh<br />
echo "Arch is the best!"<br />
<br />
<br />
;Bourne shell (Alternate):Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
<br />
#!/bin/sh<br />
yes Arch is the best!<br />
<br />
<br />
;Bourne shell (Dynamically updated)<br />
<br />
<pre style='overflow:auto'><br />
#!/bin/bash<br />
wget http://wiki.archlinux.org/index.php/Arch_is_the_best -qO-| sed -n ':b;n;s/id="Translations"//;Tb;:d;n;s/id="Encodings"//;t;p;bd'|sed '/<i>.*<\/i>/d;s/<[^>]*>//g'|sed 'N;s/\n/: /;N;N;s/\n//g'<br />
</pre><br />
<br />
;or<br />
<br />
<pre style='overflow:auto'><br />
#!/bin/bash<br />
curl -s "https://wiki.archlinux.org/index.php?title=Arch_is_the_best&action=raw" | sed -n '/==Translations==/,$p' | sed "s/^\(.*\)$/* \1:/;t;s/^[^=]/ &/"<br />
</pre><br />
<br />
<br />
;brainfuck:Doesn't the language name explain it?<br />
<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
<br />
;C:Note the three space indenting used in this project, much like that used by other superior beings.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main(void)<br />
{<br />
puts("Arch is the best!");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
<br />
;C#:Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
<br />
using System;<br />
public class ArchIsTheBest<br />
{<br />
static public void Main ()<br />
{<br />
Console.WriteLine ("Arch is the best!");<br />
}<br />
}<br />
<br />
<br />
;C++:Arch == Linux++<br />
<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
<br />
;COBOL:A simple, lightweight programming language.<br />
<br />
IDENTIFICATION DIVISION.<br />
PROGRAM-ID. TheBest.<br />
<br />
PROCEDURE DIVISION.<br />
DISPLAY "Arch is the best!".<br />
STOP RUN.<br />
<br />
<br />
;CoffeeScript:A programming language that transcompiles to JavaScript.<br />
<br />
alert 'Arch is the best!'<br />
<br />
<br />
;Clojure:A Lisp dialect that runs on the JVM.<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"})<br />
<br />
(defn read-choice []<br />
(println "\nAvailable languages: ")<br />
(doall (map #(println (key %)) translations))<br />
(print "Enter language or Ctrl-c: ") (flush)<br />
(translations (read-line) :badinput))<br />
<br />
(defn arch-is-the-best []<br />
(loop [choice (read-choice)]<br />
(case choice<br />
:badinput (do (print "\nBad input!\n")<br />
(recur (read-choice)))<br />
(do (print "\n" choice "\n")<br />
(recur (read-choice))))))<br />
<br />
;or<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"<br />
"street" "Arch iz da shizzle ma nizzle"})<br />
(while 1<br />
(println "\nPick a language:\n" (map #(key %) translations) "\n language: ")<br />
(println (translations (read-line) "Not a valid language")))<br />
<br />
;or<br />
<br />
(prn "Arch is the best!")<br />
<br />
<br />
;Common Lisp:Tested on SBCL, feel free to add more of the translations.<br />
<br />
#!/usr/bin/sbcl --script<br />
(defparameter *best-list* '((English "Arch is the best!")<br />
(Chinese "Arch, 她出类拔萃!")<br />
(German "Arch ist das Beste!")<br />
(Greek "Το Arch είναι το καλύτερο!")))<br />
(defun aitb ()<br />
(format t "Available languages: ~{~{~@(~a~)~*~}~^, ~}.~%" *best-list*)<br />
(loop for input = (progn (format t "~&Input the desired language, (or 'quit'): ~%")<br />
(force-output)<br />
(read-line))<br />
if (string-equal input "quit")<br />
do (loop-finish)<br />
else<br />
do (let ((language-def<br />
(assoc input *best-list*<br />
:key (lambda (lang) (symbol-name lang))<br />
:test #'string-equal)))<br />
(if language-def<br />
(format t "~&~A~%" (second language-def))<br />
(format t "~&Invalid language.~%"))))<br />
(format t "~&May the Arch be with you!~%"))<br />
(aitb)<br />
<br />
<br />
;Common Lisp (Alternate):Should run on any implementation (Clisp, Allegro, SBCL...)<br />
<br />
(princ "Arch is the best!")<br />
<br />
<br />
;D:A C-style language. The benefits of hindsight, with modern conveniences.<br />
<br />
import std.stdio : writeln;<br />
void main()<br />
{<br />
writeln("Arch is the best");<br />
}<br />
<br />
<br />
;Dart:Google's javascript killer<br />
<br />
main(){<br />
print('Arch is the best');<br />
}<br />
<br />
<br />
;Dogescript:Doge-friendly JavaScript<br />
<br />
console.loge with ' So Arch'<br />
console.loge with ' Much Good'<br />
console.loge with ' Wow'<br />
<br />
<br />
;Emacs Lisp:A dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors<br />
<br />
(message "Arch is the best!")<br />
<br />
<br />
;Erlang:A concurrent, garbage-collected programming language and runtime system.<br />
<br />
-module(arch).<br />
-export([is_the_best/0]).<br />
is_the_best() -> io:fwrite("Arch is the best!\n").<br />
<br />
;Or using message passing between processes<br />
<br />
-module(arch).<br />
-export([ultimate_question/0,the_answer/0]).<br />
the_answer() -><br />
receive<br />
{Client,who_is_the_best} -><br />
Client ! {self(),"Arch is the best!"};<br />
{Client,_} -><br />
Client ! {self(),"Taco Taco Taco!"}<br />
end,<br />
the_answer().<br />
ultimate_question() -><br />
Pid = spawn(arch,the_answer,[]),<br />
Pid ! {self(),who_is_the_best},<br />
receive<br />
{Pid,Response} -> io:format("~s~n",[Response])<br />
end.<br />
<br />
<br />
;F#:A strongly-typed, functional-first programming language for writing simple code to solve complex problems.<br />
<br />
printfn "Arch is the best!"<br />
<br />
<br />
;Factor:High-level stack-based language.<br />
<br />
"Arch is the best" print<br />
<br />
<br />
;FIM++:A wordy, imperative, dynamically-typed, and interpreted language that can use Java classes.<br />
<br />
Dear Princess Celestia: Letter About Arch Linux.<br />
Today I learned:<br />
I wrote "Arch is the best!".<br />
Your faithful student, Twilight Sparkle<br />
<br />
<br />
;Forth:Stack-based language.<br />
<br />
." Arch is the best" cr -- kiss way<br />
<br />
<br />
;Fortran95<br />
<br />
program arch<br />
print *,"Arch is the best!"<br />
end program arch<br />
<br />
<br />
;Genie:A new programming language, that allows for a more modern programming style while being able to effortlessly create and use GObjects natively.<br />
<br />
init<br />
print "Arch is the best"<br />
<br />
<br />
;Gjs:A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
<br />
;Go:A language created by Google that's a love child between C, C++ and Python.<br />
<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() {<br />
fmt.Println("Arch is the best!")<br />
}<br />
<br />
;Groovy:An agile and dynamic language for the Java Virtual Machine.<br />
<br />
println 'Arch is the best!' <br />
<br />
<br />
;Haskell:The language where IO is easy and unproblematic.<br />
<br />
main = putStrLn "Arch is the best!"<br />
<br />
<br />
;HTML:A markup language used to create and define web pages and their content.<br />
<br />
<pre><br />
<!DOCTYPE html><br />
<html lang='en'><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
<p>Arch is the best!</p><br />
</body><br />
</html><br />
</pre><br />
<br />
;Io:A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript.<br />
<br />
"Arch is the best!" println<br />
<br />
<br />
;Java:An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
<br />
;JavaScript:Also known as ECMAScript, a prototype-based object-oriented scripting language.<br />
<br />
console.log('Arch is the best!');<br />
<br />
<br />
;JavaScript (in a web browser)<br />
<br />
alert('Arch is the best!');<br />
<br />
<br />
;Julia:A fresh approach to numerical computing.<br />
<br />
println("Arch is the best!")<br />
<br />
<br />
;LilyPond:A powerful music engraving program with an intuitive LaTeX-like input language.<br />
<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
<br />
;LOLCODE:Why not?<br />
<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
<br />
;Lua:A lightweight, extensible programming language.<br />
<br />
print "Arch is the best!"<br />
<br />
<br />
;Malbolge:A language created to make programming as hard as possible.<br />
<br />
bCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]<br />
\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9y16543210/.-,+*)('&}C#"!~}|{zyxwvu<br />
tsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK-CgGFEDCBA@?>=<;:98x6543210/<br />
.-,+*)('&%$#"!~}|u;yxwpun4rqpRhmf,jihgIe^$ba`_^]\[ZYXQVUTMqQPONMFjJI+A<br />
eEDC%A:^>=<|:981U54t21*/.-&Jk)('&}C#"!aw={z\xwvun4lqpi/mlkjiKaf_%p<br />
<br />
<br />
;Morpho:Morpho is a multi-paradigm programming language that supports procedural, object-oriented and functional programming.<br />
<br />
writeln("Arch is the best!");<br />
<br />
<br />
;Nasm(x86_64) (or yasm):Notice that the string is in the .text section, which feels superior.<br />
<br />
;nasm -f elf64 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
_start:<br />
mov edx,len<br />
mov ecx,msg<br />
mov ebx,1<br />
mov eax,4<br />
int 0x80<br />
xor ebx,ebx<br />
mov eax,1<br />
int 0x80<br />
msg: db "Arch is the best!",10<br />
len equ $-msg<br />
<br />
<br />
;Nimrod:Portable lightweight programming language.<br />
<br />
echo "Arch is the best!"<br />
<br />
<br />
;node.js:a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications, using an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.<br />
<br />
console.log('Arch is the best!');<br />
<br />
<br />
;Objective-C:A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
<br />
NSLog(@"Arch is the best!");<br />
<br />
<br />
;OCaml:The main implementation of the Caml programming language.<br />
<br />
print_endline "Arch is the best!"<br />
<br />
<br />
;Octave:High-level interpreted language, primarily intended for numerical computations.<br />
<br />
printf("Arch is the best!\n")<br />
<br />
<br />
;Ook!:brainfuck, translated to Orangutan.<br />
<br />
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.<br />
<br />
<br />
;Pascal:An influential imperative and procedural programming language.<br />
<br />
program ArchIsTheBest;<br />
begin<br />
writeln('Arch is the best!');<br />
end.<br />
<br />
<br />
;Perl:A high-level, general-purpose, interpreted, dynamic programming language.<br />
<br />
#!/usr/bin/perl<br />
print "Arch is the best!\n";<br />
<br />
<br />
;PHP:A general-purpose scripting language.<br />
<br />
<?php<br />
echo "Arch is the best!\n";<br />
?><br />
<br />
<br />
;Pixilang:Make me pixels.<br />
<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
<br />
;Pony:An object-oriented, actor-model, capabilities-secure, high performance programming language.<br />
<br />
actor Main<br />
new create(env: Env) =><br />
env.out.print("Arch is the best!")<br />
<br />
<br />
;Portable GNU assembler:{{ic|as -o arch.o arch.s && ld -o arch -O0 arch.o}}<br />
<br />
.section .data<br />
archIsBest:<br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax<br />
xorl %ebx, %ebx<br />
incl %ebx<br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx<br />
int $0x80<br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx<br />
int $0x80<br />
<br />
<br />
;Processing:An open source programming language and IDE built for the electronic arts and visual design.<br />
<br />
println("Arch is the best!");<br />
<br />
<br />
;Prolog:A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
<br />
format('Arch is the best~n',[]).<br />
<br />
<br />
;Python:A general-purpose high-level programming language.<br />
<br />
#!/usr/bin/env python3<br />
print('Arch is the best!')<br />
<br />
<br />
;QBASIC:An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
<br />
PRINT "Arch is the best!"<br />
<br />
<br />
;R:A language for statistical computing (and much more!).<br />
<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
<br />
;Ruby:A dynamic, reflective, general purpose object-oriented programming language.<br />
<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
<br />
;Rust:Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.<br />
<br />
fn main() {<br />
println!("Arch is the best!");<br />
}<br />
<br />
<br />
;Scala:A multi paradigm language that runs on the JVM.<br />
<br />
object ArchIsBest extends App {<br />
println("Arch is the best!")<br />
}<br />
<br />
<br />
;Scheme:A dialect of Lisp.<br />
<br />
(display "Arch is the best!\n")<br />
<br />
or in XunDu style<br />
<br />
#!/usr/bin/guile1.8 -s<br />
!#<br />
(define 节 or)<br />
(define 哀 #t)<br />
(define (xi) (display "Arch is the best!\n"))<br />
(节 (xi) 哀 (wen) 顺 (le) 变 (jian) )<br />
<br />
<br />
;Seed:A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
<br />
;Shoes:A Ruby version using Shoes for a GUI.<br />
<br />
Shoes.app :width => 135, :height => 30 do<br />
para "Arch is the Best!"<br />
end<br />
<br />
<br />
;SQL:Structured Query Language, the query language for relational databases<br />
<br />
SELECT 'Arch is the best!';<br />
SELECT 'Arch is the best!' from dual; -- for Oracle DB<br />
<br />
<br />
;Standard ML:A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
<br />
print "Arch is the best!\n"<br />
<br />
<br />
;Tcl/Tk:A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
;UEFI:An extensible firmware framework<br />
<br />
#include <Uefi.h><br />
EFI_STATUS EFIAPI<br />
ArchIsTheBest (<br />
IN EFI_HANDLE ImageHandle,<br />
IN EFI_SYSTEM_TABLE *SystemTable<br />
)<br />
{<br />
SystemTable -> ConOut-> OutputString(SystemTable->ConOut, L"Arch is the best!\n"); <br />
return EFI_SUCCESS;<br />
}<br />
<br />
;Vala:Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.<br />
<br />
void main(string[] args) {<br />
stdout.printf("\nArch is the best!\n\n");<br />
}<br />
<br />
<br />
; Wiring (Arduino):Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
}<br />
void loop()<br />
{<br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
<br />
; X11 :X11 is an architecture independent system for display of graphical user interfaces.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
== Translations ==<br />
<br />
;Ancient Chinese<br />
阿祺,盡善矣。<br />
<br />
;Ancient Greek (Attic)<br />
Ἡ Ἀψίς ἄριστην ἐστί!<br />
<br />
;Arabic<br />
ارتش هو الأفضل<br />
<br />
;Australian<br />
Arch is fair dinkum, mate!<br />
<br />
;Bahasa Indonesia<br />
Arch terbaik!<br />
<br />
;Basque<br />
Arch onena da!<br />
<br />
;Belarusian<br />
Арч - самы лепшы!<br />
<br />
;Bengali<br />
আর্চ সবচেয়ে ভালো!<br />
<br />
;British<br />
Arch is simply spiffing.<br />
<br />
;Bulgarian<br />
Арч е най-добрият!<br />
<br />
;Catalan<br />
Arch és el millor!<br />
<br />
;Chinese (Simplified)<br />
Arch 最棒了!<br />
<br />
;Chinese (Traditional)<br />
Arch 好棒棒!<br />
<br />
;Chinese (Taobao Style - 淘宝体)<br />
Arch,好评哦,亲!<br />
<br />
;Czech<br />
Arch je nejlepší!<br />
<br />
;Croatian<br />
Arch je najbolji!<br />
<br />
;Danish<br />
Arch er bedst!<br />
<br />
;Doge<br />
So Arch, Much Good, Wow<br />
<br />
;Dutch<br />
Arch is de beste!<br />
<br />
;Esperanto<br />
Arch plejbonas!<br />
<br />
;Estonian<br />
Arch on parim!<br />
<br />
;Fikonspråket<br />
Firch Arkon fir äkon fist bäkon<br />
<br />
;Filipino<br />
Mabuhay ang Arch!<br />
<br />
;Finnish<br />
Arch on paras!<br />
<br />
;French<br />
Arch est le meilleur!<br />
<br />
;Galician<br />
Arch é o mellor!<br />
<br />
;German<br />
Arch ist das Beste!<br />
<br />
;Greek (Modern)<br />
Το Αρτς είναι το καλύτερο!<br />
<br />
;Haitian Creole<br />
Arch se meye bagay!<br />
<br />
;Hantec<br />
Arch je nejbetélnější!<br />
<br />
;Hebrew<br />
ארצ' זה הכי אחי!<br />
<br />
;Hindi<br />
आर्च सर्वोत्तम है ।<br />
<br />
;Hungarian<br />
Az Arch a legjobb!<br />
<br />
;Irish<br />
Arch é is fearr!<br />
<br />
;Italian<br />
Arch è il migliore!<br />
<br />
;Japanese<br />
Archが一番ですよ!<br />
<br />
;Kazakh<br />
Арч - ең жақсы!<br />
<br />
;Klingon<br />
Arch'pu'ta"a'<br />
<br />
;Korean<br />
아치가 최고입니다!<br />
<br />
;Latin<br />
Arch optimus est!<br />
<br />
;Latvian<br />
Arch ir labākais!<br />
<br />
;Leet<br />
4rch 15 7h3 b357!<br />
<br />
;Lithuanian<br />
Arch yra geriausias!<br />
<br />
;Lojban<br />
la .artc. xagrai<br />
<br />
;Lolcat<br />
ARCH IZ TEH BEST!<br />
<br />
;Malayalam<br />
ആർച് ആണ് ഏറ്റവും നല്ലത്<br />
<br />
;Mapudungun<br />
writting system: Unificado<br />
Doy kümei Arch<br />
writting system: Raguileo<br />
Zoy kvmey Arc<br />
writting system: Azümchefe (Used in Windows XP)<br />
Zoi kümei Arch<br />
writting system: Nhewenh<br />
Zoi kvmei Arch<br />
writting system: Wirizüŋun<br />
Zoy kümey Arch ''or'' Zoy kvmey Arch<br />
<br />
;Marathi<br />
आर्च सगळ्यात भारी आहे!<br />
<br />
;Nepali<br />
आर्च सबैभन्दा राम्रो हो!<br />
<br />
;Norwegian<br />
Arch er best!<br />
<br />
;Old English<br />
Arch biþ betst!<br />
<br />
;Persian<br />
آرچ بهترین است<br />
<br />
;Pig Latin<br />
Archway isway ethay estbay!<br />
<br />
;Polish<br />
Arch jest najlepszy!<br />
<br />
;Portuguese<br />
Arch é o melhor!<br />
<br />
;Québécois<br />
Arch est le plus meilleure du monde!<br />
<br />
;Romanian<br />
Аrch e cel mai bun!<br />
<br />
;Russian<br />
Арч:лучший!<br />
<br />
;Serbian<br />
Arch je najbolji!<br />
<br />
;Singaporean<br />
Arch the best lah!<br />
<br />
;Slovenian<br />
Arch je najboljši!<br />
<br />
;Spanish (Standard)<br />
¡Arch es el mejor!<br />
<br />
;Spanish (Argentina)<br />
Arch es una mazza!!<br />
<br />
;Spanish (Chile)<br />
Arch es bacán<br />
<br />
;Spanish (Chile, alternative)<br />
Arch es la raja<br />
<br />
;Spanish (Chile, marginal)<br />
(written in IPA because standard Spanish doesn't have these sounds)<br />
ˈæɹʃ ɛːʰ tɜ.rˈiː.u.lɛ la rˈa.χa ʃʊ.ɹʊ<br />
<br />
;Spanish (Uruguay)<br />
Arch la rompe!<br />
<br />
;Swedish<br />
Arch är bäst!<br />
<br />
;Turkish<br />
Arch en iyisidir!<br />
<br />
;Tamil<br />
ஆர்ச்சே சிறந்தது!<br />
<br />
;Telugu<br />
ఆర్చ్ ఉత్తమమైనది!<br />
<br />
<br />
;Thai<br />
อาค์ชเทพเมพขิงขิง<br />
<br />
;Toki Pona<br />
Arch li pona mute!<br />
<br />
;Ukrainian<br />
Arch:найкращий!<br />
<br />
;Urdu<br />
آرچ سب سے بہتر ہے!<br />
<br />
;Vietnamese<br />
Arch là tốt nhất!<br />
<br />
;Welsh (Cymraeg)<br />
<br />
Emphasis on Arch:<br />
Arch sydd yr orau un!<br />
Arch sydd y gorau un!<br />
<br />
Emphasis on being the best (one):<br />
Yr orau un yw Arch!<br />
Y gorau un yw Arch!<br />
<br />
== Encodings ==<br />
<br />
;ASCII Banner<br />
_ _ _ _ _ _ _<br />
/\ | | (_) | | | | | | | | | |<br />
/ \ _ __ ___| |__ _ ___ | |_| |__ ___ | |__ ___ ___| |_| |<br />
/ /\ \ | '__/ __| '_ \ | / __| | __| '_ \ / _ \ | '_ \ / _ \/ __| __| |<br />
/ ____ \| | | (__| | | | | \__ \ | |_| | | | __/ | |_) | __/\__ \ |_|_|<br />
/_/ \_\_| \___|_| |_| |_|___/ \__|_| |_|\___| |_.__/ \___||___/\__(_)<br />
<br />
;Base64<br />
QXJjaCBpcyB0aGUgYmVzdCEK<br />
<br />
;Binary ASCII<br />
0100000101110010011000110110100000100000011010010111001100100000011101000110100001100101001000000110001001100101011100110111010000100001<br />
<br />
;Braille<br />
⠁⠗⠉⠓⠀⠊⠎⠀⠮⠀⠃⠑⠎⠞⠲<br />
<br />
;Desrever (Reversed)<br />
!tseb eht si hcrA<br />
<br />
;h4x0r<br />
4rch 15 7h3 b357!<br />
<br />
;Hexadecimal ASCII<br />
4172636820697320746865206265737421<br />
<br />
;md5sum<br />
2d9092e089d77a8e23f47ba3dfe77027<br />
<br />
;Morse Code<br />
.- .-. -.-. .... .. ... - .... . -... . ... -<br />
<br />
;ROT13<br />
Nepu vf gur orfg!<br />
<br />
;sha1sum<br />
7f6ed0bf29abbd7e796ca1311c84a7a21a68a656<br />
<br />
;sha224sum<br />
af15cd556676d37f916a35e2cf74f04cf7b1805b3244ec418c3927d8<br />
<br />
;sha256sum<br />
107139d6b9a15fd97acf743e5806823c8ff868fde8b7c28cfcc2c9184df644ae<br />
<br />
;sha384sum<br />
769ec295d876483aa6cec7ff7997296c8ff2236630b0e48b059576143b60ab30adefec9321d8acc2a133219dfb302bc5<br />
<br />
;sha512sum<br />
b0917f66d05278106808d25f51001b038856fa7171b935d450b4bcbf1e8b82ed6a5a2f49d99734e1efc7ad3d1b8a33519008635d4e1aa3e65a5e70c4de649aad<br />
<br />
;Upside Down<br />
¡ʇsǝq ǝɥʇ s! ɥɔɹ∀<br />
<br />
;URL Encoded<br />
Arch%20is%20the%20best!</div>Betseghttps://wiki.archlinux.org/index.php?title=Arch_is_the_best&diff=412511Arch is the best2015-12-16T11:54:00Z<p>Betseg: KISS</p>
<hr />
<div>[[Category:About Arch]]<br />
[[Category:Programming languages]]<br />
[[ja:Arch は最高]]<br />
[[ru:Arch is the best]]<br />
The Arch is the best project is a very sophisticated and exquisite, ego-boosting and mind-blowing (albeit perhaps a bit over-engineered) project which gives proof of Arch's superiority.<br />
<br />
== History ==<br />
<br />
The visionary project was originally devised in April 2008 by long time Arch community member [https://bbs.archlinux.org/profile.php?id=2529 lucke] as a simple shell script which provided irrefutable proof that "Arch is the best". It was announced to the world with a [https://bbs.archlinux.org/viewtopic.php?id=47306 forum post], thus illuminating other people's minds, who immediately started porting it to multiple different languages, both programming and verbal, so that every human being on the planet could fully appreciate and benefit from this revolutionary discovery.<br />
<br />
== Installation ==<br />
<br />
A sample PKGBUILD called {{AUR|archbest-mod1}}{{Broken package link|{{aur-mirror|archbest-mod1}}}} has been uploaded to [[AUR]].<br />
<br />
== The code ==<br />
<br />
The "Arch is the best" project is ported to many programming languages.<br />
<br />
<br />
;1C&#58;Enterprise 7.7/8/8.1/8.2:A procedural domain-specific compiled dynamically-typed programming language mostly similar to VisualBasic which is used in "1C:Enterprise" products widespread in Russia and other CIS countries.<br />
<br />
Предупреждение("Arch is the best!");<br />
<br />
<br />
;Ada:A systems critical programming language.<br />
<br />
with Ada.Text_IO;<br />
use Ada.Text_IO;<br />
procedure ArchIsTheBest is<br />
begin<br />
Put_Line("Arch is the best!");<br />
end HelloWorld;<br />
<br />
<br />
;APL:A Programming Language.<br />
<br />
'Arch is the best!'<br />
<br />
<br />
;ATS:A functional programming language that uses dependent types to improve programs' reliability.<br />
<br />
implement main () = println! "Arch is the best!"<br />
<br />
;Awk:A data-driven programming language designed for processing text-based data.<br />
<br />
BEGIN {<br />
print "Arch is the best!"<br />
}<br />
<br />
<br />
;Befunge:Believed to be the first two-dimensional, ASCII-based, general-purpose (in the sense of "you could plausibly write Hunt the Wumpus in it") programming language.<br />
<br />
<v"Arch is the best!"0<br />
<,_@#:<br />
<br />
<br />
;Boo:A stablished object oriented statically typed programming language for .NET and Mono with a python inspired syntax and a special focus on metaprogramming through language and compiler extensibility features such as macros and custom compilation pipelines.<br />
<br />
print "Arch is the best!"<br />
<br />
<br />
;Bourne shell:The original program, should be compatible with any shell.<br />
<br />
#!/bin/sh<br />
echo "Arch is the best!"<br />
<br />
<br />
;Bourne shell (Alternate):Handy for piping the output to your favourite IRC/email/IM client. Should work with any shell.<br />
<br />
#!/bin/sh<br />
yes Arch is the best!<br />
<br />
<br />
;Bourne shell (Dynamically updated)<br />
<br />
<pre style='overflow:auto'><br />
#!/bin/bash<br />
wget http://wiki.archlinux.org/index.php/Arch_is_the_best -qO-| sed -n ':b;n;s/id="Translations"//;Tb;:d;n;s/id="Encodings"//;t;p;bd'|sed '/<i>.*<\/i>/d;s/<[^>]*>//g'|sed 'N;s/\n/: /;N;N;s/\n//g'<br />
</pre><br />
<br />
;or<br />
<br />
<pre style='overflow:auto'><br />
#!/bin/bash<br />
curl -s "https://wiki.archlinux.org/index.php?title=Arch_is_the_best&action=raw" | sed -n '/==Translations==/,$p' | sed "s/^\(.*\)$/* \1:/;t;s/^[^=]/ &/"<br />
</pre><br />
<br />
<br />
;brainfuck:Doesn't the language name explain it?<br />
<br />
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>]<br />
<----------------.---------------.+++++.<+++[-<++++++++++>]<.<br />
>>+.++++++++++.<<.>>+.------------.---.<<.>>---.<br />
+++.++++++++++++++.+.<<+.[-]++++++++++.<br />
<br />
<br />
;C:Note the three space indenting used in this project, much like that used by other superior beings.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
int main(void)<br />
{<br />
puts("Arch is the best!");<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
<br />
;C#:Intended to be a simple, modern, general-purpose, object-oriented programming language.<br />
<br />
using System;<br />
public class ArchIsTheBest<br />
{<br />
static public void Main ()<br />
{<br />
Console.WriteLine ("Arch is the best!");<br />
}<br />
}<br />
<br />
<br />
;C++:Arch == Linux++<br />
<br />
#include <iostream><br />
#include <cstdlib><br />
int main ()<br />
{<br />
std::cout << "Arch is the best!" << std::endl;<br />
return EXIT_SUCCESS;<br />
}<br />
<br />
<br />
;COBOL:A simple, lightweight programming language.<br />
<br />
IDENTIFICATION DIVISION.<br />
PROGRAM-ID. TheBest.<br />
<br />
PROCEDURE DIVISION.<br />
DISPLAY "Arch is the best!".<br />
STOP RUN.<br />
<br />
<br />
;CoffeeScript:A programming language that transcompiles to JavaScript.<br />
<br />
alert 'Arch is the best!'<br />
<br />
<br />
;Clojure:A Lisp dialect that runs on the JVM.<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"})<br />
<br />
(defn read-choice []<br />
(println "\nAvailable languages: ")<br />
(doall (map #(println (key %)) translations))<br />
(print "Enter language or Ctrl-c: ") (flush)<br />
(translations (read-line) :badinput))<br />
<br />
(defn arch-is-the-best []<br />
(loop [choice (read-choice)]<br />
(case choice<br />
:badinput (do (print "\nBad input!\n")<br />
(recur (read-choice)))<br />
(do (print "\n" choice "\n")<br />
(recur (read-choice))))))<br />
<br />
;or<br />
<br />
(def translations {"english" "Arch is the best!",<br />
"german" "Arch ist das Beste!",<br />
"australian" "Arch is fair dinkum, mate!",<br />
"h4x0r" "arhc 51 7he be57!",<br />
"spanish" "¡Arch es el mejor!"<br />
"street" "Arch iz da shizzle ma nizzle"})<br />
(while 1<br />
(println "\nPick a language:\n" (map #(key %) translations) "\n language: ")<br />
(println (translations (read-line) "Not a valid language")))<br />
<br />
;or<br />
<br />
(prn "Arch is the best!")<br />
<br />
<br />
;Common Lisp:Tested on SBCL, feel free to add more of the translations.<br />
<br />
#!/usr/bin/sbcl --script<br />
(defparameter *best-list* '((English "Arch is the best!")<br />
(Chinese "Arch, 她出类拔萃!")<br />
(German "Arch ist das Beste!")<br />
(Greek "Το Arch είναι το καλύτερο!")))<br />
(defun aitb ()<br />
(format t "Available languages: ~{~{~@(~a~)~*~}~^, ~}.~%" *best-list*)<br />
(loop for input = (progn (format t "~&Input the desired language, (or 'quit'): ~%")<br />
(force-output)<br />
(read-line))<br />
if (string-equal input "quit")<br />
do (loop-finish)<br />
else<br />
do (let ((language-def<br />
(assoc input *best-list*<br />
:key (lambda (lang) (symbol-name lang))<br />
:test #'string-equal)))<br />
(if language-def<br />
(format t "~&~A~%" (second language-def))<br />
(format t "~&Invalid language.~%"))))<br />
(format t "~&May the Arch be with you!~%"))<br />
(aitb)<br />
<br />
<br />
;Common Lisp (Alternate):Should run on any implementation (Clisp, Allegro, SBCL...)<br />
<br />
(princ "Arch is the best!")<br />
<br />
<br />
;D:A C-style language. The benefits of hindsight, with modern conveniences.<br />
<br />
import std.stdio : writeln;<br />
void main()<br />
{<br />
writeln("Arch is the best");<br />
}<br />
<br />
<br />
;Dart:Google's javascript killer<br />
<br />
main(){<br />
print('Arch is the best');<br />
}<br />
<br />
<br />
;Dogescript:Doge-friendly JavaScript<br />
<br />
console.loge with ' So Arch'<br />
console.loge with ' Much Good'<br />
console.loge with ' Wow'<br />
<br />
<br />
;Emacs Lisp:A dialect of the Lisp programming language used by the GNU Emacs and XEmacs text editors<br />
<br />
(message "Arch is the best!")<br />
<br />
<br />
;Erlang:A concurrent, garbage-collected programming language and runtime system.<br />
<br />
-module(arch).<br />
-export([is_the_best/0]).<br />
is_the_best() -> io:fwrite("Arch is the best!\n").<br />
<br />
;Or using message passing between processes<br />
<br />
-module(arch).<br />
-export([ultimate_question/0,the_answer/0]).<br />
the_answer() -><br />
receive<br />
{Client,who_is_the_best} -><br />
Client ! {self(),"Arch is the best!"};<br />
{Client,_} -><br />
Client ! {self(),"Taco Taco Taco!"}<br />
end,<br />
the_answer().<br />
ultimate_question() -><br />
Pid = spawn(arch,the_answer,[]),<br />
Pid ! {self(),who_is_the_best},<br />
receive<br />
{Pid,Response} -> io:format("~s~n",[Response])<br />
end.<br />
<br />
<br />
;F#:A strongly-typed, functional-first programming language for writing simple code to solve complex problems.<br />
<br />
printfn "Arch is the best!"<br />
<br />
<br />
;Factor:High-level stack-based language.<br />
<br />
"Arch is the best" print<br />
<br />
<br />
;FIM++:A wordy, imperative, dynamically-typed, and interpreted language that can use Java classes.<br />
<br />
Dear Princess Celestia: Letter About Arch Linux.<br />
Today I learned:<br />
I wrote "Arch is the best!".<br />
Your faithful student, Twilight Sparkle<br />
<br />
<br />
;Forth:Stack-based language.<br />
<br />
." Arch is the best" cr -- kiss way<br />
<br />
<br />
;Fortran95<br />
<br />
program arch<br />
print *,"Arch is the best!"<br />
end program arch<br />
<br />
<br />
;Genie:A new programming language, that allows for a more modern programming style while being able to effortlessly create and use GObjects natively.<br />
<br />
init<br />
print "Arch is the best"<br />
<br />
<br />
;Gjs:A Javascript binding for GNOME. It's mainly based on Spidermonkey javascript engine and the GObject introspection framework.<br />
<br />
#!/usr/bin/env gjs<br />
print ('Arch is the best');<br />
<br />
<br />
;Go:A language created by Google that's a love child between C, C++ and Python.<br />
<br />
package main<br />
<br />
import "fmt"<br />
<br />
func main() {<br />
fmt.Println("Arch is the best!")<br />
}<br />
<br />
;Groovy:An agile and dynamic language for the Java Virtual Machine.<br />
<br />
println 'Arch is the best!' <br />
<br />
<br />
;Haskell:The language where IO is easy and unproblematic.<br />
<br />
main = putStrLn "Arch is the best!"<br />
<br />
<br />
;HTML:A markup language used to create and define web pages and their content.<br />
<br />
<pre><br />
<!DOCTYPE html><br />
<html lang='en'><br />
<head><br />
<title>Arch is the best!</title><br />
</head><br />
<body><br />
<p>Arch is the best!</p><br />
</body><br />
</html><br />
</pre><br />
<br />
;Io:A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript.<br />
<br />
"Arch is the best!" println<br />
<br />
<br />
;Java:An extremely portable language, this will run on pretty much anything, it might even run on your toaster!<br />
<br />
public class ArchIsTheBest {<br />
public static void main(String[] args) {<br />
System.out.println("Arch is the best!");<br />
}<br />
}<br />
<br />
<br />
;JavaScript:Also known as ECMAScript, a prototype-based object-oriented scripting language.<br />
<br />
console.log('Arch is the best!');<br />
<br />
<br />
;JavaScript (in a web browser)<br />
<br />
alert('Arch is the best!');<br />
<br />
<br />
;Julia:A fresh approach to numerical computing.<br />
<br />
println("Arch is the best!")<br />
<br />
<br />
;LilyPond:A powerful music engraving program with an intuitive LaTeX-like input language.<br />
<br />
\version "2.12.3"<br />
\include "english.ly"<br />
\header { title = "Arch is the best!" }<br />
\score<br />
{<br />
<<<br />
\relative c' { c4 e g c \bar "||" }<br />
\addlyrics { Arch is the best! }<br />
>><br />
}<br />
<br />
<br />
;LOLCODE:Why not?<br />
<br />
HAI<br />
CAN HAS STDIO?<br />
VISIBLE "ARCH IS TEH PWNZ LOL!"<br />
KTHXBYE<br />
<br />
<br />
;Lua:A lightweight, extensible programming language.<br />
<br />
print "Arch is the best!"<br />
<br />
<br />
;Malbolge:A language created to make programming as hard as possible.<br />
<br />
bCBA@?>=<;:9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcba`_^]<br />
\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9y16543210/.-,+*)('&}C#"!~}|{zyxwvu<br />
tsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK-CgGFEDCBA@?>=<;:98x6543210/<br />
.-,+*)('&%$#"!~}|u;yxwpun4rqpRhmf,jihgIe^$ba`_^]\[ZYXQVUTMqQPONMFjJI+A<br />
eEDC%A:^>=<|:981U54t21*/.-&Jk)('&}C#"!aw={z\xwvun4lqpi/mlkjiKaf_%p<br />
<br />
<br />
;Morpho:Morpho is a multi-paradigm programming language that supports procedural, object-oriented and functional programming.<br />
<br />
writeln("Arch is the best!");<br />
<br />
<br />
;Nasm(x86_64) (or yasm):Notice that the string is in the .text section, which feels superior.<br />
<br />
;nasm -f elf64 arch.asm<br />
;ld -o arch arch.o<br />
;./arch<br />
<br />
section .text<br />
global _start<br />
_start:<br />
mov edx,len<br />
mov ecx,msg<br />
mov ebx,1<br />
mov eax,4<br />
int 0x80<br />
xor ebx,ebx<br />
mov eax,1<br />
int 0x80<br />
msg: db "Arch is the best!",10<br />
len equ $-msg<br />
<br />
<br />
;Nimrod:Portable lightweight programming language.<br />
<br />
echo "Arch is the best!"<br />
<br />
<br />
;node.js:a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications, using an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.<br />
<br />
console.log('Arch is the best!');<br />
<br />
<br />
;Objective-C:A reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.<br />
<br />
NSLog(@"Arch is the best!");<br />
<br />
<br />
;OCaml:The main implementation of the Caml programming language.<br />
<br />
print_endline "Arch is the best!"<br />
<br />
<br />
;Octave:High-level interpreted language, primarily intended for numerical computations.<br />
<br />
printf("Arch is the best!\n")<br />
<br />
<br />
;Ook!:brainfuck, translated to Orangutan.<br />
<br />
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook! Ook? Ook. Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.<br />
<br />
<br />
;Pascal:An influential imperative and procedural programming language.<br />
<br />
program ArchIsTheBest;<br />
begin<br />
writeln('Arch is the best!');<br />
end.<br />
<br />
<br />
;Perl:A high-level, general-purpose, interpreted, dynamic programming language.<br />
<br />
#!/usr/bin/perl<br />
print "Arch is the best!\n";<br />
<br />
<br />
;PHP:A general-purpose scripting language.<br />
<br />
<?php<br />
echo "Arch is the best!\n";<br />
?><br />
<br />
<br />
;Pixilang:Make me pixels.<br />
<br />
print("Arch is the best!",0,0,#1897D1)<br />
frame<br />
<br />
<br />
;Pony:An object-oriented, actor-model, capabilities-secure, high performance programming language.<br />
<br />
actor Main<br />
new create(env: Env) =><br />
env.out.print("Arch is the best!")<br />
<br />
<br />
;Portable GNU assembler:{{ic|as -o arch.o arch.s && ld -o arch -O0 arch.o}}<br />
<br />
.section .data<br />
archIsBest:<br />
.ascii "Arch is the best!\n"<br />
archIsBest_len:<br />
.long . - archIsBest<br />
.section .text<br />
.globl _start<br />
_start:<br />
xorl %ebx, %ebx<br />
movl $4, %eax<br />
xorl %ebx, %ebx<br />
incl %ebx<br />
leal archIsBest, %ecx<br />
movl archIsBest_len, %edx<br />
int $0x80<br />
xorl %eax, %eax<br />
incl %eax<br />
xorl %ebx, %ebx<br />
int $0x80<br />
<br />
<br />
;Processing:An open source programming language and IDE built for the electronic arts and visual design.<br />
<br />
println("Arch is the best!");<br />
<br />
<br />
;Prolog:A general purpose logic programming language associated with artificial intelligence and computational linguistics.<br />
<br />
format('Arch is the best~n',[]).<br />
<br />
<br />
;Python:A general-purpose high-level programming language.<br />
<br />
#!/usr/bin/env python3<br />
print('Arch is the best!')<br />
<br />
<br />
;QBASIC:An interpreter for a variant of the BASIC programming language which is based on QuickBASIC.<br />
<br />
PRINT "Arch is the best!"<br />
<br />
<br />
;R:A language for statistical computing (and much more!).<br />
<br />
archIsBest <- function() { cat("Arch is the best!\n") }<br />
archIsBest()<br />
<br />
<br />
;Ruby:A dynamic, reflective, general purpose object-oriented programming language.<br />
<br />
#!/usr/bin/ruby -w<br />
puts 'Arch is the best!'<br />
<br />
<br />
;Rust:Rust is a systems programming language that runs blazingly fast, prevents almost all crashes, and eliminates data races.<br />
<br />
fn main() {<br />
println!("Arch is the best!");<br />
}<br />
<br />
<br />
;Scala:A multi paradigm language that runs on the JVM.<br />
<br />
object ArchIsBest extends App {<br />
println("Arch is the best!")<br />
}<br />
<br />
<br />
;Scheme:A dialect of Lisp.<br />
<br />
(display "Arch is the best!\n")<br />
<br />
or in XunDu style<br />
<br />
#!/usr/bin/guile1.8 -s<br />
!#<br />
(define 节 or)<br />
(define 哀 #t)<br />
(define (xi) (display "Arch is the best!\n"))<br />
(节 (xi) 哀 (wen) 顺 (le) 变 (jian) )<br />
<br />
<br />
;Seed:A library and interpreter, dynamically bridging the WebKit JavaScriptCore engine, with the GNOME platform.<br />
<br />
#!/usr/bin/env seed<br />
print ('Arch is the best');<br />
<br />
<br />
;Shoes:A Ruby version using Shoes for a GUI.<br />
<br />
Shoes.app :width => 135, :height => 30 do<br />
para "Arch is the Best!"<br />
end<br />
<br />
<br />
;SQL:Structured Query Language, the query language for relational databases<br />
<br />
SELECT 'Arch is the best!';<br />
SELECT 'Arch is the best!' from dual; -- for Oracle DB<br />
<br />
<br />
;Standard ML:A general-purpose, modular, functional programming language with compile-time type checking and type inference.<br />
<br />
print "Arch is the best!\n"<br />
<br />
<br />
;Tcl/Tk:A scripting language that is commonly used for rapid prototyping, scripted applications, GUIs and testing.<br />
<br />
#!/usr/bin/env tclsh<br />
puts "Arch is the best!"<br />
<br />
;UEFI:An extensible firmware framework<br />
<br />
#include <Uefi.h><br />
EFI_STATUS EFIAPI<br />
ArchIsTheBest (<br />
IN EFI_HANDLE ImageHandle,<br />
IN EFI_SYSTEM_TABLE *SystemTable<br />
)<br />
{<br />
SystemTable -> ConOut-> OutputString(SystemTable->ConOut, L"Arch is the best!\n"); <br />
return EFI_SUCCESS;<br />
}<br />
<br />
;Vala:Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.<br />
<br />
void main(string[] args) {<br />
stdout.printf("\nArch is the best!\n\n");<br />
}<br />
<br />
<br />
; Wiring (Arduino):Built on Processing, the open source programming language developed at the Massachusetts Institute of Technology.<br />
<br />
void setup()<br />
{<br />
Serial.begin(9600);<br />
}<br />
void loop()<br />
{<br />
Serial.print("Arch is the best!");<br />
}<br />
<br />
<br />
; X11 :X11 is an architecture independent system for display of graphical user interfaces.<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
#include <string.h><br />
<br />
#include <X11/Xlib.h><br />
<br />
int main()<br />
{<br />
Display *d;<br />
Window w;<br />
XEvent e;<br />
int s;<br />
<br />
if (!(d = XOpenDisplay(NULL))) {<br />
fprintf(stderr, "Couldn't open display, but Arch is the best!\n");<br />
exit(1);<br />
}<br />
<br />
s = DefaultScreen(d);<br />
w = XCreateSimpleWindow(d, RootWindow(d,s), 0, 0, 110, 20, 0, <br />
0, WhitePixel(d,s));<br />
XSelectInput(d, w, ExposureMask | KeyPressMask);<br />
XMapWindow(d,w);<br />
<br />
while (1) {<br />
XNextEvent(d, &e);<br />
if (e.type == Expose) {<br />
XDrawString(d, w, DefaultGC(d, s), 5, 15, "Arch is the best!", 17);<br />
}<br />
}<br />
<br />
XCloseDisplay(d);<br />
return 0;<br />
}<br />
<br />
== Translations ==<br />
<br />
;Ancient Chinese<br />
阿祺,盡善矣。<br />
<br />
;Ancient Greek (Attic)<br />
Ἡ Ἀψίς ἄριστην ἐστί!<br />
<br />
;Arabic<br />
ارتش هو الأفضل<br />
<br />
;Australian<br />
Arch is fair dinkum, mate!<br />
<br />
;Bahasa Indonesia<br />
Arch terbaik!<br />
<br />
;Basque<br />
Arch onena da!<br />
<br />
;Belarusian<br />
Арч - самы лепшы!<br />
<br />
;Bengali<br />
আর্চ সবচেয়ে ভালো!<br />
<br />
;British<br />
Arch is simply spiffing.<br />
<br />
;Bulgarian<br />
Арч е най-добрият!<br />
<br />
;Catalan<br />
Arch és el millor!<br />
<br />
;Chinese (Simplified)<br />
Arch 最棒了!<br />
<br />
;Chinese (Traditional)<br />
Arch 好棒棒!<br />
<br />
;Chinese (Taobao Style - 淘宝体)<br />
Arch,好评哦,亲!<br />
<br />
;Czech<br />
Arch je nejlepší!<br />
<br />
;Croatian<br />
Arch je najbolji!<br />
<br />
;Danish<br />
Arch er bedst!<br />
<br />
;Doge<br />
So Arch, Much Good, Wow<br />
<br />
;Dutch<br />
Arch is de beste!<br />
<br />
;Esperanto<br />
Arch plejbonas!<br />
<br />
;Estonian<br />
Arch on parim!<br />
<br />
;Fikonspråket<br />
Firch Arkon fir äkon fist bäkon<br />
<br />
;Filipino<br />
Mabuhay ang Arch!<br />
<br />
;Finnish<br />
Arch on paras!<br />
<br />
;French<br />
Arch est le meilleur!<br />
<br />
;Galician<br />
Arch é o mellor!<br />
<br />
;German<br />
Arch ist das Beste!<br />
<br />
;Greek (Modern)<br />
Το Αρτς είναι το καλύτερο!<br />
<br />
;Haitian Creole<br />
Arch se meye bagay!<br />
<br />
;Hantec<br />
Arch je nejbetélnější!<br />
<br />
;Hebrew<br />
ארצ' זה הכי אחי!<br />
<br />
;Hindi<br />
आर्च सर्वोत्तम है ।<br />
<br />
;Hungarian<br />
Az Arch a legjobb!<br />
<br />
;Irish<br />
Arch é is fearr!<br />
<br />
;Italian<br />
Arch è il migliore!<br />
<br />
;Japanese<br />
Archが一番ですよ!<br />
<br />
;Kazakh<br />
Арч - ең жақсы!<br />
<br />
;Klingon<br />
Arch'pu'ta"a'<br />
<br />
;Korean<br />
아치가 최고입니다!<br />
<br />
;Latin<br />
Arch optimus est!<br />
<br />
;Latvian<br />
Arch ir labākais!<br />
<br />
;Leet<br />
4rch 15 7h3 b357!<br />
<br />
;Lithuanian<br />
Arch yra geriausias!<br />
<br />
;Lojban<br />
la .artc. xagrai<br />
<br />
;Lolcat<br />
ARCH IZ TEH BEST!<br />
<br />
;Malayalam<br />
ആർച് ആണ് ഏറ്റവും നല്ലത്<br />
<br />
;Mapudungun<br />
writting system: Unificado<br />
Doy kümei Arch<br />
writting system: Raguileo<br />
Zoy kvmey Arc<br />
writting system: Azümchefe (Used in Windows XP)<br />
Zoi kümei Arch<br />
writting system: Nhewenh<br />
Zoi kvmei Arch<br />
writting system: Wirizüŋun<br />
Zoy kümey Arch ''or'' Zoy kvmey Arch<br />
<br />
;Marathi<br />
आर्च सगळ्यात भारी आहे!<br />
<br />
;Nepali<br />
आर्च सबैभन्दा राम्रो हो!<br />
<br />
;Norwegian<br />
Arch er best!<br />
<br />
;Old English<br />
Arch biþ betst!<br />
<br />
;Persian<br />
آرچ بهترین است<br />
<br />
;Pig Latin<br />
Archway isway ethay estbay!<br />
<br />
;Polish<br />
Arch jest najlepszy!<br />
<br />
;Portuguese<br />
Arch é o melhor!<br />
<br />
;Québécois<br />
Arch est le plus meilleure du monde!<br />
<br />
;Romanian<br />
Аrch e cel mai bun!<br />
<br />
;Russian<br />
Арч:лучший!<br />
<br />
;Serbian<br />
Arch je najbolji!<br />
<br />
;Singaporean<br />
Arch the best lah!<br />
<br />
;Slovenian<br />
Arch je najboljši!<br />
<br />
;Spanish (Standard)<br />
¡Arch es el mejor!<br />
<br />
;Spanish (Argentina)<br />
Arch es una mazza!!<br />
<br />
;Spanish (Chile)<br />
Arch es bacán<br />
<br />
;Spanish (Chile, alternative)<br />
Arch es la raja<br />
<br />
;Spanish (Chile, marginal)<br />
(written in IPA because standard Spanish doesn't have these sounds)<br />
ˈæɹʃ ɛːʰ tɜ.rˈiː.u.lɛ la rˈa.χa ʃʊ.ɹʊ<br />
<br />
;Spanish (Uruguay)<br />
Arch la rompe!<br />
<br />
;Swedish<br />
Arch är bäst!<br />
<br />
;Turkish<br />
Arch en iyisidir!<br />
<br />
;Tamil<br />
ஆர்ச்சே சிறந்தது!<br />
<br />
;Telugu<br />
ఆర్చ్ ఉత్తమమైనది!<br />
<br />
<br />
;Thai<br />
อาค์ชเทพเมพขิงขิง<br />
<br />
;Toki Pona<br />
Arch li pona mute!<br />
<br />
;Ukrainian<br />
Arch:найкращий!<br />
<br />
;Urdu<br />
آرچ سب سے بہتر ہے!<br />
<br />
;Vietnamese<br />
Arch là tốt nhất!<br />
<br />
;Welsh (Cymraeg)<br />
<br />
Emphasis on Arch:<br />
Arch sydd yr orau un!<br />
Arch sydd y gorau un!<br />
<br />
Emphasis on being the best (one):<br />
Yr orau un yw Arch!<br />
Y gorau un yw Arch!<br />
<br />
== Encodings ==<br />
<br />
;ASCII Banner<br />
_ _ _ _ _ _ _<br />
/\ | | (_) | | | | | | | | | |<br />
/ \ _ __ ___| |__ _ ___ | |_| |__ ___ | |__ ___ ___| |_| |<br />
/ /\ \ | '__/ __| '_ \ | / __| | __| '_ \ / _ \ | '_ \ / _ \/ __| __| |<br />
/ ____ \| | | (__| | | | | \__ \ | |_| | | | __/ | |_) | __/\__ \ |_|_|<br />
/_/ \_\_| \___|_| |_| |_|___/ \__|_| |_|\___| |_.__/ \___||___/\__(_)<br />
<br />
;Base64<br />
QXJjaCBpcyB0aGUgYmVzdCEK<br />
<br />
;Binary ASCII<br />
0100000101110010011000110110100000100000011010010111001100100000011101000110100001100101001000000110001001100101011100110111010000100001<br />
<br />
;Braille<br />
⠁⠗⠉⠓⠀⠊⠎⠀⠮⠀⠃⠑⠎⠞⠲<br />
<br />
;Desrever (Reversed)<br />
!tseb eht si hcrA<br />
<br />
;h4x0r<br />
4rch 15 7h3 b357!<br />
<br />
;Hexadecimal ASCII<br />
4172636820697320746865206265737421<br />
<br />
;md5sum<br />
2d9092e089d77a8e23f47ba3dfe77027<br />
<br />
;Morse Code<br />
.- .-. -.-. .... .. ... - .... . -... . ... -<br />
<br />
;ROT13<br />
Nepu vf gur orfg!<br />
<br />
;sha1sum<br />
7f6ed0bf29abbd7e796ca1311c84a7a21a68a656<br />
<br />
;sha224sum<br />
af15cd556676d37f916a35e2cf74f04cf7b1805b3244ec418c3927d8<br />
<br />
;sha256sum<br />
107139d6b9a15fd97acf743e5806823c8ff868fde8b7c28cfcc2c9184df644ae<br />
<br />
;sha384sum<br />
769ec295d876483aa6cec7ff7997296c8ff2236630b0e48b059576143b60ab30adefec9321d8acc2a133219dfb302bc5<br />
<br />
;sha512sum<br />
b0917f66d05278106808d25f51001b038856fa7171b935d450b4bcbf1e8b82ed6a5a2f49d99734e1efc7ad3d1b8a33519008635d4e1aa3e65a5e70c4de649aad<br />
<br />
;Upside Down<br />
¡ʇsǝq ǝɥʇ s! ɥɔɹ∀<br />
<br />
;URL Encoded<br />
Arch%20is%20the%20best!</div>Betseghttps://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&diff=407825Talk:Beginners' guide2015-10-31T22:52:14Z<p>Betseg: /* Replace systemd-boot with GRUB (UEFI) */</p>
<hr />
<div>== Unification ==<br />
=== A single, unified official install guide ===<br />
<br />
{{Note|This is based on talk/consensus in #archlinux. The official [[Installation Guide]] page is going to be expanded (or this guide could be protected, cleaned up and replace it - either works, that could be decided here).}}<br />
<br />
Previously, there has been talk here about merging with the old official install guide, and just having a single official [[Installation Guide]]. However, that didn't happen when the old guide was removed because the [[Beginners' Guide]] was (and is) too long, with too much duplication of other pages after the point where it's necessary (getting the initial network access). In order to be an "official" document, it would also have to be protected - edits by regular users would be proposed on the talk page.<br />
<br />
The installation process now always requires network access, and the ISO ships with both a browser and an IRC client, so it's not necessary to keep so much information on this page, since we have very good coverage elsewhere that surpasses the duplication here. For example, there's no need for the [[Beginners' Guide]] to explain how to do an upgrade as [[Pacman#Upgrading packages]] has much better coverage of the gritty details, and the initial install is already fully upgraded.<br />
<br />
-- [[User:Thestinger|thestinger]] ([[User talk:Thestinger|talk]]) 21:52, 28 October 2012 (UTC)<br />
<br />
:Yes, the ISO comes with a browser ({{Pkg|elinks}}), but it's not very good with formatting. Some people may prefer to actually print the guide ''(which is a waste of paper, if you ask me, but old timers may feel differently)'', or save it as a PDF/HTML and read it on whatever device they own (smartphone, tablet, etc).<br />
<br />
No need to create a section for this, just reminding that the unification would affect {{Bug|36111}}. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 06:57, 18 August 2013 (UTC)<br />
<br />
=== Define scope of the guide ===<br />
I'd like to define the scope of the guide(s) better and whether it's OK to remove certain things from the wiki instead of marking them as 'the old way' and maybe moving them to a separate article, if needed. Currently the beginners' guide still has info related to initscripts, like [https://wiki.archlinux.org/index.php/Beginners%27_Guide#Time_zone setting the timezone], but the article on time [https://wiki.archlinux.org/index.php/Time#Time_standard has not]. -- [[User:Karol|Karol]] ([[User talk:Karol|talk]]) 09:56, 30 October 2012 (UTC)<br />
: Right now the Beginner's Guide is "A page where user can get their system installed '''without reading other pages'''". This is where the duplications come from. Maybe we can redefine it. So we can:<br />
: # Improve [[Help:Reading]]. Add some guide about Navigation, Searching, Category and Table of Contents. So users can reach the information they want more easily.<br />
: # Reduce long duplication texts. The two network configuration part is a candicate. -- [[User:Fengchao|Fengchao]] ([[User talk:Fengchao|talk]]) 07:46, 31 October 2012 (UTC)<br />
:The reason for using the manual way of configuring is actually because timedatectl and friends won't work from inside a chroot. We could avoid that by having users reboot before configuring this stuff (time, hostname, etc. aren't critical at all) but that would require some minor restructuring, so it's something worth discussing. [[User:Thestinger|thestinger]] ([[User talk:Thestinger|talk]]) 17:28, 3 November 2012 (UTC)<br />
<br />
::''[This comment was pasted here from a different, now deleted discussion]''<br />
:: I think that the goal of the Beginners' Guide is not only to let an Arch novice install the system successfully, but also to introduce him to how an Arch Linux system is structured and the technologies it's based on: we shouldn't think of the Beginners' Guide (or any other article) as a simple howto or step-by-step guide, but as something more formative. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:40, 19 September 2012 (UTC)<br />
<br />
=== Plan ===<br />
If someone was interested and had the time to lay out here a '''detailed''' plan with indications on where to merge every section of the guide and a report of all the problems that could be encountered in the process, it would definitely be the final step before announcing the unification on the forums with full support from the admins, which would mean that at that point only strong and reasonable objections could prevent the unification. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 06:44, 18 August 2013 (UTC)<br />
<br />
Here is a list of sections that should be merged. Feel free to expand, comment in [[#Comments]]. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 18:26, 31 August 2013 (UTC)<br />
<br />
* [[Beginners' guide#Prepare the storage devices]]. See [[#Replace_parted_with_cfdisk.2Fcgdisk]].<br />
** Contains more information on parted than the actual [[parted]], merge back details.<br />
** Improve the [[fdisk]] article and use it as a possible method of partioning.<br />
** Information on dual-booting with Windows could be linked earlier in the article.<br />
** Use [[:Category:Partitioning]] instead of a list of partitioning tools?<br />
** Small TL;DR on difference between BIOS and UEFI, or place it in the [[UEFI]] article.<br />
** MBR: limit of 4 partitions and use of Extended partitions. This isn't mentioned in the [[MBR]] article, but in [[GUID Partition Table]]!<br />
* [[Beginners' guide#Wireless_2]]: "processes", elaborate in [[netctl]] instead? Also, no reference to the copied configuration file in [[#Establish an internet connection]].<br />
* Link to typographic conventions used on wiki pages where applicable.<br />
** ''pacman'': [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=400266&oldid=400243]<br />
** ''systemctl''<br />
* Lay out remaining differences with the [[Installation guide]], and either merge or discard them on a '''case-by-case basis'''.<br />
** Relation between ''genfstab'' and ''swapon''.<br />
* [[Beginners' guide#Mirrors]]<br />
** The idea ships a ready mirror file, and modifying it is recommended, though not necessary.<br />
** Reword to include local considerations?<br />
* Move instructions on BIOS boot order to [[USB flash installation media]].<br />
* Tip on using ''elinks'' to browse the guide in another TTY, and ''irssi'' to discuss issues from the live environment.<br />
* Warning on avoiding "tutorials" not hosted on the wiki main space.<br />
* Mention --help / -h as a manual is not always available.<br />
<br />
==== General problems ====<br />
<br />
* (Not sure if an actual problem) Make effective use of links so that at most two clicks are required to find the right section. Avoid redundancy.<br />
* Just a general reminder to those working on this: keep track of how your changes impact users (follow this discussion page, [https://bbs.archlinux.org/viewforum.php?id=17 BBS Installation] and [[IRC]])<br />
* [[Swap]] is ''not'' optional. [http://unix.stackexchange.com/a/190521]<br />
** Or at least recommended in most cases.<br />
* Use {{ic|Tab}} more in instructions?<br />
<br />
==== Comments ====<br />
<br />
=== Installation template ===<br />
<br />
Another alternative way to unify the two main guides would be to follow the same philosophy we used to write the scenarios in [[Dm-crypt_with_LUKS/Encrypting_an_entire_system]], originally discussed in [[Talk:Dm-crypt#New_idea]]: the new installation guide could be a bare, though ''complete'', list of commands and simple instructions needed to install the system in one example scenario, with links to the various relevant articles for detailed information and adaptations to specific cases. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 21:18, 27 March 2014 (UTC)<br />
<br />
:Well, the Beginners' guide suffers from issues related to both content and style, and I really think they need to be addressed at the same time. Every suggestion so far deals only with one problem.<br />
:'''Content:''' I agree that the purpose of the guide (be it Beginners' or Installation) should be to describe only one scenario and provide links to other articles describing the alternatives. I really like ''this part'' of your suggestion, but it solves only half of the problem.<br />
:'''Style:''' The biggest problem is that Beginners' guide is unique mixture of ''introduction to reading ArchWiki'' and ''introduction to installing and '''using''' Arch Linux'', which are simply inseparable in the context of BG - you just can't expect newcomers to first read [[Help:Reading]] and only then start installing their system. So, there is a little bit of anarchy, as the BG is mostly excused from the [[Help:Style|style guidelines]] and there are no guidelines specifically for the BG. Unifying the two guides would necessarily mean a compromise regarding style, which would not be the best for either beginners or gurus.<br />
:Also, I think that it is a good thing that BG is readable ''without reading other pages'' (as defined in [[#Define scope of the guide]]), because it implies that the most important things have been collected and the readers don't have to click-and-search ''too much''. This is really important for the newcomers, because the orientation in the graph of internal links (I wanted to visualize the graph, but it's just too big) is really difficult - they would need to read dozens of pages (with some [[Help:Style|alien style]] applied) before they had the basic system running. On the other hand, one of the main points of BG should be to prepare the readers for other ArchWiki articles, but sometimes the readers are [https://wiki.archlinux.org/index.php?title=Talk:NetworkManager&diff=291207&oldid=285657 too] [https://wiki.archlinux.org/index.php?title=Talk:NetworkManager&diff=304473&oldid=295238 spoiled].<br />
:Well, that is my defence of keeping both IG and BG. In my opinion it is enough to just properly define the scope of BG and trim it down to ease the maintenance, addressing the ''content'' part. But of course if there is a suggestion on merging the two guides addressing the ''style'' issues, let's hear it!<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 11:16, 30 March 2014 (UTC)<br />
<br />
::About the style issue, I don't think experienced users would be so bothered by some pacman, systemctl or nano examples, and the unified guide should probably explicitly warn users that they won't find similar examples in the other articles, which would be a perfect way to invite them to become familiar with [[pacman]], [[systemd]], [[Help:Reading]]... Besides, if the guide will be properly structured, experienced users who don't have their own custom installation notes will be able to just follow the automatic ToC as a memory refresher.<br />
::I disagree that the fact that the "BG is readable ''without reading other pages''" is a good thing, as that's exactly the reason that makes it hard to maintain and encourages duplication of information; if users were used to follow links instead, most of the efforts now spent in improving the BG would be instead spent in properly improving the linked articles, which would then become as easy to follow as the BG is now.<br />
::Anyway, I've proposed a change in [[#Comments]] (under [[#Plan]]) that I think should be more likely to reach general consensus, and that would already be a good step forward.<br />
::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 03:35, 31 March 2014 (UTC)<br />
<br />
:::I'm beginning to understand the need for merging. After the BG is slimmed down to cover only one example scenario, the title will be just wrong and the scope will be ''exactly'' the same as for IG. It all depends on whether different target audience and related style differences are enough to justify two guides.<br />
:::I hate being the blocker, so let's slim down BG and when it comes to the point of merging with IG, at least it will not be so shocking. I can't help but to think about it as simple redirecting of BG to IG, which will be (more or less) the eventual outcome, so I will need some time to absorb.<br />
:::Finally, we should also look at [[ArchWiki:Requests#Cleanup: installation category]], so that [[:Category:Getting and installing Arch]] is actually useful for providing alternative scenarios, and to ensure there is a place where to move excessive information from the BG.<br />
:::-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:35, 7 April 2014 (UTC)<br />
<br />
::::You are not "the blocker", every opinion is as valuable as the others if well argumented, be it for or against the proposal. Especially in this case where we seem to be the only 2 people interested in discussing...<br />
::::If the unification will eventually be completed, of course the BG will become a redirect to the IG, and the latter will be unprotected (and well watched so it's not turned again into a BG).<br />
::::Let's go on with the change very gradually, that's definitely the best way to let everyone successfully and happily adapt to the new way of following the document, which, if done properly, will be even easier and clearer (no need to compare two guides anymore, just to mention an advantage).<br />
::::Of course [[ArchWiki:Requests#Cleanup: installation category]] is strictly linked to all this, I'll try to get there too.<br />
::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 05:26, 9 April 2014 (UTC)<br />
<br />
:::::Just as a note, [[:Category:Getting and installing Arch]] has since made great progress, and replaced most of the "introductory" content in the BG. :) [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=394011&oldid=393888] [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=400221&oldid=400209] -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 00:21, 18 September 2015 (UTC)<br />
<br />
=== Page protection ===<br />
<br />
I personally would suggest leaving the Installation guide locked after the merger (even if that would lock me out also :). Thing is, if someone went through the effort of researching an addition to the guide, it would be easy for them to bring it up here, in the talk page, and easier for the community to discuss (and implement, if applicable). <br />
<br />
Leaving the Installation guide unprotected however would make it open to hasty edits. Even if the IG were well watched as said, a made edit's context may not be sufficiently clear to "judge" it on the spot (confirmed by [[ArchWiki:Reports]]). Having contested content remain (however short) on the main, "official" installation reference is less than ideal.<br />
<br />
A compromise may be similar to the [[IRC]] page, which is not protected in the technical sense, but has a warning urging users not to edit the page without prior consensus. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 23:30, 19 February 2015 (UTC)<br />
<br />
:Once upon a time, I absolutely don't even remember where, we even discussed the option of keeping the guide in a protected page, but do all the modifications in a separate open page (as if they were two "master" and "devel" branches), with the admins periodically approving and merging the unstable page into the official one. Thanks to the recently introduced [[Special:MergeHistory]] tool, this job could be easier nowadays. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:06, 20 February 2015 (UTC)<br />
<br />
::That sounds like a good option. Working hypothesis: to make users accustomed to the idea, we could now add a note at the top of the BG, suggesting to first discuss changes on the talk page. After the merger this note would then point to the "development" page. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 20:39, 16 March 2015 (UTC)<br />
<br />
:::I think that [[Special:MergeHistory]] is too primitive tool for this, AFAIK its only way of operation is "merge all revisions ''up to'' specified one", i.e. there is no ''cherry-picking'' of feasible revisions. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 20:50, 16 March 2015 (UTC)<br />
<br />
::::@Alad I'm still thinking about it, I'm not sure whether having 2 protected installation guides would be too confusing. The branch method would certainly be well suited if we really ended up merging the guides into one.<br />
::::@Lahwaacz The way it would work would be (''master'' is protected, contains the whole revisions history and ''will not receive direct edits'' by anyone, including admins):<br />
:::::# ''develop'' is initialized with a simple copy of the latest revision of ''master''<br />
:::::# Some users make some edits to ''develop''<br />
:::::# The wiki staff amends/undos ''develop'' as necessary with additional edits (like it happens now in the only branch)<br />
:::::# Once ''develop'' is considered in a good state, [[Special:MergeHistory]] can be used safely, no need for cherry-picking<br />
:::::# Go back to 1 (at this step ''develop'' is a redirect to ''master'')<br />
::::— [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 13:09, 17 March 2015 (UTC)<br />
<br />
::::A simpler alternative with the same effect would be maintaining a link that points to the latest officially approved revision in the history of the article, for example in a Note in the intro. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 13:13, 17 March 2015 (UTC)<br />
<br />
:::::Take your time, it will take a lot more work to get the BG anywhere near ready for merging. A link with note sounds viable as well; we could add a table with different options below. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 22:08, 17 March 2015 (UTC)<br />
<br />
::::::To add another suggestion, the Talk page of both guides works well in implementing and discussing changes, ''when used''. Often, you see remarks scattered throughout IRC and the forums. As such, we could expand the scope by opening a new thread in the forums, e.g "The Installation Guide thread" and ask it to be made sticky. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 17:25, 27 August 2015 (UTC)<br />
::::::We could even suggest users to make a (partial) copy in their user pages to propose their changes. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:11, 31 August 2015 (UTC)<br />
<br />
== Linked to 'parted' Manual doesn't list ext3 or ext4 for fs-type ==<br />
<br />
Hi guys. Recent Arch convert here. Loving it. No bloat! Noticed this during Beginners Guid install though:<br />
<br />
In the section on using parted ( [[Beginners%27_guide#Partition_schemes]] ), it links to the Gnu parted manual at [http://www.gnu.org/software/parted/manual/parted.html#mkpart http://www.gnu.org/software/parted/manual/parted.html#mkpart] for fs-types, but the (rather dated?) manual doesn't list ext3 or ext4. At this point I 'guessed' ext2 was the right choice... Only to find that LATER in the 'Beginners Guide' page it recommended ext4. Damn! Wasn't sure if I had to go back and re-do. Seemed not. But anyway, confusing for 'Beginners'. Anyway, dare not edit the wiki being an Arch noob at this point. Keep up the good work! Cheers. -- [[User:Peterg4000|Peterg4000]] ([[User talk:Peterg4000|talk]]) 00:53, 7 April 2015 (UTC)<br />
<br />
:Yes, this is a rather confusing concept: the file system type associated to a partition is a different thing from the file system that you later use to format that partition... It's explained in a bit clearer way in [[Wikipedia:Disk_partitioning#PC_partition_types]], but we should probably explain it better here too.<br />
:In theory, using "ext2", "ext3" or "ext4" when you use {{ic|(parted) mkpart}} shouldn't make any difference at all, as they all set the same partition type code. What does make a difference is the file system you choose when you actually format the partition in [[Beginners'_guide#Create_filesystems]].<br />
:Of course it's wise to make sure the ''fs-type'' corresponds to the file system that is going to be used, but even though I've never tested it, I guess you could use e.g. "NTFS" for ''fs-type'' and still be able to format the partition with ext4 or whatever file system you want.<br />
:— [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 13:49, 7 April 2015 (UTC)<br />
<br />
:: Oh, so for ext3/4 one should just set fs-type to ext2 in parted (etc). Lesson learnt. A one liner would be good saying something like "If you don't know any better, set fs-type to ext2 (Which is the correct option for ext2/3/4), and then format with ext4 below." -- [[User:Peterg4000|Peterg4000]] ([[User talk:Peterg4000|talk]]) 23:32, 7 April 2015 (UTC)<br />
<br />
:::We needed something more generic and educational, I've added [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&action=historysubmit&diff=368977&oldid=368819], I hope it's clear enough, please re-open the discussion if it's not :) — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 07:17, 8 April 2015 (UTC)<br />
<br />
::::Looks great. Loving the Arch way, community, Wiki etc. Cheers. -- [[User:Peterg4000|Peterg4000]] ([[User talk:Peterg4000|talk]]) 08:49, 8 April 2015 (UTC)<br />
<br />
::::Actually, parted 3.2 has an explicit label for ext4: {{bc|<nowiki><br />
(parted) help mkpart <br />
mkpart PART-TYPE [FS-TYPE] START END make a partition<br />
...<br />
FS-TYPE is one of: btrfs, nilfs2, </nowiki>'''ext4, ext3'''<nowiki>, ext2, fat32, fat16, hfsx, hfs+, hfs, jfs, swsusp, linux-swap(v1), linux-swap(v0),<br />
ntfs, reiserfs, hp-ufs, sun-ufs, xfs, apfs2, apfs1, asfs, amufs5, amufs4, amufs3, amufs2, amufs1, amufs0, amufs, affs7, affs6,<br />
affs5, affs4, affs3, affs2, affs1, affs0, linux-swap, linux-swap(new), linux-swap(old)<br />
...<br />
</nowiki>}}<br />
::::If they are all mapped to the same partition code is another matter, so I'm fine with the current wording. Alternatively we could leave out FS-TYPE completely, after all it is optional (but this is not reflected in the BG).<br />
::::-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 14:41, 8 April 2015 (UTC)<br />
<br />
:::::Do we want to reopen and investigate this further? Thanks for reminding of the help command, however I can find many sources that seem to confirm that many Linux native file systems (but not all of the above!) map to 0x83: [http://www.win.tue.nl/~aeb/partitions/partition_types-1.html] [http://askubuntu.com/questions/230930/whats-the-difference-of-partition-type-and-filesystem-type] [http://www.tldp.org/HOWTO/Partition-Mass-Storage-Definitions-Naming-HOWTO/x190.html] [http://thestarman.pcministry.com/asm/mbr/PartTypes.htm] [http://datarecovery.com/rd/hexadecimal-flags-for-partition-type/]. Unfortunately, as [[Wikipedia:Partition_type#Overview]] says, these codes are not standardized, so we won't be able to find an official reference. Last thing, quoting the [http://www.gnu.org/software/parted/manual/parted.html#mkpart manual], " fs-type is required for data partitions (i.e., non-extended partitions)", so I wouldn't leave it out as optional. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 09:46, 9 April 2015 (UTC)<br />
<br />
::::::The clearest would either be {{ic|mkpart primary linux}} or {{ic|mkpartfs ext4}} but I doubt either is supported... -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 12:47, 9 April 2015 (UTC)<br />
<br />
:::::::I doubt too, I've [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=369201&oldid=368977 replaced] the link to the manual with "help mkpart". — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 13:21, 10 April 2015 (UTC)<br />
<br />
:::::::I wasn't sure where to put this as I'm also new and it's really minor, but also in the parted section when making partitions it says to put 'm' for MiB, this should probably be updated as in my install just 'm' set my sizes to MB not MiB. Suggest updating or preferably instructing the user to define units when entering parted: so set units MiB or GiB or whatever so that just numbers can be used afterwards in creating partitions.[[User:Jjex22|Jjex22]] ([[User talk:Jjex22|talk]]) 05:04, 27 August 2015 (UTC)<br />
<br />
== Replace parted with cfdisk/cgdisk ==<br />
So, just wanna throw this out there for discussion. I've always found cfdisk/cgdisk to be much more beginner-friendly and intuitive than parted. Since this is the "Beginner's Guide" wouldn't it make sense to recommend using these tools? At the very least, it might be good to mention that they are visual partitioning tools when they are listed in the "partitioning tools" section. Thoughts? -- [[User:A Future Pilot|A Future Pilot]] ([[User talk:A Future Pilot|talk]]) 14:21, 13 July 2015 (UTC)<br />
<br />
:Related: [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=354845#Partitioning]<br />
:I personally wouldn't mind revisiting the topic on fdisk vs. parted (unsure on the benefits of cfdisk or cgdisk - they're not "visual" besides a more-or-less clunky table format, and fdisk has a print switch). This however implies merging Parted content to [[parted]] as mentioned in [[#Plan]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 14:53, 13 July 2015 (UTC)<br />
<br />
::This could be done. The recommendations were different in the past:<br />
::* [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&oldid=259921#Example 31st May 2013] - cfdisk/cgdisk used here<br />
::* [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&oldid=321625#Prepare_the_storage_drive 26th June 2014] - cgdisk & fdisk used here<br />
::are just a couple of examples. -- [[User:Chazza|Chazza]] ([[User talk:Chazza|talk]]) 15:17, 13 July 2015 (UTC)<br />
<br />
:::I personally also favor (c)fdisk. I think it both are very clear for beginners, and they can handle both MBR and GPT (no need for (c)gdisk).<br />
:::In any case, I think we should choose a tool which can handle both GPT and MBR partitioning schemes, because otherwise things will get messy again. This is one of the reasons why we changed to parted: it supports both (and back then, there was some question about the stability of fdisk's GPT support, but I'm sure it is fine now; I've personally never has issues). [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 17:14, 13 July 2015 (UTC)<br />
<br />
::::This is obviously too subjective from those being used to one specific tool. I personally find parted to be easier to understand because you write the whole commands instead of just a couple of meaningless letters. Granted, all tools have a help page built in, provide a detailed man page and there is a bunch of "tutorials" for every possible scenario. So, is it even possible to select the "most beginner-friendly" tool or should we decide based on different factor? In any case, there should be only one tool described in detail in the BG and alternatives should be linked to. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 17:23, 13 July 2015 (UTC)<br />
<br />
:::::I agree with your last point, that there should only be one tool described in the BG.<br />
:::::But I cannot see how we can choose one on other criteria than "beginner-friendly", as all candidates should be able to provide the same functionality. What other factors are there to decide on?<br />
:::::The only I can think of is that fdisk ({{pkg|util-linux}}) is in [core] and {{Grp|base}}, and {{pkg|parted}} is not. But both are on the installation ISO, so I'm not sure if that matters at all.<br />
:::::I am afraid that there is no real criterion to decide by, except for "beginner/user-friendliness", which is indeed subjective. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:22, 13 July 2015 (UTC)<br />
<br />
::::::We could circumvent the issue by adding detailed examples to the articles in question, rather than describing one particular tool in the BG. In addition, we could add a few sentences outlining basic differences between the tools. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:09, 14 July 2015 (UTC)<br />
<br />
:::::::As said, the BG switched from fdisk to parted only a few months ago (which in wiki terms means "yesterday"), so we can't keep going back and forth like in a loop. At this point, I support Alad's proposal above to move the examples to the specialized articles, which also goes in the [[#Unification]] direction (and this discussion itself is yet another argument in support of that plan). — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 11:49, 15 July 2015 (UTC)<br />
<br />
:::::::: I would like to concur with Alad and Kynikos on this. It should be up to the user to choose the appropriate tool, and the information from the BG should be merged into the [[GNU Parted]] article, which keeps the BG moving towards [[#Unification]]. [[User:Pid1|Pid1]] ([[User talk:Pid1|talk]]) 22:50, 25 July 2015 (UTC)<br />
<br />
:::::::::As proposed in [[Talk:Partitioning#remove_gdisk_instructions_for_install_medium_2013-11]], I've split [[fdisk]]: if the BG will become partitioning-tool-agnostic, that article will have to be improved as well. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 04:13, 29 July 2015 (UTC)<br />
<br />
== Replace systemd-boot with GRUB (UEFI) ==<br />
<br />
I'm curious if we could expand the GRUB section with a few commands for UEFI/GPT, rather than have a complete section on systemd-boot. I'm aware systemd-boot is the "default" on the ArchISO, but we don't use syslinux for BIOS/MBR installs either. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:30, 24 August 2015 (UTC)<br />
<br />
:Implemented [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&type=revision&diff=394027&oldid=394017]. There are a few rough edges left, but I think this can be closed. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 07:24, 27 August 2015 (UTC)<br />
<br />
::Is there any good reason for this besides the fact that it simplifies the guide? Also, the information that the EFI partition has to be at least 512MB large is just wrong. That should be removed. [[User:Protake|Protake]] ([[User talk:Protake|talk]]) 13:49, 29 August 2015 (UTC)<br />
<br />
:::Simplifying the guide / reducing duplicated efforts is reason enough. If people want to use a different boot loader, they can use the relevant articles.<br />
:::As to the ESP, we could link to [[Unified_Extensible_Firmware_Interface#EFI_System_Partition]] for details on requirements. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 14:01, 29 August 2015 (UTC)<br />
<br />
::::I've weakened the wording on recommended size [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=396531&oldid=396530] [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=396799&oldid=396531] [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&action=historysubmit&type=revision&diff=396808&oldid=396799]. Do you think this is enough, or should we explicitely mention a lower value? -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:02, 31 August 2015 (UTC)<br />
<br />
:Personally, I think this is a really bad idea. It gives the impression that GRUB is the recommended bootloader, which is most definitely NOT the case for UEFI.<br />
:[[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 02:53, 5 September 2015 (UTC)<br />
<br />
::Thanks for pointing that out. I've replaced it, and also got rid of the arbitrary 512 MiB size. [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&type=revision&diff=398375&oldid=398253] As mentioned in the summary, this is better explained in the ESP article, and [[Beginners' guide#Prepare the storage devices]] already has a matching example.<br />
::Further thoughts ? -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 12:50, 5 September 2015 (UTC)<br />
<br />
:::Thanks, using systemd-boot as an example is definitely better than using GRUB. Still not really ideal, IMO, but I don't have a better idea. I understand the need to have an example here.<br />
:::[[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 14:59, 8 September 2015 (UTC)<br />
::::What about these? [[Beginner's guide#UEFI.2FGPT_examples]]--[[User:Betseg|Betseg]] ([[User talk:Betseg|talk]]) 22:52, 31 October 2015 (UTC)<br />
<br />
== "See ''foo''" vs "See the ''foo'' article" ==<br />
<br />
This revision [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=400266&oldid=400243] added a new mention of "See the ''foo'' article", rather than the more common "See ''foo''". I'd argue former is the better form, and when the guide is viewed from a .txt (if the BG/IG merge completes), the longer wording makes sense as well. Are there opinions against using the longer form throughout the BG? -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 00:13, 18 September 2015 (UTC)<br />
<br />
:I'm neutral, so that doesn't count as an opinion against ^^ That said, the long form can only be used with links to entire articles, but more difficultly with links to specific sections such as "See also [[Pacman#pacman crashes the official installation media]]", since in those cases a more natural-sounding long form should be something like "See also the 'pacman crashes the official installation media' section of the [[Pacman]] article", I think, which is clearly ugly to see and use, so consistency is a bit hard to reach. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 16:13, 18 September 2015 (UTC)<br />
<br />
::I guess the proper solution would be to incorporate links in the article text where possible. "See X" gets repetitive fast, anyway. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 14:44, 29 September 2015 (UTC)<br />
<br />
== Redirects to sections ==<br />
<br />
:''[Moved from [[User talk:Alad]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 00:17, 18 September 2015 (UTC)]''<br />
<br />
Are you sure about [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=next&oldid=393417 this]? I don't think javascript has anything to do with this, it should be the browser's feature. At least here with firefox + noscript everything works fine... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 21:47, 23 August 2015 (UTC)<br />
<br />
:Odd, it didn't work for me (also FF/Noscript) and someone on IRC had a similar issue... I'll try again (with Chromium) and report back. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 03:43, 24 August 2015 (UTC)<br />
<br />
::Funny (not so much...), it should be [https://phabricator.wikimedia.org/T53736 #T53736] :( For example I can reproduce it on Firefox by disabling JS with the [https://addons.mozilla.org/en-us/firefox/addon/web-developer/ Web Developer] extension. What do we do, do we really start avoiding redirects to sections?? I'm against, I'd rather wait for [https://phabricator.wikimedia.org/T53736#556866 some kind] of fix upstream instead. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 03:55, 24 August 2015 (UTC)<br />
<br />
:::Oops, I tested it twice with and without javascript and of course the second time the URL was already mangled by the javascript from the first time. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:30, 24 August 2015 (UTC)<br />
<br />
==<s> update packages during installation </s>==<br />
<br />
Can we add "pacman -Syu" to the guide? And to the Installation guide.<br />
<br />
I guess it needs to be done after "Change root" and before "Install a boot loader".<br />
<br />
On 2015-10-26 I installed Arch from the iso of 2015-10-01, and got an error when installing xorg-server because the package list was out-of-date. I had to ask for help; see https://bbs.archlinux.org/viewtopic.php?pid=1573761 {{Unsigned|13:50, 26 October 2015|J77h}}<br />
<br />
:No. ''pacstrap'' already provides you with an updated system; it's up to you to ''keep'' it updated.<br />
:That said, see [[Talk:Pacman#Don't rush updates]] for an ongoing effort on improving ''pacman''-related pages. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 14:37, 26 October 2015 (UTC)<br />
<br />
::I had run pacstrap only a few minutes earlier. Maybe it updated only core; the package it couldn't get was in extra. When the problem happened it didn't seem related to issues in the trouble-shooting links. Anyway, I'm new to this, so can only give a beginner's perspective: in my case an instruction to do ''pacman -Syu'' would have kept the process going smoothly. Rather than leave people to get an error, then search in complex trouble-shooting pages, couldn't you at least add a mention of the possibility that the package list from the iso might no longer match what's on the mirrors, and advise how to remove that possibility? [[User:J77h|J77h]] ([[User talk:J77h|talk]]) 15:19, 26 October 2015 (UTC)<br />
<br />
:::pacstrap runs {{ic|pacman -Sy}} and retrieves the database(s) for the [[Official repositories|repositories]] you have enabled from a [[mirror]] - this includes extra. The ISO packages are not involved, which is why you need a working Internet connection prior to installation. I've rephrased the sections in [[Pacman#Troubleshooting]]: [https://wiki.archlinux.org/index.php?title=Pacman&diff=407023&oldid=406929]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 17:34, 26 October 2015 (UTC)<br />
<br />
:Since you were trying to install Xorg, I suppose you had already finished with this guide, and were following [[General recommendations]], so this discussion can be closed.<br />
:The "problem" you experienced is very common, and you'll see it again in the future, it's not related to the installation procedure. {{Pkg|mesa}} was coincidentally updated [https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/mesa&id=fdef0f4f0ac801823bfa754733b23d4a44407a9d on the 26th], surely after you ran pacstrap during installation, but before you went to install Xorg, so in the meanwhile your local pacman database got out of sync with your mirror, and when pacman tried to download the file from it, the server replied that it didn't have it (anymore). This is a normal (unsolvable) race bug that can happen every time you install or upgrade packages: in theory not even always installing packages with {{ic|pacman -Syu package1 package2}} will 100% protect you, in fact if package2 gets updated right while pacman is downloading package1, you will still get the 404 when package2 is requested. In practice, if you run {{ic|pacman -Syu package1}} the first time you install a package in a day you'll be fine 99% of the times, and during the rest of the day you should get away with just using {{ic|pacman -S package2}}, which is faster since it doesn't have to resync the database.<br />
:— [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 13:41, 27 October 2015 (UTC)</div>Betseghttps://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&diff=407824Talk:Beginners' guide2015-10-31T22:52:02Z<p>Betseg: /* Replace systemd-boot with GRUB (UEFI) */</p>
<hr />
<div>== Unification ==<br />
=== A single, unified official install guide ===<br />
<br />
{{Note|This is based on talk/consensus in #archlinux. The official [[Installation Guide]] page is going to be expanded (or this guide could be protected, cleaned up and replace it - either works, that could be decided here).}}<br />
<br />
Previously, there has been talk here about merging with the old official install guide, and just having a single official [[Installation Guide]]. However, that didn't happen when the old guide was removed because the [[Beginners' Guide]] was (and is) too long, with too much duplication of other pages after the point where it's necessary (getting the initial network access). In order to be an "official" document, it would also have to be protected - edits by regular users would be proposed on the talk page.<br />
<br />
The installation process now always requires network access, and the ISO ships with both a browser and an IRC client, so it's not necessary to keep so much information on this page, since we have very good coverage elsewhere that surpasses the duplication here. For example, there's no need for the [[Beginners' Guide]] to explain how to do an upgrade as [[Pacman#Upgrading packages]] has much better coverage of the gritty details, and the initial install is already fully upgraded.<br />
<br />
-- [[User:Thestinger|thestinger]] ([[User talk:Thestinger|talk]]) 21:52, 28 October 2012 (UTC)<br />
<br />
:Yes, the ISO comes with a browser ({{Pkg|elinks}}), but it's not very good with formatting. Some people may prefer to actually print the guide ''(which is a waste of paper, if you ask me, but old timers may feel differently)'', or save it as a PDF/HTML and read it on whatever device they own (smartphone, tablet, etc).<br />
<br />
No need to create a section for this, just reminding that the unification would affect {{Bug|36111}}. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 06:57, 18 August 2013 (UTC)<br />
<br />
=== Define scope of the guide ===<br />
I'd like to define the scope of the guide(s) better and whether it's OK to remove certain things from the wiki instead of marking them as 'the old way' and maybe moving them to a separate article, if needed. Currently the beginners' guide still has info related to initscripts, like [https://wiki.archlinux.org/index.php/Beginners%27_Guide#Time_zone setting the timezone], but the article on time [https://wiki.archlinux.org/index.php/Time#Time_standard has not]. -- [[User:Karol|Karol]] ([[User talk:Karol|talk]]) 09:56, 30 October 2012 (UTC)<br />
: Right now the Beginner's Guide is "A page where user can get their system installed '''without reading other pages'''". This is where the duplications come from. Maybe we can redefine it. So we can:<br />
: # Improve [[Help:Reading]]. Add some guide about Navigation, Searching, Category and Table of Contents. So users can reach the information they want more easily.<br />
: # Reduce long duplication texts. The two network configuration part is a candicate. -- [[User:Fengchao|Fengchao]] ([[User talk:Fengchao|talk]]) 07:46, 31 October 2012 (UTC)<br />
:The reason for using the manual way of configuring is actually because timedatectl and friends won't work from inside a chroot. We could avoid that by having users reboot before configuring this stuff (time, hostname, etc. aren't critical at all) but that would require some minor restructuring, so it's something worth discussing. [[User:Thestinger|thestinger]] ([[User talk:Thestinger|talk]]) 17:28, 3 November 2012 (UTC)<br />
<br />
::''[This comment was pasted here from a different, now deleted discussion]''<br />
:: I think that the goal of the Beginners' Guide is not only to let an Arch novice install the system successfully, but also to introduce him to how an Arch Linux system is structured and the technologies it's based on: we shouldn't think of the Beginners' Guide (or any other article) as a simple howto or step-by-step guide, but as something more formative. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:40, 19 September 2012 (UTC)<br />
<br />
=== Plan ===<br />
If someone was interested and had the time to lay out here a '''detailed''' plan with indications on where to merge every section of the guide and a report of all the problems that could be encountered in the process, it would definitely be the final step before announcing the unification on the forums with full support from the admins, which would mean that at that point only strong and reasonable objections could prevent the unification. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 06:44, 18 August 2013 (UTC)<br />
<br />
Here is a list of sections that should be merged. Feel free to expand, comment in [[#Comments]]. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 18:26, 31 August 2013 (UTC)<br />
<br />
* [[Beginners' guide#Prepare the storage devices]]. See [[#Replace_parted_with_cfdisk.2Fcgdisk]].<br />
** Contains more information on parted than the actual [[parted]], merge back details.<br />
** Improve the [[fdisk]] article and use it as a possible method of partioning.<br />
** Information on dual-booting with Windows could be linked earlier in the article.<br />
** Use [[:Category:Partitioning]] instead of a list of partitioning tools?<br />
** Small TL;DR on difference between BIOS and UEFI, or place it in the [[UEFI]] article.<br />
** MBR: limit of 4 partitions and use of Extended partitions. This isn't mentioned in the [[MBR]] article, but in [[GUID Partition Table]]!<br />
* [[Beginners' guide#Wireless_2]]: "processes", elaborate in [[netctl]] instead? Also, no reference to the copied configuration file in [[#Establish an internet connection]].<br />
* Link to typographic conventions used on wiki pages where applicable.<br />
** ''pacman'': [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=400266&oldid=400243]<br />
** ''systemctl''<br />
* Lay out remaining differences with the [[Installation guide]], and either merge or discard them on a '''case-by-case basis'''.<br />
** Relation between ''genfstab'' and ''swapon''.<br />
* [[Beginners' guide#Mirrors]]<br />
** The idea ships a ready mirror file, and modifying it is recommended, though not necessary.<br />
** Reword to include local considerations?<br />
* Move instructions on BIOS boot order to [[USB flash installation media]].<br />
* Tip on using ''elinks'' to browse the guide in another TTY, and ''irssi'' to discuss issues from the live environment.<br />
* Warning on avoiding "tutorials" not hosted on the wiki main space.<br />
* Mention --help / -h as a manual is not always available.<br />
<br />
==== General problems ====<br />
<br />
* (Not sure if an actual problem) Make effective use of links so that at most two clicks are required to find the right section. Avoid redundancy.<br />
* Just a general reminder to those working on this: keep track of how your changes impact users (follow this discussion page, [https://bbs.archlinux.org/viewforum.php?id=17 BBS Installation] and [[IRC]])<br />
* [[Swap]] is ''not'' optional. [http://unix.stackexchange.com/a/190521]<br />
** Or at least recommended in most cases.<br />
* Use {{ic|Tab}} more in instructions?<br />
<br />
==== Comments ====<br />
<br />
=== Installation template ===<br />
<br />
Another alternative way to unify the two main guides would be to follow the same philosophy we used to write the scenarios in [[Dm-crypt_with_LUKS/Encrypting_an_entire_system]], originally discussed in [[Talk:Dm-crypt#New_idea]]: the new installation guide could be a bare, though ''complete'', list of commands and simple instructions needed to install the system in one example scenario, with links to the various relevant articles for detailed information and adaptations to specific cases. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 21:18, 27 March 2014 (UTC)<br />
<br />
:Well, the Beginners' guide suffers from issues related to both content and style, and I really think they need to be addressed at the same time. Every suggestion so far deals only with one problem.<br />
:'''Content:''' I agree that the purpose of the guide (be it Beginners' or Installation) should be to describe only one scenario and provide links to other articles describing the alternatives. I really like ''this part'' of your suggestion, but it solves only half of the problem.<br />
:'''Style:''' The biggest problem is that Beginners' guide is unique mixture of ''introduction to reading ArchWiki'' and ''introduction to installing and '''using''' Arch Linux'', which are simply inseparable in the context of BG - you just can't expect newcomers to first read [[Help:Reading]] and only then start installing their system. So, there is a little bit of anarchy, as the BG is mostly excused from the [[Help:Style|style guidelines]] and there are no guidelines specifically for the BG. Unifying the two guides would necessarily mean a compromise regarding style, which would not be the best for either beginners or gurus.<br />
:Also, I think that it is a good thing that BG is readable ''without reading other pages'' (as defined in [[#Define scope of the guide]]), because it implies that the most important things have been collected and the readers don't have to click-and-search ''too much''. This is really important for the newcomers, because the orientation in the graph of internal links (I wanted to visualize the graph, but it's just too big) is really difficult - they would need to read dozens of pages (with some [[Help:Style|alien style]] applied) before they had the basic system running. On the other hand, one of the main points of BG should be to prepare the readers for other ArchWiki articles, but sometimes the readers are [https://wiki.archlinux.org/index.php?title=Talk:NetworkManager&diff=291207&oldid=285657 too] [https://wiki.archlinux.org/index.php?title=Talk:NetworkManager&diff=304473&oldid=295238 spoiled].<br />
:Well, that is my defence of keeping both IG and BG. In my opinion it is enough to just properly define the scope of BG and trim it down to ease the maintenance, addressing the ''content'' part. But of course if there is a suggestion on merging the two guides addressing the ''style'' issues, let's hear it!<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 11:16, 30 March 2014 (UTC)<br />
<br />
::About the style issue, I don't think experienced users would be so bothered by some pacman, systemctl or nano examples, and the unified guide should probably explicitly warn users that they won't find similar examples in the other articles, which would be a perfect way to invite them to become familiar with [[pacman]], [[systemd]], [[Help:Reading]]... Besides, if the guide will be properly structured, experienced users who don't have their own custom installation notes will be able to just follow the automatic ToC as a memory refresher.<br />
::I disagree that the fact that the "BG is readable ''without reading other pages''" is a good thing, as that's exactly the reason that makes it hard to maintain and encourages duplication of information; if users were used to follow links instead, most of the efforts now spent in improving the BG would be instead spent in properly improving the linked articles, which would then become as easy to follow as the BG is now.<br />
::Anyway, I've proposed a change in [[#Comments]] (under [[#Plan]]) that I think should be more likely to reach general consensus, and that would already be a good step forward.<br />
::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 03:35, 31 March 2014 (UTC)<br />
<br />
:::I'm beginning to understand the need for merging. After the BG is slimmed down to cover only one example scenario, the title will be just wrong and the scope will be ''exactly'' the same as for IG. It all depends on whether different target audience and related style differences are enough to justify two guides.<br />
:::I hate being the blocker, so let's slim down BG and when it comes to the point of merging with IG, at least it will not be so shocking. I can't help but to think about it as simple redirecting of BG to IG, which will be (more or less) the eventual outcome, so I will need some time to absorb.<br />
:::Finally, we should also look at [[ArchWiki:Requests#Cleanup: installation category]], so that [[:Category:Getting and installing Arch]] is actually useful for providing alternative scenarios, and to ensure there is a place where to move excessive information from the BG.<br />
:::-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:35, 7 April 2014 (UTC)<br />
<br />
::::You are not "the blocker", every opinion is as valuable as the others if well argumented, be it for or against the proposal. Especially in this case where we seem to be the only 2 people interested in discussing...<br />
::::If the unification will eventually be completed, of course the BG will become a redirect to the IG, and the latter will be unprotected (and well watched so it's not turned again into a BG).<br />
::::Let's go on with the change very gradually, that's definitely the best way to let everyone successfully and happily adapt to the new way of following the document, which, if done properly, will be even easier and clearer (no need to compare two guides anymore, just to mention an advantage).<br />
::::Of course [[ArchWiki:Requests#Cleanup: installation category]] is strictly linked to all this, I'll try to get there too.<br />
::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 05:26, 9 April 2014 (UTC)<br />
<br />
:::::Just as a note, [[:Category:Getting and installing Arch]] has since made great progress, and replaced most of the "introductory" content in the BG. :) [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=394011&oldid=393888] [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=400221&oldid=400209] -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 00:21, 18 September 2015 (UTC)<br />
<br />
=== Page protection ===<br />
<br />
I personally would suggest leaving the Installation guide locked after the merger (even if that would lock me out also :). Thing is, if someone went through the effort of researching an addition to the guide, it would be easy for them to bring it up here, in the talk page, and easier for the community to discuss (and implement, if applicable). <br />
<br />
Leaving the Installation guide unprotected however would make it open to hasty edits. Even if the IG were well watched as said, a made edit's context may not be sufficiently clear to "judge" it on the spot (confirmed by [[ArchWiki:Reports]]). Having contested content remain (however short) on the main, "official" installation reference is less than ideal.<br />
<br />
A compromise may be similar to the [[IRC]] page, which is not protected in the technical sense, but has a warning urging users not to edit the page without prior consensus. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 23:30, 19 February 2015 (UTC)<br />
<br />
:Once upon a time, I absolutely don't even remember where, we even discussed the option of keeping the guide in a protected page, but do all the modifications in a separate open page (as if they were two "master" and "devel" branches), with the admins periodically approving and merging the unstable page into the official one. Thanks to the recently introduced [[Special:MergeHistory]] tool, this job could be easier nowadays. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 14:06, 20 February 2015 (UTC)<br />
<br />
::That sounds like a good option. Working hypothesis: to make users accustomed to the idea, we could now add a note at the top of the BG, suggesting to first discuss changes on the talk page. After the merger this note would then point to the "development" page. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 20:39, 16 March 2015 (UTC)<br />
<br />
:::I think that [[Special:MergeHistory]] is too primitive tool for this, AFAIK its only way of operation is "merge all revisions ''up to'' specified one", i.e. there is no ''cherry-picking'' of feasible revisions. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 20:50, 16 March 2015 (UTC)<br />
<br />
::::@Alad I'm still thinking about it, I'm not sure whether having 2 protected installation guides would be too confusing. The branch method would certainly be well suited if we really ended up merging the guides into one.<br />
::::@Lahwaacz The way it would work would be (''master'' is protected, contains the whole revisions history and ''will not receive direct edits'' by anyone, including admins):<br />
:::::# ''develop'' is initialized with a simple copy of the latest revision of ''master''<br />
:::::# Some users make some edits to ''develop''<br />
:::::# The wiki staff amends/undos ''develop'' as necessary with additional edits (like it happens now in the only branch)<br />
:::::# Once ''develop'' is considered in a good state, [[Special:MergeHistory]] can be used safely, no need for cherry-picking<br />
:::::# Go back to 1 (at this step ''develop'' is a redirect to ''master'')<br />
::::— [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 13:09, 17 March 2015 (UTC)<br />
<br />
::::A simpler alternative with the same effect would be maintaining a link that points to the latest officially approved revision in the history of the article, for example in a Note in the intro. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 13:13, 17 March 2015 (UTC)<br />
<br />
:::::Take your time, it will take a lot more work to get the BG anywhere near ready for merging. A link with note sounds viable as well; we could add a table with different options below. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 22:08, 17 March 2015 (UTC)<br />
<br />
::::::To add another suggestion, the Talk page of both guides works well in implementing and discussing changes, ''when used''. Often, you see remarks scattered throughout IRC and the forums. As such, we could expand the scope by opening a new thread in the forums, e.g "The Installation Guide thread" and ask it to be made sticky. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 17:25, 27 August 2015 (UTC)<br />
::::::We could even suggest users to make a (partial) copy in their user pages to propose their changes. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:11, 31 August 2015 (UTC)<br />
<br />
== Linked to 'parted' Manual doesn't list ext3 or ext4 for fs-type ==<br />
<br />
Hi guys. Recent Arch convert here. Loving it. No bloat! Noticed this during Beginners Guid install though:<br />
<br />
In the section on using parted ( [[Beginners%27_guide#Partition_schemes]] ), it links to the Gnu parted manual at [http://www.gnu.org/software/parted/manual/parted.html#mkpart http://www.gnu.org/software/parted/manual/parted.html#mkpart] for fs-types, but the (rather dated?) manual doesn't list ext3 or ext4. At this point I 'guessed' ext2 was the right choice... Only to find that LATER in the 'Beginners Guide' page it recommended ext4. Damn! Wasn't sure if I had to go back and re-do. Seemed not. But anyway, confusing for 'Beginners'. Anyway, dare not edit the wiki being an Arch noob at this point. Keep up the good work! Cheers. -- [[User:Peterg4000|Peterg4000]] ([[User talk:Peterg4000|talk]]) 00:53, 7 April 2015 (UTC)<br />
<br />
:Yes, this is a rather confusing concept: the file system type associated to a partition is a different thing from the file system that you later use to format that partition... It's explained in a bit clearer way in [[Wikipedia:Disk_partitioning#PC_partition_types]], but we should probably explain it better here too.<br />
:In theory, using "ext2", "ext3" or "ext4" when you use {{ic|(parted) mkpart}} shouldn't make any difference at all, as they all set the same partition type code. What does make a difference is the file system you choose when you actually format the partition in [[Beginners'_guide#Create_filesystems]].<br />
:Of course it's wise to make sure the ''fs-type'' corresponds to the file system that is going to be used, but even though I've never tested it, I guess you could use e.g. "NTFS" for ''fs-type'' and still be able to format the partition with ext4 or whatever file system you want.<br />
:— [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 13:49, 7 April 2015 (UTC)<br />
<br />
:: Oh, so for ext3/4 one should just set fs-type to ext2 in parted (etc). Lesson learnt. A one liner would be good saying something like "If you don't know any better, set fs-type to ext2 (Which is the correct option for ext2/3/4), and then format with ext4 below." -- [[User:Peterg4000|Peterg4000]] ([[User talk:Peterg4000|talk]]) 23:32, 7 April 2015 (UTC)<br />
<br />
:::We needed something more generic and educational, I've added [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&action=historysubmit&diff=368977&oldid=368819], I hope it's clear enough, please re-open the discussion if it's not :) — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 07:17, 8 April 2015 (UTC)<br />
<br />
::::Looks great. Loving the Arch way, community, Wiki etc. Cheers. -- [[User:Peterg4000|Peterg4000]] ([[User talk:Peterg4000|talk]]) 08:49, 8 April 2015 (UTC)<br />
<br />
::::Actually, parted 3.2 has an explicit label for ext4: {{bc|<nowiki><br />
(parted) help mkpart <br />
mkpart PART-TYPE [FS-TYPE] START END make a partition<br />
...<br />
FS-TYPE is one of: btrfs, nilfs2, </nowiki>'''ext4, ext3'''<nowiki>, ext2, fat32, fat16, hfsx, hfs+, hfs, jfs, swsusp, linux-swap(v1), linux-swap(v0),<br />
ntfs, reiserfs, hp-ufs, sun-ufs, xfs, apfs2, apfs1, asfs, amufs5, amufs4, amufs3, amufs2, amufs1, amufs0, amufs, affs7, affs6,<br />
affs5, affs4, affs3, affs2, affs1, affs0, linux-swap, linux-swap(new), linux-swap(old)<br />
...<br />
</nowiki>}}<br />
::::If they are all mapped to the same partition code is another matter, so I'm fine with the current wording. Alternatively we could leave out FS-TYPE completely, after all it is optional (but this is not reflected in the BG).<br />
::::-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 14:41, 8 April 2015 (UTC)<br />
<br />
:::::Do we want to reopen and investigate this further? Thanks for reminding of the help command, however I can find many sources that seem to confirm that many Linux native file systems (but not all of the above!) map to 0x83: [http://www.win.tue.nl/~aeb/partitions/partition_types-1.html] [http://askubuntu.com/questions/230930/whats-the-difference-of-partition-type-and-filesystem-type] [http://www.tldp.org/HOWTO/Partition-Mass-Storage-Definitions-Naming-HOWTO/x190.html] [http://thestarman.pcministry.com/asm/mbr/PartTypes.htm] [http://datarecovery.com/rd/hexadecimal-flags-for-partition-type/]. Unfortunately, as [[Wikipedia:Partition_type#Overview]] says, these codes are not standardized, so we won't be able to find an official reference. Last thing, quoting the [http://www.gnu.org/software/parted/manual/parted.html#mkpart manual], " fs-type is required for data partitions (i.e., non-extended partitions)", so I wouldn't leave it out as optional. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 09:46, 9 April 2015 (UTC)<br />
<br />
::::::The clearest would either be {{ic|mkpart primary linux}} or {{ic|mkpartfs ext4}} but I doubt either is supported... -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 12:47, 9 April 2015 (UTC)<br />
<br />
:::::::I doubt too, I've [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=369201&oldid=368977 replaced] the link to the manual with "help mkpart". — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 13:21, 10 April 2015 (UTC)<br />
<br />
:::::::I wasn't sure where to put this as I'm also new and it's really minor, but also in the parted section when making partitions it says to put 'm' for MiB, this should probably be updated as in my install just 'm' set my sizes to MB not MiB. Suggest updating or preferably instructing the user to define units when entering parted: so set units MiB or GiB or whatever so that just numbers can be used afterwards in creating partitions.[[User:Jjex22|Jjex22]] ([[User talk:Jjex22|talk]]) 05:04, 27 August 2015 (UTC)<br />
<br />
== Replace parted with cfdisk/cgdisk ==<br />
So, just wanna throw this out there for discussion. I've always found cfdisk/cgdisk to be much more beginner-friendly and intuitive than parted. Since this is the "Beginner's Guide" wouldn't it make sense to recommend using these tools? At the very least, it might be good to mention that they are visual partitioning tools when they are listed in the "partitioning tools" section. Thoughts? -- [[User:A Future Pilot|A Future Pilot]] ([[User talk:A Future Pilot|talk]]) 14:21, 13 July 2015 (UTC)<br />
<br />
:Related: [https://wiki.archlinux.org/index.php?title=Talk:Beginners%27_guide&oldid=354845#Partitioning]<br />
:I personally wouldn't mind revisiting the topic on fdisk vs. parted (unsure on the benefits of cfdisk or cgdisk - they're not "visual" besides a more-or-less clunky table format, and fdisk has a print switch). This however implies merging Parted content to [[parted]] as mentioned in [[#Plan]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 14:53, 13 July 2015 (UTC)<br />
<br />
::This could be done. The recommendations were different in the past:<br />
::* [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&oldid=259921#Example 31st May 2013] - cfdisk/cgdisk used here<br />
::* [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&oldid=321625#Prepare_the_storage_drive 26th June 2014] - cgdisk & fdisk used here<br />
::are just a couple of examples. -- [[User:Chazza|Chazza]] ([[User talk:Chazza|talk]]) 15:17, 13 July 2015 (UTC)<br />
<br />
:::I personally also favor (c)fdisk. I think it both are very clear for beginners, and they can handle both MBR and GPT (no need for (c)gdisk).<br />
:::In any case, I think we should choose a tool which can handle both GPT and MBR partitioning schemes, because otherwise things will get messy again. This is one of the reasons why we changed to parted: it supports both (and back then, there was some question about the stability of fdisk's GPT support, but I'm sure it is fine now; I've personally never has issues). [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 17:14, 13 July 2015 (UTC)<br />
<br />
::::This is obviously too subjective from those being used to one specific tool. I personally find parted to be easier to understand because you write the whole commands instead of just a couple of meaningless letters. Granted, all tools have a help page built in, provide a detailed man page and there is a bunch of "tutorials" for every possible scenario. So, is it even possible to select the "most beginner-friendly" tool or should we decide based on different factor? In any case, there should be only one tool described in detail in the BG and alternatives should be linked to. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 17:23, 13 July 2015 (UTC)<br />
<br />
:::::I agree with your last point, that there should only be one tool described in the BG.<br />
:::::But I cannot see how we can choose one on other criteria than "beginner-friendly", as all candidates should be able to provide the same functionality. What other factors are there to decide on?<br />
:::::The only I can think of is that fdisk ({{pkg|util-linux}}) is in [core] and {{Grp|base}}, and {{pkg|parted}} is not. But both are on the installation ISO, so I'm not sure if that matters at all.<br />
:::::I am afraid that there is no real criterion to decide by, except for "beginner/user-friendliness", which is indeed subjective. [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 21:22, 13 July 2015 (UTC)<br />
<br />
::::::We could circumvent the issue by adding detailed examples to the articles in question, rather than describing one particular tool in the BG. In addition, we could add a few sentences outlining basic differences between the tools. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:09, 14 July 2015 (UTC)<br />
<br />
:::::::As said, the BG switched from fdisk to parted only a few months ago (which in wiki terms means "yesterday"), so we can't keep going back and forth like in a loop. At this point, I support Alad's proposal above to move the examples to the specialized articles, which also goes in the [[#Unification]] direction (and this discussion itself is yet another argument in support of that plan). — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 11:49, 15 July 2015 (UTC)<br />
<br />
:::::::: I would like to concur with Alad and Kynikos on this. It should be up to the user to choose the appropriate tool, and the information from the BG should be merged into the [[GNU Parted]] article, which keeps the BG moving towards [[#Unification]]. [[User:Pid1|Pid1]] ([[User talk:Pid1|talk]]) 22:50, 25 July 2015 (UTC)<br />
<br />
:::::::::As proposed in [[Talk:Partitioning#remove_gdisk_instructions_for_install_medium_2013-11]], I've split [[fdisk]]: if the BG will become partitioning-tool-agnostic, that article will have to be improved as well. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 04:13, 29 July 2015 (UTC)<br />
<br />
== Replace systemd-boot with GRUB (UEFI) ==<br />
<br />
I'm curious if we could expand the GRUB section with a few commands for UEFI/GPT, rather than have a complete section on systemd-boot. I'm aware systemd-boot is the "default" on the ArchISO, but we don't use syslinux for BIOS/MBR installs either. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:30, 24 August 2015 (UTC)<br />
<br />
:Implemented [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&type=revision&diff=394027&oldid=394017]. There are a few rough edges left, but I think this can be closed. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 07:24, 27 August 2015 (UTC)<br />
<br />
::Is there any good reason for this besides the fact that it simplifies the guide? Also, the information that the EFI partition has to be at least 512MB large is just wrong. That should be removed. [[User:Protake|Protake]] ([[User talk:Protake|talk]]) 13:49, 29 August 2015 (UTC)<br />
<br />
:::Simplifying the guide / reducing duplicated efforts is reason enough. If people want to use a different boot loader, they can use the relevant articles.<br />
:::As to the ESP, we could link to [[Unified_Extensible_Firmware_Interface#EFI_System_Partition]] for details on requirements. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 14:01, 29 August 2015 (UTC)<br />
<br />
::::I've weakened the wording on recommended size [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=396531&oldid=396530] [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=396799&oldid=396531] [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&action=historysubmit&type=revision&diff=396808&oldid=396799]. Do you think this is enough, or should we explicitely mention a lower value? -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 10:02, 31 August 2015 (UTC)<br />
<br />
:Personally, I think this is a really bad idea. It gives the impression that GRUB is the recommended bootloader, which is most definitely NOT the case for UEFI.<br />
:[[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 02:53, 5 September 2015 (UTC)<br />
<br />
::Thanks for pointing that out. I've replaced it, and also got rid of the arbitrary 512 MiB size. [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&type=revision&diff=398375&oldid=398253] As mentioned in the summary, this is better explained in the ESP article, and [[Beginners' guide#Prepare the storage devices]] already has a matching example.<br />
::Further thoughts ? -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 12:50, 5 September 2015 (UTC)<br />
<br />
:::Thanks, using systemd-boot as an example is definitely better than using GRUB. Still not really ideal, IMO, but I don't have a better idea. I understand the need to have an example here.<br />
:::[[User:Scimmia|Scimmia]] ([[User talk:Scimmia|talk]]) 14:59, 8 September 2015 (UTC)<br />
::::What about these? [[Beginners_guide#UEFI.2FGPT_examples]]--[[User:Betseg|Betseg]] ([[User talk:Betseg|talk]]) 22:52, 31 October 2015 (UTC)<br />
<br />
== "See ''foo''" vs "See the ''foo'' article" ==<br />
<br />
This revision [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=400266&oldid=400243] added a new mention of "See the ''foo'' article", rather than the more common "See ''foo''". I'd argue former is the better form, and when the guide is viewed from a .txt (if the BG/IG merge completes), the longer wording makes sense as well. Are there opinions against using the longer form throughout the BG? -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 00:13, 18 September 2015 (UTC)<br />
<br />
:I'm neutral, so that doesn't count as an opinion against ^^ That said, the long form can only be used with links to entire articles, but more difficultly with links to specific sections such as "See also [[Pacman#pacman crashes the official installation media]]", since in those cases a more natural-sounding long form should be something like "See also the 'pacman crashes the official installation media' section of the [[Pacman]] article", I think, which is clearly ugly to see and use, so consistency is a bit hard to reach. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 16:13, 18 September 2015 (UTC)<br />
<br />
::I guess the proper solution would be to incorporate links in the article text where possible. "See X" gets repetitive fast, anyway. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 14:44, 29 September 2015 (UTC)<br />
<br />
== Redirects to sections ==<br />
<br />
:''[Moved from [[User talk:Alad]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 00:17, 18 September 2015 (UTC)]''<br />
<br />
Are you sure about [https://wiki.archlinux.org/index.php?title=Beginners%27_guide&diff=next&oldid=393417 this]? I don't think javascript has anything to do with this, it should be the browser's feature. At least here with firefox + noscript everything works fine... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 21:47, 23 August 2015 (UTC)<br />
<br />
:Odd, it didn't work for me (also FF/Noscript) and someone on IRC had a similar issue... I'll try again (with Chromium) and report back. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 03:43, 24 August 2015 (UTC)<br />
<br />
::Funny (not so much...), it should be [https://phabricator.wikimedia.org/T53736 #T53736] :( For example I can reproduce it on Firefox by disabling JS with the [https://addons.mozilla.org/en-us/firefox/addon/web-developer/ Web Developer] extension. What do we do, do we really start avoiding redirects to sections?? I'm against, I'd rather wait for [https://phabricator.wikimedia.org/T53736#556866 some kind] of fix upstream instead. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 03:55, 24 August 2015 (UTC)<br />
<br />
:::Oops, I tested it twice with and without javascript and of course the second time the URL was already mangled by the javascript from the first time. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:30, 24 August 2015 (UTC)<br />
<br />
==<s> update packages during installation </s>==<br />
<br />
Can we add "pacman -Syu" to the guide? And to the Installation guide.<br />
<br />
I guess it needs to be done after "Change root" and before "Install a boot loader".<br />
<br />
On 2015-10-26 I installed Arch from the iso of 2015-10-01, and got an error when installing xorg-server because the package list was out-of-date. I had to ask for help; see https://bbs.archlinux.org/viewtopic.php?pid=1573761 {{Unsigned|13:50, 26 October 2015|J77h}}<br />
<br />
:No. ''pacstrap'' already provides you with an updated system; it's up to you to ''keep'' it updated.<br />
:That said, see [[Talk:Pacman#Don't rush updates]] for an ongoing effort on improving ''pacman''-related pages. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 14:37, 26 October 2015 (UTC)<br />
<br />
::I had run pacstrap only a few minutes earlier. Maybe it updated only core; the package it couldn't get was in extra. When the problem happened it didn't seem related to issues in the trouble-shooting links. Anyway, I'm new to this, so can only give a beginner's perspective: in my case an instruction to do ''pacman -Syu'' would have kept the process going smoothly. Rather than leave people to get an error, then search in complex trouble-shooting pages, couldn't you at least add a mention of the possibility that the package list from the iso might no longer match what's on the mirrors, and advise how to remove that possibility? [[User:J77h|J77h]] ([[User talk:J77h|talk]]) 15:19, 26 October 2015 (UTC)<br />
<br />
:::pacstrap runs {{ic|pacman -Sy}} and retrieves the database(s) for the [[Official repositories|repositories]] you have enabled from a [[mirror]] - this includes extra. The ISO packages are not involved, which is why you need a working Internet connection prior to installation. I've rephrased the sections in [[Pacman#Troubleshooting]]: [https://wiki.archlinux.org/index.php?title=Pacman&diff=407023&oldid=406929]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 17:34, 26 October 2015 (UTC)<br />
<br />
:Since you were trying to install Xorg, I suppose you had already finished with this guide, and were following [[General recommendations]], so this discussion can be closed.<br />
:The "problem" you experienced is very common, and you'll see it again in the future, it's not related to the installation procedure. {{Pkg|mesa}} was coincidentally updated [https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/mesa&id=fdef0f4f0ac801823bfa754733b23d4a44407a9d on the 26th], surely after you ran pacstrap during installation, but before you went to install Xorg, so in the meanwhile your local pacman database got out of sync with your mirror, and when pacman tried to download the file from it, the server replied that it didn't have it (anymore). This is a normal (unsolvable) race bug that can happen every time you install or upgrade packages: in theory not even always installing packages with {{ic|pacman -Syu package1 package2}} will 100% protect you, in fact if package2 gets updated right while pacman is downloading package1, you will still get the 404 when package2 is requested. In practice, if you run {{ic|pacman -Syu package1}} the first time you install a package in a day you'll be fine 99% of the times, and during the rest of the day you should get away with just using {{ic|pacman -S package2}}, which is faster since it doesn't have to resync the database.<br />
:— [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 13:41, 27 October 2015 (UTC)</div>Betseghttps://wiki.archlinux.org/index.php?title=NTFS-3G&diff=397579NTFS-3G2015-09-02T16:23:53Z<p>Betseg: /* Format NTFS */</p>
<hr />
<div>[[Category:File systems]]<br />
[[es:NTFS-3G]]<br />
[[he:NTFS-3G]]<br />
[[it:NTFS-3G]]<br />
[[ja:NTFS-3G]]<br />
[[ru:NTFS-3G]]<br />
[[zh-CN:NTFS-3G]]<br />
[[zh-TW:NTFS-3G]]<br />
{{Related articles start}}<br />
{{Related|File systems}}<br />
{{Related|Mount}}<br />
{{Related articles end}}<br />
<br />
[http://www.tuxera.com/community/ntfs-3g-download/ NTFS-3G] is an open source implementation of Microsoft's NTFS file system that includes read and write support. NTFS-3G developers use the FUSE file system to facilitate development and to help with portability.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|ntfs-3g}} package.<br />
<br />
== Manual mounting ==<br />
<br />
Two options exist for manually mounting NTFS partitions. The traditional:<br />
<br />
# mount -t ntfs-3g /dev/''your_NTFS_partition'' ''/mount/point''<br />
<br />
Mount type {{ic|ntfs-3g}} does not need to be explicitly specified in Arch. The ''mount'' command by default will use {{ic|/usr/bin/mount.ntfs}} which is symlinked to {{ic|/usr/bin/ntfs-3g}} after the ntfs-3g package is installed.<br />
<br />
The second option is to call {{ic|ntfs-3g}} directly:<br />
<br />
# ntfs-3g /dev/''your_NTFS_partition'' ''/mount/point''<br />
<br />
== Configuring ==<br />
<br />
Your NTFS partition(s) can be setup to mount automatically, or pre-configured to be able to mount in a certain way when you would like them to be mounted. This configuration can be done in the static filesystem configuration ([[fstab]]) or by the use of udev rules.<br />
<br />
=== Default settings ===<br />
<br />
Using the default settings will mount the NTFS partition(s) at boot. With this method, '''if''' the parent folder that it is mounted upon has the proper user or group [[Users and groups|permissions]], then that user or group will be able to read and write on that partition(s).<br />
<br />
Put this in {{ic|/etc/fstab}}:<br />
<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
/dev/''NTFS-part'' /mnt/windows ntfs-3g defaults 0 0<br />
<br />
=== Linux compatible permissions ===<br />
<br />
Permissions on a Linux system are normally set to 755 for folders and 644 for files. It is recommended to keep these permissions in use for the NTFS partition as well if you use the partition on a regular basis. The following example assigns the above permissions to a normal user:<br />
<br />
# Mount internal Windows partition with linux compatible permissions, i.e. 755 for directories (dmask=022) and 644 for files (fmask=133)<br />
UUID=01CD2ABB65E17DE0 /run/media/user1/Windows ntfs-3g uid=user1,gid=users,dmask=022,fmask=133 0 0<br />
<br />
=== Allowing group/user ===<br />
<br />
In {{ic|/etc/fstab}} you can also specify other options like those who are allowed to access (read) the partition. For example, for you to allow people in the {{ic|users}} group to have access:<br />
<br />
/dev/''NTFS-partition'' /mnt/windows ntfs-3g gid=users,umask=0022 0 0<br />
<br />
By default, the above line will enable write support for root only. To enable user writing, you have to specify the user who should be granted write permissions. Use the {{ic|uid}} parameter together with your username to enable user writing:<br />
<br />
/dev/''NTFS-partition'' /mnt/windows ntfs-3g uid=''username'',gid=users,umask=0022 0 0<br />
<br />
If you are running on a single user machine, you may like to own the file system yourself and grant all possible permissions:<br />
/dev/''NTFS-partition'' /mnt/windows ntfs-3g uid=''username'',gid=users 0 0<br />
<br />
=== Basic NTFS-3G options ===<br />
<br />
For most, the above settings should suffice. Here are a few other options that are general common options for various Linux filesystems. For a complete list, see [http://www.tuxera.com/community/ntfs-3g-manual/#6 this]<br />
<br />
;[[umask]]: umask is a built-in shell command which automatically sets file permissions on newly created files. For Arch Linux, the default umask for root and user is 0022. With 0022 new folders have the directory permissions of 755 and new files have permissions of 644. You can read more about umask permissions [http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html here].<br />
;noauto: If {{ic|noauto}} is set, NTFS entries in {{ic|/etc/fstab}} do not get mounted automatically at boot.<br />
;uid: The user id number. This allows a specific user to have full access to the partition. Your uid can be found with the {{ic|id}} command.<br />
;fmask and dmask: Like {{ic|umask}} but defining file and directory respectively individually.<br />
<br />
=== Allowing user to mount ===<br />
<br />
By default, ''ntfs-3g'' requires root rights to mount the filesystem, even with the "user" option in {{ic|/etc/fstab}}, the reason why can be found [http://www.tuxera.com/community/ntfs-3g-faq/#unprivileged here]. The user option in the fstab is still required. To be able to mount as user, a few tweaks need to be made:<br />
<br />
First, check that you have access to the mount block you want to use, the easiest way to do that is to be in the disk groups with the following command:<br />
<br />
# gpasswd -a username disk<br />
<br />
{{Note|Groups rights sometimes requires rebooting to kick in.}}<br />
<br />
You also need access to the mountpoint you want to use. Since we're going to mount something as user on this mountpoint, we might as well own it:<br />
# chown ''user'' /mnt/''mountpoint''<br />
<br />
Second, you need a NTFS-3G driver compiled with integrated FUSE support. The ntfs-3g package from the official repositories does not have this support, but {{AUR|ntfs-3g-fuse}} does.<br />
<br />
You should now be able to mount your NTFS partition without root rights.<br />
<br />
{{Note|There seems to be an issue with unmounting rights, so you will still need root rights if you need to unmount the filesystem. You can also use {{ic|fusermount -u /mnt/''mountpoint''}} to unmount the filesystem without root rights. Also, if you use the {{ic|''users''}} option (plural) in {{ic|/etc/fstab}} instead of the {{ic|user}} option, you will be able to both mount and unmount the filesystem using the {{ic|mount}} and {{ic|umount}} commands.}}<br />
<br />
=== ntfs-config ===<br />
<br />
{{Aur|ntfs-config}} is a program that may be able to help configure your NTFS partition(s) if other methods do not work.<br />
<br />
== Resizing NTFS partition ==<br />
<br />
{{Note|Please ensure you have a backup before attempting this if your data is important!}}<br />
<br />
Most systems that are purchased already have [[Wikipedia:Windows|Windows]] installed on it, and some people would prefer not wipe it off completely when doing an Arch Linux installation. For this reason, among others, it is useful to resize the existing Windows partition to make room for a Linux partition or two. This is often accomplished with a [[Wikipedia:Live CD|Live CD]] or bootable USB thumb drive.<br />
<br />
For Live CDs the typical procedure is to download an ISO file, burn it to a CD, and then boot from it. [http://infrarecorder.org/ InfraRecorder] is a free (as in GPL3) CD/DVD burning application for Windows which fits the bill nicely. If you would rather use a bootable USB media instead, see [[USB flash installation media]] for methods to create bootable USB stick.<br />
<br />
There are a number of bootable CD/USB images avaliable. This list is not exhaustive, but is a good place to start:<br />
<br />
* {{App|[[Wikipedia:GParted|GParted]]|Small bootable GNU/Linux distribution for x86 based computers. It enables you to use all the features of the latest versions of the GParted application. Does not include additional packages System Rescue CD may incorporate, and disk encryption schemes may not be supported.|http://gparted.sourceforge.net/|}}<br />
* {{App|[[Wikipedia:Parted Magic|Parted Magic]]|Very good complete hard disk management solution. With the Partition Editor you can re-size, copy, and move partitions. You can grow or shrink your C: drive. Create space for new operating systems. Attempt data rescue from lost partitions.|http://partedmagic.com/|}}<br />
* {{App|[[Wikipedia:SystemRescueCD|SystemRescueCD]]|Good tool to have, and works seamlessly in most cases. Once booted, run GParted and the rest should be fairly obvious.|http://www.sysresccd.org/|}}<br />
<br />
Note that the important programs for resizing NTFS partitions include ntfs-3g and a utility like (G)parted or fdisk, provided by the {{Pkg|util-linux}} package. Unless you are an "advanced" user it is advisable to use a tool like GParted to perform any resize operations to minimize the chance of data loss due to user error.<br />
<br />
If you already have Arch Linux installed on your system and simply want to resize an existing NTFS partition, you can use the parted and ntfs-3g packages to do it. Optionally, you can use the GParted GUI after installing the [[GParted]] package.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Damaged NTFS filesystems ===<br />
<br />
If an NTFS filesystem has errors on it, NTFS-3G will mount it as read-only. To fix an NTFS filesystem, load Windows and run its disk checking program, chkdsk.<br />
Take in account that ntfsfix can only repair some errors. If it fails, chkdsk will probably succeed.<br />
<br />
To fix the NTFS file system, the device must already be unmounted. For example, to fix an NTFS partition residing in {{ic|/dev/sda2}}:<br />
<br />
# umount /dev/sda2<br />
# ntfsfix /dev/sda2<br />
Mounting volume... OK<br />
Processing of $MFT and $MFTMirr completed successfully.<br />
NTFS volume version is 3.1.<br />
NTFS partition /dev/sda2 was processed successfully.<br />
# mount /dev/sda2<br />
<br />
If all went well, the volume will now be writable.<br />
<br />
=== Metadata kept in Windows cache, refused to mount ===<br />
<br />
When dual booting with Windows 8 or 10, trying to mount a partition that is visible to Windows may yield the following error:<br />
<br />
The disk contains an unclean file system (0, 0).<br />
Metadata kept in Windows cache, refused to mount.<br />
Failed to mount '/dev/sdc1': Operation not permitted<br />
The NTFS partition is in an unsafe state. Please resume and shutdown<br />
Windows fully (no hibernation or fast restarting), or mount the volume<br />
read-only with the 'ro' mount option.<br />
<br />
The problem is due to a feature introduced in Windows 8 called "fast startup". When fast startup is enabled, part of the metadata of all mounted partitions are restored to the state they were at the previous closing down. As a consequence, changes made on Linux may be lost. This can happen to any NTFS partition when selecting "Shut down" or "Hibernate" under Windows 8 or 10. Leaving Windows by selecting "Restart", however, is apparently safe.<br />
<br />
To enable writing to the partitions on other operating systems, be sure fast restart is disabled. This can be achieved by issuing as an administrator the command:<br />
<br />
powercfg /h off<br />
<br />
You can check the current settings on ''Control Panel > Hardware and Sound > Power Options > System Setting > Choose what the power buttons do''. The box ''Turn on fast startup'' should either be disabled or missing.<br />
<br />
=== Mount failure ===<br />
<br />
If you cannot mount your NTFS partition even when following this guide, try using the [[UUID]] instead of device name in {{ic|/etc/fstab}} for all NTFS partitions. Here's an fstab [[Fstab#UUIDs|example]].<br />
<br />
=== Format NTFS ===<br />
<br />
{{Warning|As always, double check the device path.}}<br />
<br />
# mkfs.ntfs -L myCoolDiskName /dev/sd''XY''<br />
<br />
If you do not want this to take ages on modern harddrives use:<br />
<br />
# mkfs.ntfs -Q -L myCoolDiskName /dev/sd''XY''<br />
<br />
{{Note|Manual page on {{ic|-Q}}: Perform quick (fast) format. This will skip both zeroing of the volume and bad sector checking.}}<br />
<br />
=== Created files do not respect umask ===<br />
<br />
With the {{ic|permissions}} option set in {{ic|/etc/fstab}}, NTFS-3G volumes can handle regular Linux permissions. However, created files [http://tuxera.com/forum/viewtopic.php?p=38385&sid=33a8f1830c44d26a8d53090b1bec1d82#p38385 do not respect the user's umask] for versions up to 2014.2.15-1.<br />
<br />
As a workaround, use the [[ABS]] to recompile NTFS-3G without ACL support (--enable-posix-acls):<br />
{{hc|PKGBUILD|<nowiki><br />
build() {<br />
cd "${srcdir}/${_pkgname}-${pkgver}"<br />
./configure \<br />
--prefix=/usr \<br />
--sbin=/usr/bin \<br />
--mandir=/usr/share/man \<br />
--disable-ldconfig \<br />
--disable-static \<br />
--with-fuse=external \<br />
--enable-extras \<br />
<br />
make<br />
}</nowiki>}}<br />
<br />
== See also ==<br />
<br />
* [http://www.tuxera.com/community/ntfs-3g-manual/ Official NTFS-3G manual]</div>Betseghttps://wiki.archlinux.org/index.php?title=NTFS-3G&diff=397578NTFS-3G2015-09-02T16:23:43Z<p>Betseg: /* Format NTFS */</p>
<hr />
<div>[[Category:File systems]]<br />
[[es:NTFS-3G]]<br />
[[he:NTFS-3G]]<br />
[[it:NTFS-3G]]<br />
[[ja:NTFS-3G]]<br />
[[ru:NTFS-3G]]<br />
[[zh-CN:NTFS-3G]]<br />
[[zh-TW:NTFS-3G]]<br />
{{Related articles start}}<br />
{{Related|File systems}}<br />
{{Related|Mount}}<br />
{{Related articles end}}<br />
<br />
[http://www.tuxera.com/community/ntfs-3g-download/ NTFS-3G] is an open source implementation of Microsoft's NTFS file system that includes read and write support. NTFS-3G developers use the FUSE file system to facilitate development and to help with portability.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|ntfs-3g}} package.<br />
<br />
== Manual mounting ==<br />
<br />
Two options exist for manually mounting NTFS partitions. The traditional:<br />
<br />
# mount -t ntfs-3g /dev/''your_NTFS_partition'' ''/mount/point''<br />
<br />
Mount type {{ic|ntfs-3g}} does not need to be explicitly specified in Arch. The ''mount'' command by default will use {{ic|/usr/bin/mount.ntfs}} which is symlinked to {{ic|/usr/bin/ntfs-3g}} after the ntfs-3g package is installed.<br />
<br />
The second option is to call {{ic|ntfs-3g}} directly:<br />
<br />
# ntfs-3g /dev/''your_NTFS_partition'' ''/mount/point''<br />
<br />
== Configuring ==<br />
<br />
Your NTFS partition(s) can be setup to mount automatically, or pre-configured to be able to mount in a certain way when you would like them to be mounted. This configuration can be done in the static filesystem configuration ([[fstab]]) or by the use of udev rules.<br />
<br />
=== Default settings ===<br />
<br />
Using the default settings will mount the NTFS partition(s) at boot. With this method, '''if''' the parent folder that it is mounted upon has the proper user or group [[Users and groups|permissions]], then that user or group will be able to read and write on that partition(s).<br />
<br />
Put this in {{ic|/etc/fstab}}:<br />
<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
/dev/''NTFS-part'' /mnt/windows ntfs-3g defaults 0 0<br />
<br />
=== Linux compatible permissions ===<br />
<br />
Permissions on a Linux system are normally set to 755 for folders and 644 for files. It is recommended to keep these permissions in use for the NTFS partition as well if you use the partition on a regular basis. The following example assigns the above permissions to a normal user:<br />
<br />
# Mount internal Windows partition with linux compatible permissions, i.e. 755 for directories (dmask=022) and 644 for files (fmask=133)<br />
UUID=01CD2ABB65E17DE0 /run/media/user1/Windows ntfs-3g uid=user1,gid=users,dmask=022,fmask=133 0 0<br />
<br />
=== Allowing group/user ===<br />
<br />
In {{ic|/etc/fstab}} you can also specify other options like those who are allowed to access (read) the partition. For example, for you to allow people in the {{ic|users}} group to have access:<br />
<br />
/dev/''NTFS-partition'' /mnt/windows ntfs-3g gid=users,umask=0022 0 0<br />
<br />
By default, the above line will enable write support for root only. To enable user writing, you have to specify the user who should be granted write permissions. Use the {{ic|uid}} parameter together with your username to enable user writing:<br />
<br />
/dev/''NTFS-partition'' /mnt/windows ntfs-3g uid=''username'',gid=users,umask=0022 0 0<br />
<br />
If you are running on a single user machine, you may like to own the file system yourself and grant all possible permissions:<br />
/dev/''NTFS-partition'' /mnt/windows ntfs-3g uid=''username'',gid=users 0 0<br />
<br />
=== Basic NTFS-3G options ===<br />
<br />
For most, the above settings should suffice. Here are a few other options that are general common options for various Linux filesystems. For a complete list, see [http://www.tuxera.com/community/ntfs-3g-manual/#6 this]<br />
<br />
;[[umask]]: umask is a built-in shell command which automatically sets file permissions on newly created files. For Arch Linux, the default umask for root and user is 0022. With 0022 new folders have the directory permissions of 755 and new files have permissions of 644. You can read more about umask permissions [http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html here].<br />
;noauto: If {{ic|noauto}} is set, NTFS entries in {{ic|/etc/fstab}} do not get mounted automatically at boot.<br />
;uid: The user id number. This allows a specific user to have full access to the partition. Your uid can be found with the {{ic|id}} command.<br />
;fmask and dmask: Like {{ic|umask}} but defining file and directory respectively individually.<br />
<br />
=== Allowing user to mount ===<br />
<br />
By default, ''ntfs-3g'' requires root rights to mount the filesystem, even with the "user" option in {{ic|/etc/fstab}}, the reason why can be found [http://www.tuxera.com/community/ntfs-3g-faq/#unprivileged here]. The user option in the fstab is still required. To be able to mount as user, a few tweaks need to be made:<br />
<br />
First, check that you have access to the mount block you want to use, the easiest way to do that is to be in the disk groups with the following command:<br />
<br />
# gpasswd -a username disk<br />
<br />
{{Note|Groups rights sometimes requires rebooting to kick in.}}<br />
<br />
You also need access to the mountpoint you want to use. Since we're going to mount something as user on this mountpoint, we might as well own it:<br />
# chown ''user'' /mnt/''mountpoint''<br />
<br />
Second, you need a NTFS-3G driver compiled with integrated FUSE support. The ntfs-3g package from the official repositories does not have this support, but {{AUR|ntfs-3g-fuse}} does.<br />
<br />
You should now be able to mount your NTFS partition without root rights.<br />
<br />
{{Note|There seems to be an issue with unmounting rights, so you will still need root rights if you need to unmount the filesystem. You can also use {{ic|fusermount -u /mnt/''mountpoint''}} to unmount the filesystem without root rights. Also, if you use the {{ic|''users''}} option (plural) in {{ic|/etc/fstab}} instead of the {{ic|user}} option, you will be able to both mount and unmount the filesystem using the {{ic|mount}} and {{ic|umount}} commands.}}<br />
<br />
=== ntfs-config ===<br />
<br />
{{Aur|ntfs-config}} is a program that may be able to help configure your NTFS partition(s) if other methods do not work.<br />
<br />
== Resizing NTFS partition ==<br />
<br />
{{Note|Please ensure you have a backup before attempting this if your data is important!}}<br />
<br />
Most systems that are purchased already have [[Wikipedia:Windows|Windows]] installed on it, and some people would prefer not wipe it off completely when doing an Arch Linux installation. For this reason, among others, it is useful to resize the existing Windows partition to make room for a Linux partition or two. This is often accomplished with a [[Wikipedia:Live CD|Live CD]] or bootable USB thumb drive.<br />
<br />
For Live CDs the typical procedure is to download an ISO file, burn it to a CD, and then boot from it. [http://infrarecorder.org/ InfraRecorder] is a free (as in GPL3) CD/DVD burning application for Windows which fits the bill nicely. If you would rather use a bootable USB media instead, see [[USB flash installation media]] for methods to create bootable USB stick.<br />
<br />
There are a number of bootable CD/USB images avaliable. This list is not exhaustive, but is a good place to start:<br />
<br />
* {{App|[[Wikipedia:GParted|GParted]]|Small bootable GNU/Linux distribution for x86 based computers. It enables you to use all the features of the latest versions of the GParted application. Does not include additional packages System Rescue CD may incorporate, and disk encryption schemes may not be supported.|http://gparted.sourceforge.net/|}}<br />
* {{App|[[Wikipedia:Parted Magic|Parted Magic]]|Very good complete hard disk management solution. With the Partition Editor you can re-size, copy, and move partitions. You can grow or shrink your C: drive. Create space for new operating systems. Attempt data rescue from lost partitions.|http://partedmagic.com/|}}<br />
* {{App|[[Wikipedia:SystemRescueCD|SystemRescueCD]]|Good tool to have, and works seamlessly in most cases. Once booted, run GParted and the rest should be fairly obvious.|http://www.sysresccd.org/|}}<br />
<br />
Note that the important programs for resizing NTFS partitions include ntfs-3g and a utility like (G)parted or fdisk, provided by the {{Pkg|util-linux}} package. Unless you are an "advanced" user it is advisable to use a tool like GParted to perform any resize operations to minimize the chance of data loss due to user error.<br />
<br />
If you already have Arch Linux installed on your system and simply want to resize an existing NTFS partition, you can use the parted and ntfs-3g packages to do it. Optionally, you can use the GParted GUI after installing the [[GParted]] package.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Damaged NTFS filesystems ===<br />
<br />
If an NTFS filesystem has errors on it, NTFS-3G will mount it as read-only. To fix an NTFS filesystem, load Windows and run its disk checking program, chkdsk.<br />
Take in account that ntfsfix can only repair some errors. If it fails, chkdsk will probably succeed.<br />
<br />
To fix the NTFS file system, the device must already be unmounted. For example, to fix an NTFS partition residing in {{ic|/dev/sda2}}:<br />
<br />
# umount /dev/sda2<br />
# ntfsfix /dev/sda2<br />
Mounting volume... OK<br />
Processing of $MFT and $MFTMirr completed successfully.<br />
NTFS volume version is 3.1.<br />
NTFS partition /dev/sda2 was processed successfully.<br />
# mount /dev/sda2<br />
<br />
If all went well, the volume will now be writable.<br />
<br />
=== Metadata kept in Windows cache, refused to mount ===<br />
<br />
When dual booting with Windows 8 or 10, trying to mount a partition that is visible to Windows may yield the following error:<br />
<br />
The disk contains an unclean file system (0, 0).<br />
Metadata kept in Windows cache, refused to mount.<br />
Failed to mount '/dev/sdc1': Operation not permitted<br />
The NTFS partition is in an unsafe state. Please resume and shutdown<br />
Windows fully (no hibernation or fast restarting), or mount the volume<br />
read-only with the 'ro' mount option.<br />
<br />
The problem is due to a feature introduced in Windows 8 called "fast startup". When fast startup is enabled, part of the metadata of all mounted partitions are restored to the state they were at the previous closing down. As a consequence, changes made on Linux may be lost. This can happen to any NTFS partition when selecting "Shut down" or "Hibernate" under Windows 8 or 10. Leaving Windows by selecting "Restart", however, is apparently safe.<br />
<br />
To enable writing to the partitions on other operating systems, be sure fast restart is disabled. This can be achieved by issuing as an administrator the command:<br />
<br />
powercfg /h off<br />
<br />
You can check the current settings on ''Control Panel > Hardware and Sound > Power Options > System Setting > Choose what the power buttons do''. The box ''Turn on fast startup'' should either be disabled or missing.<br />
<br />
=== Mount failure ===<br />
<br />
If you cannot mount your NTFS partition even when following this guide, try using the [[UUID]] instead of device name in {{ic|/etc/fstab}} for all NTFS partitions. Here's an fstab [[Fstab#UUIDs|example]].<br />
<br />
=== Format NTFS ===<br />
<br />
{{Warning|As always, double check the device path.}}<br />
<br />
# mkfs.ntfs -L myCoolDiskName /dev/sdXY<br />
<br />
If you do not want this to take ages on modern harddrives use:<br />
<br />
# mkfs.ntfs -Q -L myCoolDiskName /dev/sdXY<br />
<br />
{{Note|Manual page on {{ic|-Q}}: Perform quick (fast) format. This will skip both zeroing of the volume and bad sector checking.}}<br />
<br />
=== Created files do not respect umask ===<br />
<br />
With the {{ic|permissions}} option set in {{ic|/etc/fstab}}, NTFS-3G volumes can handle regular Linux permissions. However, created files [http://tuxera.com/forum/viewtopic.php?p=38385&sid=33a8f1830c44d26a8d53090b1bec1d82#p38385 do not respect the user's umask] for versions up to 2014.2.15-1.<br />
<br />
As a workaround, use the [[ABS]] to recompile NTFS-3G without ACL support (--enable-posix-acls):<br />
{{hc|PKGBUILD|<nowiki><br />
build() {<br />
cd "${srcdir}/${_pkgname}-${pkgver}"<br />
./configure \<br />
--prefix=/usr \<br />
--sbin=/usr/bin \<br />
--mandir=/usr/share/man \<br />
--disable-ldconfig \<br />
--disable-static \<br />
--with-fuse=external \<br />
--enable-extras \<br />
<br />
make<br />
}</nowiki>}}<br />
<br />
== See also ==<br />
<br />
* [http://www.tuxera.com/community/ntfs-3g-manual/ Official NTFS-3G manual]</div>Betseghttps://wiki.archlinux.org/index.php?title=Dual_boot_with_Windows&diff=396704Dual boot with Windows2015-08-30T13:39:11Z<p>Betseg: /* UEFI systems */</p>
<hr />
<div>[[Category:Boot process]]<br />
[[Category:Getting and installing Arch]]<br />
[[es:Windows and Arch dual boot]]<br />
[[ja:Windows と Arch のデュアルブート]]<br />
[[ru:Windows and Arch dual boot]]<br />
[[sk:Windows and Arch dual boot]]<br />
[[zh-cn:Windows and Arch dual boot]]<br />
This is a simple article detailing different methods of Arch/Windows coexistence.<br />
<br />
== Important information ==<br />
<br />
=== Windows UEFI vs BIOS limitations ===<br />
<br />
Microsoft imposes limitations on which firmware boot mode and partitioning style can be supported based on the version of Windows used:<br />
<br />
* '''Windows XP''' both '''x86 32-bit''' and '''x86_64''' (also called x64) (RTM and all Service Packs) versions do not support booting in UEFI mode (IA32 or x86_64) from any disk (MBR or GPT) OR in BIOS mode from GPT disk. They support only BIOS boot and only from MBR/msdos disk.<br />
* '''Windows Vista''' or '''7''' '''x86 32-bit''' (RTM and all Service Packs) versions support booting in BIOS mode from MBR/msdos disks only, not from GPT disks. They do not support x86_64 UEFI or IA32 (x86 32-bit) UEFI boot. They support only BIOS boot and only from MBR/msdos disk.<br />
* '''Windows Vista RTM x86_64''' (only RTM) version support booting in BIOS mode from MBR/msdos disks only, not from GPT disks. It does not support x86_64 UEFI or IA32 (x86 32-bit) UEFI boot. It supports only BIOS boot and only from MBR/msdos disk.<br />
* '''Windows Vista''' (SP1 and above, not RTM) and '''Windows 7''' '''x86_64''' versions support booting in x86_64 UEFI mode from GPT disk only, OR in BIOS mode from MBR/msdos disk only. They do not support IA32 (x86 32-bit) UEFI boot from GPT/MBR disk, x86_64 UEFI boot from MBR/msdos disk, or BIOS boot from GPT disk.<br />
* '''Windows 8/8.1 x86 32-bit''' support booting in IA32 UEFI mode from GPT disk only, OR in BIOS mode from MBR/msdos disk only. They do not support x86_64 UEFI boot from GPT/MBR disk, x86_64 UEFI boot from MBR/msdos disk, or BIOS boot from GPT disk. On market, the only systems known to ship with IA32 (U)EFI are some old Intel Macs (pre-2010 models?) and Intel Atom System-on-Chip (Clover trail and Bay Trail) Windows Tablets. in which it boots ONLY in IA32 UEFI mode and ONLY from GPT disk.<br />
* '''Windows 8/8.1''' '''x86_64''' versions support booting in x86_64 UEFI mode from GPT disk only, OR in BIOS mode from MBR/msdos disk only. They do not support IA32 UEFI boot, x86_64 UEFI boot from MBR/msdos disk, or BIOS boot from GPT disk.<br />
<br />
In case of pre-installed Systems:<br />
<br />
* All systems pre-installed with Windows XP, Vista or 7 32-bit, irrespective of Service Pack level, bitness, edition (SKU)or presence of UEFI support in firmware, boot in BIOS-MBR mode by default.<br />
* MOST of the systems pre-installed with Windows 7 x86_64, irrespective of Service Pack level, bitness or edition (SKU), boot in BIOS-MBR mode by default. Very few recent systems pre-installed with Windows 7 are known to boot in x86_64 UEFI-GPT mode by default.<br />
* ALL systems pre-installed with Windows 8/8.1 boot in UEFI-GPT mode. The firmware bitness matches the bitness of Windows, ie. x86_64 Windows 8/8.1 boot in x86_64 UEFI mode and 32-bit Windows 8/8.1 boot in IA32 UEFI mode.<br />
<br />
The best way to detect the boot mode of Windows is to do the following (info from [http://www.eightforums.com/tutorials/29504-bios-mode-see-if-windows-boot-uefi-legacy-mode.html here]):<br />
<br />
* Boot into Windows<br />
* Press Win key and 'R' to start the Run dialog<br />
* In the Run dialog type "msinfo32" and press Enter<br />
* In the '''System Information''' windows, select '''System Summary''' on the left and check the value of '''BIOS mode''' item on the right<br />
* If the value is '''UEFI''', Windows boots in UEFI-GPT mode. If the value is '''Legacy''', Windows boots in BIOS-MBR mode.<br />
<br />
In general, Windows forces type of partitioning depending on the firmware mode used, i.e. if Windows is booted in UEFI mode, it can be installed only to a GPT disk. If the Windows is booted in Legacy BIOS mode, it can be installed only to a MBR (also called '''msdos''' style partitioning) disk. This is a limitation enforced by Windows installer, and as of April 2014 there is no officially (Microsoft) supported way of installing Windows in UEFI-MBR or BIOS-GPT configuration. Thus Windows only supports either UEFI-GPT boot or BIOS-MBR configuration.<br />
<br />
Such a limitation is not enforced by the Linux kernel, but can depend on which bootloader is used and/or how the bootloader is configured. The Windows limitation should be considered if the user wishes to boot Windows and Linux from the same disk, since installation procedure of bootloader depends on the firmware type and disk partitioning configuration. In case where Windows and Linux dual boot from the same disk, it is advisable to follow the method used by Windows, ie. either go for UEFI-GPT boot or BIOS-MBR boot. See http://support.microsoft.com/kb/2581408 for more info.<br />
<br />
=== Install media limitations ===<br />
<br />
Intel Atom System-on-Chip Tablets (Clover trail and Bay Trail) provide only IA32 UEFI firmware WITHOUT Legacy BIOS (CSM) support (unlike most of the x86_64 UEFI systems), due to Microsoft Connected Standby Guidelines for OEMs. Due to lack of Legacy BIOS support in these systems, and the lack of 32-bit UEFI boot in Arch Official Install ISO or the Archboot iso (as of April 2014), these install media cannot boot in Atom SoC tablets pre-installed with Windows 8/8.1 32-bit.<br />
<br />
=== Bootloader UEFI vs BIOS limitations ===<br />
<br />
Most of the linux bootloaders installed for one firmware type cannot launch or chainload bootloaders of other firmware type. That is, if Arch is installed in UEFI-GPT or UEFI-MBR mode in one disk and Windows is installed in BIOS-MBR mode in another disk, the UEFI bootloader used by Arch cannot chainload the BIOS installed Windows in the other disk. Similarly if Arch is installed in BIOS-MBR or BIOS-GPT mode in one disk and Windows is installed in UEFI-GPT in another disk , the BIOS bootloader used by Arch cannot chainload UEFI installed Windows in the other disk. <br />
<br />
The only exceptions to this are grub(2) in Apple Macs in which EFI installed grub(2) can boot BIOS installed OS via '''appleloader''' command (does not work in non-Apple systems), and rEFInd which technically supports booting legacy BIOS OS from UEFI systems, but [http://rodsbooks.com/refind/using.html#legacy does not always work in non-Apple UEFI systems] as per its author Rod Smith. <br />
<br />
However if Arch is installed in BIOS-GPT in one disk and Windows is installed in BIOS-MBR mode in another disk, then the BIOS bootloader used by Arch CAN boot the Windows in the other disk, if the bootloader itself has the ability to chainload from another disk. <br />
<br />
{{Note|If Arch and Windows are dual-booting from same disk, then Arch SHOULD follow the same firmware boot mode and partitioning combination used by the installed Windows in the disk.}}<br />
<br />
=== UEFI Secure Boot ===<br />
<br />
All pre-installed Windows 8/8.1 systems by default boot in UEFI-GPT mode and have UEFI Secure Boot enabled by default (which can be manually disabled by the user) and Legacy BIOS support (CSM) disabled by default (which can be manually enabled by the user, if the firmware supports it) in the firmware. This is mandated by Microsoft for all OEM pre-installed systems.<br />
<br />
Arch Linux install media currently supports Secure Boot but it requires some manual steps by the user to [[UEFI#Secure_Boot|setup the HashTool while booting]]. There it is advisable to disable UEFI Secure Boot in the firmware setup before attempting to boot Arch Linux. Windows 8/8.1 SHOULD continue to boot fine even if Secure boot is disabled. <br />
<br />
The only issue with regards to disabling UEFI Secure Boot support is that it requires physical access to the system to disable secure boot option in the firmware setup, as Microsoft has explicitly forbidden presence of any method to remotely or programmatically (from within OS) disable secure boot in all Windows 8/8.1 pre-installed systems<br />
<br />
=== Fast Start-Up ===<br />
<br />
Fast Start-Up is a feature in Windows 8 that hibernates the computer rather than actually shutting it down to speed up boot times. Your system can lose data if Windows hibernates and you dual boot into another OS and make changes to files. Even if you do not intend to share filesystems, the EFI System Partition is likely to be damaged on an EFI system. Therefore, you should disable Fast Startup, as described [http://www.eightforums.com/tutorials/6320-fast-startup-turn-off-windows-8-a.html here], before you install Linux on any computer that uses Windows 8.<br />
<br />
{{Pkg|ntfs-3g}} added a [http://sourceforge.net/p/ntfs-3g/ntfs-3g/ci/559270a8f67c77a7ce51246c23d2b2837bcff0c9/ safe-guard] to prevent read-write mounting of hibernated disks, but the NTFS driver within the Linux kernel has no such safeguard.<br />
<br />
=== Windows filenames limitations ===<br />
<br />
Windows is limited to filepaths being shorter than [http://blogs.msdn.com/b/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton.aspx 260 characters].<br />
<br />
Windows also puts [http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx#naming_conventions certain characters off limits] in filenames for reasons that run all the way back to DOS:<br />
<br />
* < (less than)<br />
* > (greater than)<br />
* : (colon)<br />
* " (double quote)<br />
* / (forward slash)<br />
* \ (backslash)<br />
* | (vertical bar or pipe)<br />
* ? (question mark)<br />
* * (asterisk)<br />
<br />
These are limitations of Windows and not NTFS: any other OS using the NTFS partition will be fine. Windows will fail to detect these files and running {{ic|chkdsk}} will most likely cause them to be deleted. This can lead to potential data-loss.<br />
<br />
'''NTFS-3G''' applies Windows restrictions to new file names through the [http://www.tuxera.com/community/ntfs-3g-manual/#4 windows_filenames] option (see [[fstab]]).<br />
<br />
== Installation ==<br />
<br />
The recommended way to setup a Linux/Windows dual booting system is to first install Windows, only using part of the disk for its partitions. When you have finished the Windows setup, boot into the Linux install environment where you can create additional partitions for Linux while leaving the existing Windows partitions untouched. The Windows installation will create the EFI System Partition which can be used by your Linux bootloader.<br />
<br />
=== BIOS systems ===<br />
<br />
==== Using a Linux boot loader ====<br />
<br />
You may use [[GRUB#Dual-booting|GRUB]] or [[Syslinux#Chainloading|Syslinux]].<br />
<br />
==== Using Windows boot loader ====<br />
<br />
With this setup the Windows bootloader loads GRUB which then boots Arch. <br />
<br />
===== Windows Vista/7/8/8.1 boot loader =====<br />
<br />
The following section contains excerpts from http://www.iceflatline.com/2009/09/how-to-dual-boot-windows-7-and-linux-using-bcdedit/.<br />
<br />
{{Accuracy|Using ex3 formatted /boot partition, windows bootloader works just fine}}<br />
<br />
In order to have the Windows boot loader see the Linux partition, one of the Linux partitions created needs to be FAT32 (in this case, {{ic|/dev/sda3}}). The remainder of the setup is similar to a typical installation. Some documents state that the partition being loaded by the Windows boot loader must be a primary partition but I have used this without problem on an extended partition.<br />
<br />
* When installing the GRUB boot loader, install it on your {{ic|/boot}} partition rather than the MBR. {{Note|For instance, my {{ic|/boot}} partition is {{ic|/dev/sda5}}. So I installed GRUB at {{ic|/dev/sda5}} instead of {{ic|/dev/sda}}. For help on doing this, see [[GRUB#Install to partition or partitionless disk]]}}<br />
<br />
* Under Linux make a copy of the boot info by typing the following at the command shell:<br />
<br />
my_windows_part=/dev/sda3<br />
my_boot_part=/dev/sda5<br />
mkdir /media/win<br />
mount $my_windows_part /media/win<br />
dd if=$my_boot_part of=/media/win/linux.bin bs=512 count=1<br />
<br />
* Boot to Windows and open up and you should be able to see the FAT32 partition. Copy the linux.bin file to {{ic|C:\}}. Now run '''cmd''' with administrator privileges (navigate to ''Start > All Programs > Accessories'', right-click on ''Command Prompt'' and select ''Run as administrator''):<br />
<br />
bcdedit /create /d “Linux” /application BOOTSECTOR<br />
<br />
* BCDEdit will return an alphanumeric identifier for this entry that I will refer to as {ID} in the remaining steps. You will need to replace {ID} by the actual returned identifier. An example of {ID} is {d7294d4e-9837-11de-99ac-f3f3a79e3e93}. <br />
<br />
bcdedit /set {ID} device partition=c:<br />
bcdedit /set {ID} path \linux.bin<br />
bcdedit /displayorder {ID} /addlast<br />
bcdedit /timeout 30<br />
<br />
Reboot and enjoy. In my case I'm using the Windows boot loader so that I can map my Dell Precision M4500's second power button to boot Linux instead of Windows.<br />
<br />
===== Windows 2000/XP boot loader =====<br />
<br />
For information on this method see http://www.geocities.com/epark/linux/grub-w2k-HOWTO.html. I do not believe there are any distinct advantages of this method over the Linux boot loader; you will still need a {{ic|/boot}} partition, and this one is arguably more difficult to set up.<br />
<br />
=== UEFI systems ===<br />
<br />
Both [[systemd-boot]] and [[rEFInd]] autodetect '''Windows Boot Manager''' {{ic|\EFI\Microsoft\Boot\bootmgfw.efi}} and show it in their boot menu, so there is no manual config required.<br />
<br />
For [[GRUB]] follow [[GRUB#Windows installed in UEFI-GPT Mode menu entry]].<br />
<br />
Syslinux (as of version 6.02 and 6.03-pre9) and ELILO do not support chainloading other EFI applications, so they cannot be used to chainload {{ic|\EFI\Microsoft\Boot\bootmgfw.efi}} .<br />
<br />
Computers that come with newer versions of Windows often have [[UEFI#Secure_Boot|secure boot]] enabled. You will need to take extra steps to either disable secure boot or to make your installation media compatible with secure boot.<br />
<br />
=== Troubleshooting ===<br />
<br />
==== Couldn't create a new partition or locate an existing one ====<br />
<br />
The usb-stick for installing Windows 8.1 seems to need a MBR partition table (not GPT), otherwise the installation gets confused and prints something like "Couldn't create a new partition or locate an existing one", although the partitions were created.<br />
<br />
== Time standard ==<br />
<br />
* Recommended: Set both Arch Linux and Windows to use UTC, following [[Time#UTC in Windows]]. Also, be sure to prevent Windows from synchronizing the time on-line, because the hardware clock will default back to ''localtime''.<br />
<br />
* Not recommended: Set Arch Linux to ''localtime'' and disable any time-related services, like [[NTPd]] . This will let Windows take care of hardware clock corrections and you will need to remember to boot into Windows at least two times a year (in Spring and Autumn) when [[Wikipedia:Daylight saving time|DST]] kicks in. So please do not ask on the forums why the clock is one hour behind or ahead if you usually go for days or weeks without booting into Windows.<br />
<br />
== See also ==<br />
<br />
* [https://bbs.archlinux.org/viewtopic.php?id=140049 Booting Windows from a desktop shortcut]</div>Betseghttps://wiki.archlinux.org/index.php?title=Install_Arch_Linux_from_existing_Linux&diff=396544Install Arch Linux from existing Linux2015-08-30T01:28:22Z<p>Betseg: /* Method A: Using the bootstrap image (recommended) */</p>
<hr />
<div>[[Category:Getting and installing Arch]]<br />
[[es:Install from existing Linux]]<br />
[[fr:Install chroot]]<br />
[[it:Install from existing Linux]]<br />
[[ja:既存の Linux からインストール]]<br />
[[pt:Install from existing Linux]]<br />
[[ru:Install from existing Linux]]<br />
[[uk:Install from existing Linux]]<br />
[[zh-cn:Install from existing Linux]]<br />
[[zh-tw:Install from existing Linux]]<br />
{{Related articles start}}<br />
{{Related|Install from SSH}}<br />
{{Related articles end}}<br />
<br />
This document describes the bootstrapping process required to install Arch Linux from a running Linux host system.<br />
After bootstrapping, the installation proceeds as described in the [[Installation guide]].<br />
<br />
Installing Arch Linux from a running Linux is useful for:<br />
<br />
* remotely installing Arch Linux, e.g. a (virtual) root server<br />
* replacing an existing Linux without a LiveCD (see [[#Replacing the existing system without a LiveCD]])<br />
* creating a new Linux distribution or LiveCD based on Arch Linux<br />
* creating an Arch Linux chroot environment, e.g. for a Docker base container<br />
* [[Diskless_network_boot_NFS_root|rootfs-over-NFS for diskless machines]]<br />
<br />
The goal of the bootstrapping procedure is to setup an environment from which the scripts from {{Pkg|arch-install-scripts}} (such as {{ic|pacstrap}} and {{ic|arch-chroot}}) can be run.<br />
<br />
If the host system runs Arch Linux, this can be achieved by simply installing {{Pkg|arch-install-scripts}}. If the host system runs another Linux distribution, you will first need to set up an Arch Linux-based chroot.<br />
<br />
{{Note|This guide requires that the existing host system be able to execute the new target Arch Linux architecture programs. In the case of an x86_64 host, it is possible to use i686-pacman to build a 32-bit chroot environment. See [[Arch64 Install bundled 32bit system]]. However it is not so easy to build a 64-bit environment when the host only supports running 32-bit programs.}}<br />
<br />
== From a host running Arch Linux ==<br />
<br />
Install {{Pkg|arch-install-scripts}} from the [[official repositories]].<br />
<br />
=== Installation and configuration ===<br />
<br />
Follow [[Installation guide#Mount the partitions]]. If you already use the {{ic|/mnt}} directory for something else, just create another directory such as {{ic|/mnt/install}}, and use that instead.<br />
<br />
Then follow [[Installation guide#Installation]]. You can skip [[Installation guide#Select the mirrors]], since the host should already have a correct mirrorlist.<br />
<br />
{{Merge|Moving_an_existing_install_into_(or_out_of)_a_virtual_machine#Moving_into_a_VM|Same approach.}}<br />
<br />
{{Note|If you only want to create an exact copy of an existing Arch installation, it is also possible to just copy the filesystem to the new partition. With this method, you will still need to<br />
<br />
* Create [[Beginners'_guide#Generate_an_fstab|{{ic|/etc/fstab}}]] and edit {{ic|/etc/hostname}}<br />
* Delete {{ic|/etc/machine-id}} so that a new, unique, one will be regenerated on boot<br />
* Make any other changes appropriate to the installation medium<br />
* Install the bootloader<br />
<br />
When copying the filesystem root, use something like {{ic|cp -ax}} or {{ic|rsync -axX}}. This avoids copying contents of mountpoints ({{ic|-x}}), and preserves the [[capabilities]] attributes of some system binaries ({{ic|rsync -X}}).<br />
}}<br />
<br />
== From a host running another Linux distribution ==<br />
<br />
There are multiple tools which automate a large part of the steps described in the following subsections. See their respective homepages for detailed instructions.<br />
<br />
* [https://github.com/tokland/arch-bootstrap arch-bootstrap] (Bash)<br />
* [https://github.com/hartwork/image-bootstrap image-bootstrap] (Python)<br />
* [https://github.com/drizzt/vps2arch vps2arch] (Bash)<br />
* [https://github.com/m4rienf/ArchVX archvx] (Bash)<br />
<br />
The manual way is presented in the following subsections. The idea is to run an Arch system inside the host system, with the actual installation being executed from the Arch system. The nested system is contained inside a chroot.<br />
<br />
=== Creating the chroot ===<br />
<br />
Two methods to setup and enter the chroot are presented below, from the easiest to the most complicated. Select only one of the two methods. Then, continue at [[#Using the chroot environment]].<br />
<br />
==== Method A: Using the bootstrap image (recommended) ====<br />
<br />
Download the bootstrap image from a [https://www.archlinux.org/download mirror]:<br />
$ curl -O https://mirrors.kernel.org/archlinux/iso/2015.06.01/archlinux-bootstrap-2015.08.01-x86_64.tar.gz<br />
<br />
Extract the tarball:<br />
# cd /tmp<br />
# tar xzf <path-to-bootstrap-image>/archlinux-bootstrap-2015.08.01-x86_64.tar.gz<br />
<br />
Select a repository server by editing {{ic|/tmp/root.x86_64/etc/pacman.d/mirrorlist}}.<br />
<br />
{{Note|If bootstrapping an i686 image from an x86_64 host system, also edit {{Ic|/tmp/root.i686/etc/pacman.conf}} and explicitly define {{Ic|1=Architecture = i686}} in order for pacman to pull the proper i686 packages.}}<br />
<br />
Enter the chroot<br />
<br />
* If bash 4 or later is installed, and unshare supports the --fork and --pid options:<br />
# /tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/<br />
* Otherwise, run the following commands:<br />
# cd /tmp/root.x86_64<br />
# cp /etc/resolv.conf etc<br />
# mount -t proc /proc proc<br />
# mount --rbind /sys sys<br />
# mount --rbind /dev dev<br />
# mount --rbind /run run # (assuming /run exists on the system)<br />
# chroot /tmp/root.x86_64 /bin/bash<br />
<br />
==== Method B: Using the LiveCD image ====<br />
<br />
It is possible to mount the root image of the latest Arch Linux installation media and then chroot into it. This method has the advantage of providing a working Arch Linux installation right within the host system without the need to prepare it by installing specific packages.<br />
<br />
{{Note|Before proceeding, make sure the latest version of [http://squashfs.sourceforge.net/ squashfs] is installed on the host system. Otherwise, errors like the following are to be expected: {{ic|FATAL ERROR aborting: uncompress_inode_table: failed to read block}}.}}<br />
<br />
* The root image can be found on one of the [https://www.archlinux.org/download mirrors] under either arch/x86_64/ or arch/i686/, depending on the desired architecture. The squashfs format is not editable, so we unsquash the root image and mount it.<br />
<br />
*To unsquash the root image, run<br />
{{bc|# unsquashfs -d /squashfs-root root-image.fs.sfs}}<br />
<br />
* Now loop mount the root image<br />
{{bc|<br />
# mkdir /arch<br />
# mount -o loop /squashfs-root/root-image.fs /arch<br />
}}<br />
<br />
* Before [[Change root|chrooting]] to it, we need to set up some mount points and copy the resolv.conf for networking.<br />
{{bc|<br />
# mount -t proc none /arch/proc<br />
# mount -t sysfs none /arch/sys<br />
# mount -o bind /dev /arch/dev<br />
# mount -o bind /dev/pts /arch/dev/pts # important for pacman (for signature check)<br />
# cp -L /etc/resolv.conf /arch/etc #this is needed to use networking within the chroot<br />
}}<br />
<br />
* Now, everything is prepared to chroot into the newly installed Arch environment<br />
{{bc|# chroot /arch bash}}<br />
<br />
=== Using the chroot environment ===<br />
<br />
The bootstrap environment is really barebones (no {{ic|nano}}, no {{ic|ping}}, no {{ic|cryptsetup}}, no {{ic|lvm}}). Therefore, we need to set up [[pacman]] in order to download the rest of the {{ic|base}} and, if needed, {{ic|base-devel}}.<br />
<br />
==== Initializing pacman keyring ====<br />
<br />
Before starting the installation, pacman keys need to be setup. Before running the following two commands, read [[pacman-key#Initializing the keyring]] to understand the entropy requirements:<br />
{{bc|<br />
# pacman-key --init<br />
# pacman-key --populate archlinux<br />
}}<br />
<br />
{{Tip|Installing and running {{Pkg|haveged}} must be done on the host system, since it is not possible to install packages before initializing pacman keyring and because ''systemd'' will detect it is running in a chroot and [https://superuser.com/questions/688733/start-a-systemd-service-inside-chroot ignore activation request].<br />
<br />
If you go with doing {{ic|ls -Ra /}} in another console (TTY, terminal, SSH session...), do not be afraid of running it in a loop a few times: five or six runs from the host proved sufficient to generate enough entropy on a remote headless server.}}<br />
<br />
==== Selecting a mirror and downloading basic tools ====<br />
<br />
See [[Beginners'_guide#Select_a_mirror|select a mirror]] for information on generating a suitable mirrorlist.<br />
<br />
Then, [[Mirrors#Force_pacman_to_refresh_the_package_lists|update the package lists]] and [[install]] what you need: {{Grp|base}}, {{Grp|base-devel}}, {{Pkg|parted}} etc.<br />
<br />
=== Installation tips ===<br />
<br />
You can now proceed to [[Beginners%27_guide#Prepare_the_storage_devices|preparing the storage devices]] and follow the rest of the [[Installation guide#Installation|installation procedure]].<br />
<br />
Some host systems or configurations may require certain extra steps. See the sections below for tips.<br />
<br />
===== Debian-based host =====<br />
<br />
====== /dev/shm ======<br />
<br />
On some Debian-based host systems, {{ic|pacstrap}} may produce the following error:<br />
<br />
{{hc|# pacstrap /mnt base|<br />
==> Creating install root at /mnt<br />
mount: mount point /mnt/dev/shm is a symbolic link to nowhere<br />
==> ERROR: failed to setup API filesystems in new root<br />
}}<br />
<br />
This is because in some versions of Debian, {{ic|/dev/shm}} points to {{ic|/run/shm}} while in the Arch-based chroot, {{ic|/run/shm}} does not exist and the link is broken. To correct this error, create a directory {{ic|/run/shm}}:<br />
# mkdir /run/shm<br />
<br />
====== /dev/pts ======<br />
<br />
While installing {{ic|archlinux-2015.07.01-x86_64}} from a Debian 7 host, the following error prevented both [https://projects.archlinux.org/arch-install-scripts.git/tree/pacstrap.in pacstrap] and [[Change_root#Using_arch-chroot|arch-chroot]] from working:<br />
<br />
{{hc|# pacstrap -i /mnt|<br />
mount: mount point /mnt/dev/pts does not exist<br />
==> ERROR: failed to setup chroot /mnt<br />
}}<br />
<br />
Apparently, this is because these two scripts use a common function. {{ic|chroot_setup()}}[https://projects.archlinux.org/arch-install-scripts.git/tree/common#n76] relies on newer features of {{Pkg|util-linux}}, which are incompatible with Debian 7 userland (see {{Bug|45737}}).<br />
<br />
The solution for ''pacstrap'' is to manually execute its [https://projects.archlinux.org/arch-install-scripts.git/tree/pacstrap.in#n77 various tasks], but use the [[Change_root#Using_chroot|regular procedure]] to mount the kernel filesystems on the target directory ({{ic|"$newroot"}}):<br />
<br />
{{bc|1=<br />
# newroot=/mnt<br />
# mkdir -m 0755 -p "$newroot"/var/{cache/pacman/pkg,lib/pacman,log} "$newroot"/{dev,run,etc}<br />
# mkdir -m 1777 -p "$newroot"/tmp<br />
# mkdir -m 0555 -p "$newroot"/{sys,proc}<br />
# mount -t proc /proc "$newroot/proc"<br />
# mount --rbind /sys "$newroot/sys"<br />
# mount --rbind /run "$newroot/run"<br />
# mount --rbind /dev "$newroot/dev"<br />
# pacman -r "$newroot" --cachedir="$newroot/var/cache/pacman/pkg" -Sy base base-devel ... ## add the packages you want<br />
# cp -a /etc/pacman.d/gnupg "$newroot/etc/pacman.d/" ## copy keyring<br />
# cp -a /etc/pacman.d/mirrorlist "$newroot/etc/pacman.d/" ## copy mirrorlist<br />
}}<br />
<br />
Instead of using {{ic|arch-chroot}} for [[Beginners%27_guide#Chroot_and_configure_the_base_system|configuring the base system]], simply use {{ic|chroot "$newroot"}}.<br />
<br />
====== lvmetad ======<br />
<br />
Trying to create [[LVM]] [[LVM#Logical_volumes|logical volumes]] from an {{ic|archlinux-bootstrap-2015.07.01-x86_64}} environment on a Debian 7 host resulted in the following error:<br />
<br />
{{hc|# lvcreate -L 20G lvm -n root|<br />
/run/lvm/lvmetad.socket: connect failed: No such file or directory<br />
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.<br />
/dev/lvm/root: not found: device not cleared<br />
Aborting. Failed to wipe start of new LV.}}<br />
<br />
(Physical volume and volume group creation worked despite {{ic|/run/lvm/lvmetad.socket: connect failed: No such file or directory}} being displayed.)<br />
<br />
This could be easily worked around by creating the logical volumes outside the chroot (from the Debian host). They are then available once chrooted again.<br />
<br />
{{Accuracy|This problem did not arise when installing from a Debian 7 host without lvmetad enabled. The recommended messaround with {{ic|/etc/lvm/lvm.conf}} looks rather error prone (2015-07-26).}}<br />
{{Style|Language and formatting are lacking, links to relevant articles in the wiki as well.}}<br />
<br />
Also, if the system you are using has lvm, you might have the following output:<br />
<br />
{{hc|1=# grub-install --target=i386-pc --recheck /dev/mapper/main-archroot|2=<br />
Installing for i386-pc platform.<br />
/run/lvm/lvmetad.socket: connect failed: No such file or directory<br />
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.<br />
/run/lvm/lvmetad.socket: connect failed: No such file or directory<br />
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.<br />
/run/lvm/lvmetad.socket: connect failed: No such file or directory<br />
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.<br />
/run/lvm/lvmetad.socket: connect failed: No such file or directory<br />
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.<br />
/run/lvm/lvmetad.socket: connect failed: No such file or directory<br />
WARNING: Failed to connect to lvmetad. Falling back to internal scanning.<br />
}}<br />
<br />
This is because debian does not use lvmetad by default. You need to edit {{ic|/etc/lvm/lvm.conf}} and set {{ic|use_lvmetad}} to {{ic|0}}:<br />
<br />
use_lvmetad = 0<br />
<br />
This will trigger later an error on boot in the initrd stage. Therefore, you have to change it back after the grub generation. In a software RAID + LVM, steps would be the following:<br />
<br />
* After installing all the system, when you have to do all the initramfs (mkinitcpio) and grub thing.<br />
* Change /etc/mdadm.conf to reflect your RAID config (if any)<br />
* Change HOOKS and MODULES according to lvm and raid requirements: {{ic|1=MODULES="dm_mod" HOOKS="base udev '''mdadm_udev''' ... block '''lvm2''' filesystems ..."}}<br />
* Generate initrd images with mkinitcpio<br />
* Change /etc/lvm/lvm.conf to put use_lvmetad = 0<br />
* Generate grub config (grub-mkconfig)<br />
* Change /etc/lvm/lvm.conf to put use_lvmetad = 1<br />
<br />
===== Fedora-based host =====<br />
<br />
On Fedora based hosts and live USBs you may encounter problems when using {{ic|genfstab}} to generate your [[fstab]]. Remove duplicate entries and the "seclabel" option where it appears, as this is Fedora-specific and will keep your system from booting normally.<br />
<br />
== Replacing the existing system without a LiveCD ==<br />
<br />
Find ~700MB of free space somewhere on the disk, e.g. by partitioning a swap partition. If less than 700MB are available, examine the packages in the group base, and select only those required to get a system with internet connection up and running in the temporary partition. This will mean explicitly specifying individual packages to pacstrap, as well as passing it the -c option, to get packages downloaded to the host system to avoid filling up valuable space.<br />
<br />
Once the new Arch Linux system is installed, reboot into the newly created system, and [[Full system backup with rsync#With_a_single_command|rsync the entire system]] to the primary partition.<br />
Fix the bootloader configuration before rebooting.</div>Betseghttps://wiki.archlinux.org/index.php?title=Kernel_parameters&diff=391524Kernel parameters2015-08-17T13:41:22Z<p>Betseg: /* Gummiboot */</p>
<hr />
<div>[[Category:Kernel]]<br />
[[es:Kernel parameters]]<br />
[[ja:カーネルパラメータ]]<br />
[[ru:Kernel parameters]]<br />
[[zh-CN:Kernel parameters]]<br />
There are three ways to pass options to the kernel and thus control its behaviour:<br />
<br />
# When building the kernel. See [[Kernel Compilation]] for details.<br />
# When starting the kernel (usually, when invoked from a boot loader).<br />
# At runtime (through the files in {{ic|/proc}} and {{ic|/sys}}). See [[sysctl]] for details.<br />
<br />
This page now explains in more detail the second method and shows a list of most used kernel parameters in Arch Linux.<br />
<br />
== Configuration ==<br />
<br />
{{Note|You can check the parameters your system was booted up with by running {{ic|$ cat /proc/cmdline}} and see if it includes your changes.}}<br />
<br />
Kernel parameters can be set either temporarily by editing the boot menu when it shows up, or by modifying the boot loader's configuration file.<br />
<br />
Here we are adding the parameters {{ic|quiet}} and {{ic|splash}} to [[Syslinux]], [[GRUB]], [[GRUB Legacy]], [[LILO]], [[Gummiboot]] and [[rEFInd]].<br />
<br />
=== Syslinux ===<br />
<br />
* Press {{ic|Tab}} when the menu shows up and add them at the end of the string:<br />
<br />
: {{bc|1=linux /boot/vmlinuz-linux root=/dev/sda3 initrd=/boot/initramfs-linux.img ''quiet splash''}}<br />
<br />
: Press {{ic|Enter}} to boot with these parameters.<br />
<br />
* To make the change persistent after reboot, edit {{ic|/boot/syslinux/syslinux.cfg}} and add them to the {{ic|APPEND}} line:<br />
<br />
: {{bc|1=APPEND root=/dev/sda3 ''quiet splash''}}<br />
<br />
For more information on configuring Syslinux, see the [[Syslinux]] article.<br />
<br />
=== GRUB ===<br />
<br />
* Press {{ic|e}} when the menu shows up and add them on the {{ic|linux}} line:<br />
<br />
: {{bc|1=linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ''quiet splash''}}<br />
<br />
: Press {{ic|b}} to boot with these parameters.<br />
<br />
* To make the change persistent after reboot, while you ''could'' manually edit {{ic|/boot/grub/grub.cfg}} with the exact line from above, for beginners it's recommended to:<br />
<br />
:Edit {{ic|/etc/default/grub}} and append your kernel options to the {{ic|GRUB_CMDLINE_LINUX_DEFAULT}} line:<br />
<br />
:: {{bc|1=GRUB_CMDLINE_LINUX_DEFAULT="''quiet splash''"}}<br />
<br />
:And then automatically re-generate the {{ic|grub.cfg}} file with:<br />
<br />
:: {{bc|# grub-mkconfig -o /boot/grub/grub.cfg}}<br />
<br />
For more information on configuring GRUB, see the [[GRUB]] article.<br />
<br />
=== GRUB Legacy ===<br />
<br />
* Press {{ic|e}} when the menu shows up and add them on the {{ic|kernel}} line:<br />
<br />
: {{bc|1=kernel /boot/vmlinuz-linux root=/dev/sda3 ''quiet splash''}}<br />
<br />
: Press {{ic|b}} to boot with these parameters.<br />
<br />
* To make the change persistent after reboot, edit {{ic|/boot/grub/menu.lst}} and add them to the {{ic|kernel}} line, exactly like above.<br />
<br />
For more information on configuring GRUB Legacy, see the [[GRUB Legacy]] article.<br />
<br />
=== LILO ===<br />
<br />
* Add them to {{ic|/etc/lilo.conf}}:<br />
<br />
: {{bc|<nowiki><br />
image=/boot/vmlinuz-linux<br />
...<br />
</nowiki>''quiet splash''}}<br />
<br />
For more information on configuring LILO, see the [[LILO]] article.<br />
<br />
=== systemd-boot ===<br />
<br />
* Press {{ic|e}} when the menu appears and add the parameters to the end of the string:<br />
<br />
: {{bc|1=initrd=\initramfs-linux.img root=/dev/sda2 ''quiet splash''}}<br />
<br />
: Press {{ic|Enter}} to boot with these parameters.<br />
<br />
{{Note|If you have not set a value for menu timeout, you will need to hold {{ic|Space}} while booting for the systemd-boot menu to appear.}}<br />
<br />
* To make the change persistent after reboot, edit {{ic|/boot/loader/entries/arch.conf}} (assuming you set up your [[Unified Extensible Firmware Interface#EFI System Partition|EFI System Partition]] and configuration files according to the instructions in the [[Beginners' guide#UEFI_motherboards|Beginners' Guide]]) and add them to the {{ic|options}} line:<br />
<br />
: {{bc|1=options root=/dev/sda2 ''quiet splash''}}<br />
<br />
For more information on configuring systemd-boot, see the [[systemd-boot]] article.<br />
<br />
=== rEFInd ===<br />
* To make the change persistent after reboot, edit {{ic|/boot/EFI/arch/refind_linux.conf}} (ie. refind_linux.conf in the folder your kernel is located in) and append them to all/required lines, for example:<br />
: {{bc|1="Boot to X" "root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ''quiet splash''}}<br />
<br />
* If you have disabled auto-detection of OS's in rEFInd and are defining OS stanzas instead in {{ic|/boot/EFI/refind/refind.conf}} to load your OS's, you can edit it like:<br />
: {{bc|<nowiki><br />
menuentry "Arch" {<br />
loader /EFI/arch/vmlinuz-arch.efi<br />
options "root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff quiet splash"<br />
</nowiki>}}<br />
<br />
For more information on configuring kernel parameters in rEFInd, see [http://www.rodsbooks.com/refind/linux.html Configuring the rEFInd Bootmanager]<br />
<br />
=== EFISTUB/efibootmgr ===<br />
<br />
See [[EFISTUB#Using UEFI directly (efibootmgr)]].<br />
<br />
== Parameter list ==<br />
<br />
Parameters always come in {{ic|parameter}} or {{ic|1=parameter=value}}. All of these parameters are case-sensitive.<br />
<br />
{{Note|Not all of the listed options are always available. Most are associated with subsystems and work only if the kernel is configured with those subsystems built in. They also depend on the presence of the hardware they are associated with.}}<br />
<br />
{| class="wikitable"<br />
!parameter!!Description<br />
|-<br />
| root= || Root filesystem.<br />
|-<br />
| ro || Mount root device read-only on boot (default<sup>1</sup>).<br />
|-<br />
| rw || Mount root device read-write on boot.<br />
|-<br />
| initrd=|| Specify the location of the initial ramdisk.<br />
|-<br />
| init= || Run specified binary instead of {{ic|/sbin/init}} (symlinked to [[systemd]] in Arch) as init process.<br />
|-<br />
| init=/bin/sh || Boot to shell.<br />
|-<br />
| systemd.unit= ||<br />
|-<br />
| systemd.unit=multi-user || Boot to a specified runlevel.<br />
|-<br />
| systemd.unit=rescue || Boot to single-user mode (root).<br />
|-<br />
| nomodeset || Disable [[Kernel mode setting]].<br />
|-<br />
| zswap.enabled || Enable [[Zswap]].<br />
|-<br />
| video=<videosetting> || Override framebuffer video defaults. <br />
|}<br />
<br />
<sup>1</sup> [[mkinitcpio]] uses {{ic|ro}} as default value when neither {{ic|rw}} or {{ic|ro}} is set by the [[boot loader]]. Boot loaders may set the value to use, for example GRUB uses {{ic|rw}} by default (see {{Bug|36275}} as a reference).<br />
<br />
For a complete list of all options, please see the [https://www.kernel.org/doc/Documentation/kernel-parameters.txt kernel documentation].<br />
<br />
== See also ==<br />
<br />
* [https://www.kernel.org/doc/Documentation/kernel-parameters.txt Linux "Kernel Parameters" documentation]<br />
* [[Power saving#Kernel parameters]]<br />
* [http://files.kroah.com/lkn/lkn_pdf/ch09.pdf List of kernel parameters with further explanation and grouped by similar options]</div>Betseghttps://wiki.archlinux.org/index.php?title=Talk:Desktop_environment&diff=390916Talk:Desktop environment2015-08-12T08:03:46Z<p>Betseg: </p>
<hr />
<div>*Unity isn't in AUR4. --[[User:Betseg|Betseg]] ([[User talk:Betseg|talk]]) 08:03, 12 August 2015 (UTC)</div>Betseghttps://wiki.archlinux.org/index.php?title=Talk:Persistent_block_device_naming&diff=389023Talk:Persistent block device naming2015-07-29T15:17:05Z<p>Betseg: forgot to sign</p>
<hr />
<div>== systemd-boot entry with label ==<br />
<br />
Should we add a systemd-boot entry using LABEL to the bottom section? --[[User:Betseg|Betseg]] ([[User talk:Betseg|talk]]) 15:17, 29 July 2015 (UTC)</div>Betseghttps://wiki.archlinux.org/index.php?title=Talk:Persistent_block_device_naming&diff=389018Talk:Persistent block device naming2015-07-29T14:12:17Z<p>Betseg: /* systemd-boot entry with label */ new section</p>
<hr />
<div>== systemd-boot entry with label ==<br />
<br />
Should we add a systemd-boot entry using LABEL to the bottom section?</div>Betseghttps://wiki.archlinux.org/index.php?title=Laptop/HP&diff=386216Laptop/HP2015-07-22T00:53:57Z<p>Betseg: </p>
<hr />
<div>[[Category:HP]]<br />
{{Laptops navigation}}<br />
<br />
== Model List ==<br />
<br />
{{HCL/Laptops table header}}<br />
|HP EliteBook 2570p || 2011.12 || Intel HD 4000 driver: <em>i915</em> || Intel HDA driver: <em>snd_hda_intel</em> || Intel 82579LM driver: <em>e1000e</em> || Intel 6250 driver: <em>iwlwifi</em> || Yes || Suspend to RAM: Yes<br>Disk: Yes<br/>Battery: Yes<br/>Dimming of display: Yes<br/>Frequency scaling of CPU: Yes || not tested || smart card reader || has xHCI IRQ issues<br />
|-<br />
|HP Compaq Mini 730 || 2009.02 || Intel GMA 950 driver: <em>intel</em> || Intel HDA driver: <em>snd_hda_intel</em> || Broadcom driver: <em>tg3</em> || Broadcom 4312 driver: <em>wl</em> || Yes || Suspend to RAM: Yes<br>Disk: Yes<br/>Battery: Yes<br/>Dimming of display: Yes<br/>Frequency scaling of CPU: Yes || -- || -- || --<br />
|-<br />
|HP Compaq 6715S || 2010.05 || ATI Radeon X1250 driver: <em>catalyst</em> || AD1981 driver: <em>snd_hda_intel</em> || Broadcom driver: <em>tg3</em> || Broadcom 4312 driver: <em>ndiswrapper</em> <br /> (Problematic with 64-bit CPU) || Yes || Suspend to RAM: Yes<br>Disk: Yes<br/>Battery: Yes<br/>Dimming of display: Yes<br/>Frequency scaling of CPU: Yes || not tested || Hot keys: Yes <br /> LightScribe: untested || --<br />
|-<br />
|HP Compaq 6720S || 2009.2 || Intel X3100 driver: <em>xf86-video-intel</em> || Intel HDA driver: <em>snd_hda_intel</em> || Intel 10/100 driver: <em>e1000e</em> || Intel 3945 driver: <em>iwl3945</em> <br /> Broadcom 4312 driver: <em>wl</em> {{AUR|broadcom-wl}} || Yes, <em>bluez-utils</em> || ACPI: Yes<br/>Suspend to RAM: Yes<br>Disk: Yes<br/>Battery: Yes<br/>Dimming of display: Yes<br/>Frequency scaling of CPU: Yes, cpudyn || not tested || Hot keys: Configurable<br /> LightScribe: Yes {{AUR|lightscribe}} || --<br />
|-<br />
|Pavilion DV2172EA || Duke 2007.05 || Nvidia Go7200 driver <em>nvidia</em> || Intel 82801G with internal microphones driver: <em>snd_hda_intel</em> || Yes<br/>driver: <em>e100</em> || Intel 3945 driver: <em>ipw3945</em> || Yes || Suspend to RAM: Yes<br>Disk: Yes<br/>Battery: Yes<br/>Dimming of display: Yes<br/>Frequency scaling of CPU: Yes || Yes || Hot keys: Yes<br/>Remote: Yes<br/>Webcam: Yes (<em>uvcvideo</em>)<br/>IRDA: Yes<br/>LightScribe: untested || --<br />
|-<br />
|Pavilion DM1-1150SL || 2009.02 || Intel X4500MHD driver: <em>xf86-video-intel</em> || Intel 82801G with internal microphones driver: <em>snd_hda_intel</em> || Yes (RTL8101E) driver: <em>r8169</em> || Atheros AR9285 driver: <em>ath9k</em> || Yes || Suspend to RAM: Yes<br>Disk: Yes<br/>Battery: Yes<br/>Dimming of display: Yes<br/>Frequency scaling of CPU: N/A || Yes || Hot keys: Yes<br/>Webcam: Yes (<em>uvcvideo</em>) || --<br />
|-<br />
|HP Pavilion dv5055ea || 2009.06 || ATI Radeon XPRESS 200M || ATI IXP SB400 AC'97 Audio Controller (rev 02) || Realtek RTL-8139/8139C/8139C+ (rev 10) || Broadcom BCM4318 (AirForce One 54g) 802.11g Wireless LAN Controller (rev 02) || N/A || Suspend to RAM: not tested<br />Suspend to Disk: not tested<br />Battery: Yes<br />Dimming of display: Yes<br />Frequency scaling of CPU: Odd on battery, Yes on A/C || not tested || Hot keys: Yes, for sound and WLAN. No, for DVD and Multimedia button || --<br />
|-<br />
|HP Pavilion dv6605ed || 2007.08-2 || Intel X3100 ({{Pkg|xf86-video-intel}}) || Intel 82801H (''snd-hda-intel'') || RTL8101e (''r8139'') || Broadcom BCM94311MCG driver ''b43'': No (may need different firmware)<br />''ndiswrapper'': Yes || N/A || ACPI: Yes<br />Suspend to RAM: Yes<br />Suspend to Disk: No<br />Battery: Yes<br />Display dimming: Yes<br />CPU frequency scaling: Yes (''p4-clockmod'') || not tested || Hot keys: Yes ''(HP keymap)''<br />Remote: Yes, ''except for DVD, Quickplay, and Windows MCE buttons''<br />LightScribe: not tested || --<br />
|-<br />
|HP Pavilion dv9530em || 2009.06 || nVidia GeForce 8400M GS || Realtek ALC268 || RTL8168b/8111b || Intel 3945 ''(iwl3945)'' || yes || Suspend to RAM: Yes<br />Suspend to Disk: Yes<br />Battery: Yes<br />Dimming of display: Yes<br />Frequency scaling of CPU: Yes || not tested || Hot keys: Yes<br />LightScribe: not tested || --<br />
|-<br />
|HP Pavilion TX1220US (GA647UA) || Overlord || nVidia GeForce Go 6150 (works with ''nvidia'') || nVidia MCP51 HD Audio (works with ''snd-hda-intel'') || nVidia MCP51 Ethernet Controller (works with ''forcedeth'') || Broadcom 4321 card (works with ''ndiswrapper'' and Broadcom-released Linux driver: {{AUR|broadcom-wl}}) || not tested || not tested || not tested || Touch screen: (appears to work; have not calibrated)<br />Remote: not working<br />Hot keys: not tested<br />LightScribe: not tested || People with this same laptop have gotten the hot keys and touch screen to work on other distributions.<br />
|-<br />
|HP Elitebook 8560w || 2012 || NVIDIA quadro 1000M (''nvidia/nouveau driver'') || Intel sound card: ''snd-hda-intel'' || ''e1000e'' || Intel wireless: ''iwlwifi'' || -- || ACPI: Yes<br />Suspend to RAM: No<br/> Suspend to Disk: Yes <br/>Battery: Yes<br />Display dimming: Yes (using ''nvidiabl for nvidia driver'')<br /> CPU frequency scaling: Yes (''acpi-cpufreq'') || not tested || Hot keys: Yes <br /> DVD/CD: Not tested<br /> SD slot: Not tested<br />Touchkeys: N/A<br /> FireWire: Not tested|| If using nvidia driver, nvidiabl should be used to allow backlight adjustments.<br />
|-<br />
|HP Compaq 8510w* || 2008 || NVIDIA FX570M (''nvidia driver'') || Intel sound card: ''snd-hda-intel)'' || ''e1000'' || Intel wireless: ''iwl4965'' || -- || ACPI: Yes<br />Suspend to RAM: Yes<br/> Suspend to Disk: Yes <br/>Battery: Yes<br />Display dimming: Yes (using ''nvclock'')<br /> CPU frequency scaling: Yes (''acpi-cpufreq'') || not tested || Hot keys: Yes <br /> DVD/CD: Yes<br /> SD slot: Yes<br />Touchkeys: Yes<br /> FireWire: untested|| --<br />
|-<br />
|[[HP tx2z]] || 2009.08 || Radeon HD 3200 driver: ''radeon'' || Intel HDA driver: ''snd-hda-intel'' || RTL8111/8168B driver: ''r8169'' || Broadcom 4322 driver: {{AUR|broadcom-wl}} || not tested || not tested || not tested || Hot keys: yes<br/>LightScribe: not tested<br/>webcam: yes<br/>touchscreen: works<br/>stylus: still working on<br/>Media reader: works || some known successes with touchscreen and stylus in Ubuntu<br />
|-<br />
|[[HP Pavilion DV3-2155MX]] || 2010.05 || -- || -- || -- || -- || -- || -- || -- || -- || --<br />
|-<br />
|HP Pavilion dv6-2115sa || 2010.05 || Radeon HD 4200 series<br/>Works well with open-source Radeon driver || Intel HDA driver: ''snd-hda-intel'' || unknown || Broadcom wireless works out-of-the-box || not tested || ACPI: Yes<br/>Suspend to RAM: No<br/>Suspend to Disk: Yes, with TuxOnIce<br/>Battery: Yes<br/>Remote: Some buttons do not work<br/>Display dimming: Yes<br/> CPU frequency scaling: Yes, with K8 Driver || not tested || Hot keys: yes<br/>LightScribe: not tested<br/>Webcam: yes || To prevent output to both headphones and speakers simultaneously, add {{ic|1=options snd-hda-intel model=hp-dv5}} to {{ic|/etc/modprobe.d/modprobe.conf}}<br />
|-<br />
|HP 625 || 2010.05 || Radeon HD 4200 series drivers: ''radeon'' or ''catalyst''|| ATI RS880 Audio Device driver: ''snd-hda-intel'' || RTL8101E/8102E driver: ''r8169'' || Broadcom BCM4313 driver: ''brcmsmac'' (in kernel) || not tested || ACPI: Yes<br/>Suspend to RAM: Yes<br/>Suspend to Disk: Yes<br/>Battery: Yes<br/>Display dimming: Yes<br/>CPU frequency scaling: Yes || not tested || Hot keys: yes <br/>LightScribe: untested <br/>Webcam: yes <br/>Card reader: yes || --<br />
|-<br />
|HP Pavilion g4 || 2013 || AMD Radeon HD 7660G+HD 7670M Dual Graphics (A10 APU). APU graphics work with ''radeon'' driver, but ''catalyst'' is required for switchable graphics. || Intel sound card: ''snd-hda-intel'' || RTL8105. Driver: ''r8169'' || Ralink RT3290. Works (poorly) with ''rt2800pci'', for best results use ''rt3290sta'', from [https://aur.archlinux.org/packages/rt3290sta-dkms/ rt3290sta-dkms in the AUR] || Not working as of Oct 2014 || ACPI: Yes<br/>Suspend to RAM: Yes<br/>Suspend to Disk: Yes<br/>Battery: Yes<br/>Display dimming: Yes<br/>CPU frequency scaling: Yes || not tested || Hot keys: yes <br/>LightScribe: untested <br/>Webcam: yes <br/>Card reader: yes || --<br />
|-<br />
| [[HP ENVY TouchSmart 17-j113tx]] || 2014.11 || Intel HD 4600 (''i915'') + NVIDIA GeForce GT 740M (''nouveau'' or proprietary ''NVIDIA'') as an Optimus setup. || Intel HD Audio (''snd_hda_intel'') || Realtek, exact model is unclear (''r8169'') || Intel 7260 (''iwlwifi'') || Intel Bluetooth, works || ACPI: Yes, Suspend to RAM: Yes, Suspend to Disk: Yes, Battery: Yes, Display Dimming: Yes, CPU Frequency Scaling: Yes || Not included. || Optical Disk Drive, TouchScreen, Webcam, SD Card Reader || See article.<br />
|-<br />
| HP Pavilion Ultrabook 15-b030st || 2015.05 || Intel Core i5-3317U + NVIDIA GeForce GT 630M (''nouveau'' or proprietary ''NVIDIA'') as an Optimus setup. || Intel HD Audio (''snd_hda_intel'') || ??? || Ralink RT3290 || Not working || -- || Works || -- || --<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== HP Compaq 8510w ===<br />
<br />
Follow the steps outlined in [[Suspend and hibernate#Hibernation]]. The suspend to disk process works correctly but the laptop does not power itself off. To fix this create the following file:<br />
<br />
{{hc|/etc/systemd/system/sleep.conf|2=<br />
[Sleep]<br />
HibernateMode=shutdown<br />
}}<br />
<br />
This file tells [[Systemd]] to write {{ic|shutdown}} instead of {{ic|platform}} to {{ic|/sys/power/disk}} before writing {{ic|disk}} to {{ic|/sys/power/state}}.</div>Betseghttps://wiki.archlinux.org/index.php?title=Laptop/HP&diff=377586Laptop/HP2015-06-06T09:13:15Z<p>Betseg: </p>
<hr />
<div>[[Category:HP]]<br />
{{Laptops navigation}}<br />
<br />
== Model List ==<br />
<br />
{{HCL/Laptops table header}}<br />
|HP EliteBook 2570p || 2011.12 || Intel HD 4000 driver: <em>i915</em> || Intel HDA driver: <em>snd_hda_intel</em> || Intel 82579LM driver: <em>e1000e</em> || Intel 6250 driver: <em>iwlwifi</em> || Yes || Suspend to RAM: Yes<br>Disk: Yes<br/>Battery: Yes<br/>Dimming of display: Yes<br/>Frequency scaling of CPU: Yes || not tested || smart card reader || has xHCI IRQ issues<br />
|-<br />
|HP Compaq Mini 730 || 2009.02 || Intel GMA 950 driver: <em>intel</em> || Intel HDA driver: <em>snd_hda_intel</em> || Broadcom driver: <em>tg3</em> || Broadcom 4312 driver: <em>wl</em> || Yes || Suspend to RAM: Yes<br>Disk: Yes<br/>Battery: Yes<br/>Dimming of display: Yes<br/>Frequency scaling of CPU: Yes || -- || -- || --<br />
|-<br />
|HP Compaq 6715S || 2010.05 || ATI Radeon X1250 driver: <em>catalyst</em> || AD1981 driver: <em>snd_hda_intel</em> || Broadcom driver: <em>tg3</em> || Broadcom 4312 driver: <em>ndiswrapper</em> <br /> (Problematic with 64-bit CPU) || Yes || Suspend to RAM: Yes<br>Disk: Yes<br/>Battery: Yes<br/>Dimming of display: Yes<br/>Frequency scaling of CPU: Yes || not tested || Hot keys: Yes <br /> LightScribe: untested || --<br />
|-<br />
|HP Compaq 6720S || 2009.2 || Intel X3100 driver: <em>xf86-video-intel</em> || Intel HDA driver: <em>snd_hda_intel</em> || Intel 10/100 driver: <em>e1000e</em> || Intel 3945 driver: <em>iwl3945</em> <br /> Broadcom 4312 driver: <em>wl</em> {{AUR|broadcom-wl}} || Yes, <em>bluez-utils</em> || ACPI: Yes<br/>Suspend to RAM: Yes<br>Disk: Yes<br/>Battery: Yes<br/>Dimming of display: Yes<br/>Frequency scaling of CPU: Yes, cpudyn || not tested || Hot keys: Configurable<br /> LightScribe: Yes {{AUR|lightscribe}} || --<br />
|-<br />
|Pavilion DV2172EA || Duke 2007.05 || Nvidia Go7200 driver <em>nvidia</em> || Intel 82801G with internal microphones driver: <em>snd_hda_intel</em> || Yes<br/>driver: <em>e100</em> || Intel 3945 driver: <em>ipw3945</em> || Yes || Suspend to RAM: Yes<br>Disk: Yes<br/>Battery: Yes<br/>Dimming of display: Yes<br/>Frequency scaling of CPU: Yes || Yes || Hot keys: Yes<br/>Remote: Yes<br/>Webcam: Yes (<em>uvcvideo</em>)<br/>IRDA: Yes<br/>LightScribe: untested || --<br />
|-<br />
|Pavilion DM1-1150SL || 2009.02 || Intel X4500MHD driver: <em>xf86-video-intel</em> || Intel 82801G with internal microphones driver: <em>snd_hda_intel</em> || Yes (RTL8101E) driver: <em>r8169</em> || Atheros AR9285 driver: <em>ath9k</em> || Yes || Suspend to RAM: Yes<br>Disk: Yes<br/>Battery: Yes<br/>Dimming of display: Yes<br/>Frequency scaling of CPU: N/A || Yes || Hot keys: Yes<br/>Webcam: Yes (<em>uvcvideo</em>) || --<br />
|-<br />
|HP Pavilion dv5055ea || 2009.06 || ATI Radeon XPRESS 200M || ATI IXP SB400 AC'97 Audio Controller (rev 02) || Realtek RTL-8139/8139C/8139C+ (rev 10) || Broadcom BCM4318 (AirForce One 54g) 802.11g Wireless LAN Controller (rev 02) || N/A || Suspend to RAM: not tested<br />Suspend to Disk: not tested<br />Battery: Yes<br />Dimming of display: Yes<br />Frequency scaling of CPU: Odd on battery, Yes on A/C || not tested || Hot keys: Yes, for sound and WLAN. No, for DVD and Multimedia button || --<br />
|-<br />
|HP Pavilion dv6605ed || 2007.08-2 || Intel X3100 ({{Pkg|xf86-video-intel}}) || Intel 82801H (''snd-hda-intel'') || RTL8101e (''r8139'') || Broadcom BCM94311MCG driver ''b43'': No (may need different firmware)<br />''ndiswrapper'': Yes || N/A || ACPI: Yes<br />Suspend to RAM: Yes<br />Suspend to Disk: No<br />Battery: Yes<br />Display dimming: Yes<br />CPU frequency scaling: Yes (''p4-clockmod'') || not tested || Hot keys: Yes ''(HP keymap)''<br />Remote: Yes, ''except for DVD, Quickplay, and Windows MCE buttons''<br />LightScribe: not tested || --<br />
|-<br />
|HP Pavilion dv9530em || 2009.06 || nVidia GeForce 8400M GS || Realtek ALC268 || RTL8168b/8111b || Intel 3945 ''(iwl3945)'' || yes || Suspend to RAM: Yes<br />Suspend to Disk: Yes<br />Battery: Yes<br />Dimming of display: Yes<br />Frequency scaling of CPU: Yes || not tested || Hot keys: Yes<br />LightScribe: not tested || --<br />
|-<br />
|HP Pavilion TX1220US (GA647UA) || Overlord || nVidia GeForce Go 6150 (works with ''nvidia'') || nVidia MCP51 HD Audio (works with ''snd-hda-intel'') || nVidia MCP51 Ethernet Controller (works with ''forcedeth'') || Broadcom 4321 card (works with ''ndiswrapper'' and Broadcom-released Linux driver: {{AUR|broadcom-wl}}) || not tested || not tested || not tested || Touch screen: (appears to work; have not calibrated)<br />Remote: not working<br />Hot keys: not tested<br />LightScribe: not tested || People with this same laptop have gotten the hot keys and touch screen to work on other distributions.<br />
|-<br />
|HP Elitebook 8560w || 2012 || NVIDIA quadro 1000M (''nvidia/nouveau driver'') || Intel sound card: ''snd-hda-intel'' || ''e1000e'' || Intel wireless: ''iwlwifi'' || -- || ACPI: Yes<br />Suspend to RAM: No<br/> Suspend to Disk: Yes <br/>Battery: Yes<br />Display dimming: Yes (using ''nvidiabl for nvidia driver'')<br /> CPU frequency scaling: Yes (''acpi-cpufreq'') || not tested || Hot keys: Yes <br /> DVD/CD: Not tested<br /> SD slot: Not tested<br />Touchkeys: N/A<br /> FireWire: Not tested|| If using nvidia driver, nvidiabl should be used to allow backlight adjustments.<br />
|-<br />
|HP Compaq 8510w* || 2008 || NVIDIA FX570M (''nvidia driver'') || Intel sound card: ''snd-hda-intel)'' || ''e1000'' || Intel wireless: ''iwl4965'' || -- || ACPI: Yes<br />Suspend to RAM: Yes<br/> Suspend to Disk: Yes <br/>Battery: Yes<br />Display dimming: Yes (using ''nvclock'')<br /> CPU frequency scaling: Yes (''acpi-cpufreq'') || not tested || Hot keys: Yes <br /> DVD/CD: Yes<br /> SD slot: Yes<br />Touchkeys: Yes<br /> FireWire: untested|| --<br />
|-<br />
|[[HP tx2z]] || 2009.08 || Radeon HD 3200 driver: ''radeon'' || Intel HDA driver: ''snd-hda-intel'' || RTL8111/8168B driver: ''r8169'' || Broadcom 4322 driver: {{AUR|broadcom-wl}} || not tested || not tested || not tested || Hot keys: yes<br/>LightScribe: not tested<br/>webcam: yes<br/>touchscreen: works<br/>stylus: still working on<br/>Media reader: works || some known successes with touchscreen and stylus in Ubuntu<br />
|-<br />
|[[HP Pavilion DV3-2155MX]] || 2010.05 || -- || -- || -- || -- || -- || -- || -- || -- || --<br />
|-<br />
|HP Pavilion dv6-2115sa || 2010.05 || Radeon HD 4200 series<br/>Works well with open-source Radeon driver || Intel HDA driver: ''snd-hda-intel'' || unknown || Broadcom wireless works out-of-the-box || not tested || ACPI: Yes<br/>Suspend to RAM: No<br/>Suspend to Disk: Yes, with TuxOnIce<br/>Battery: Yes<br/>Remote: Some buttons do not work<br/>Display dimming: Yes<br/> CPU frequency scaling: Yes, with K8 Driver || not tested || Hot keys: yes<br/>LightScribe: not tested<br/>Webcam: yes || To prevent output to both headphones and speakers simultaneously, add {{ic|1=options snd-hda-intel model=hp-dv5}} to {{ic|/etc/modprobe.d/modprobe.conf}}<br />
|-<br />
|HP 625 || 2010.05 || Radeon HD 4200 series drivers: ''radeon'' or ''catalyst''|| ATI RS880 Audio Device driver: ''snd-hda-intel'' || RTL8101E/8102E driver: ''r8169'' || Broadcom BCM4313 driver: ''brcmsmac'' (in kernel) || not tested || ACPI: Yes<br/>Suspend to RAM: Yes<br/>Suspend to Disk: Yes<br/>Battery: Yes<br/>Display dimming: Yes<br/>CPU frequency scaling: Yes || not tested || Hot keys: yes <br/>LightScribe: untested <br/>Webcam: yes <br/>Card reader: yes || --<br />
|-<br />
|HP Pavilion g4 || 2013 || AMD Radeon HD 7660G+HD 7670M Dual Graphics (A10 APU). APU graphics work with ''radeon'' driver, but ''catalyst'' is required for switchable graphics. || Intel sound card: ''snd-hda-intel'' || RTL8105. Driver: ''r8169'' || Ralink RT3290. Works (poorly) with ''rt2800pci'', for best results use ''rt3290sta'', from [https://aur.archlinux.org/packages/rt3290sta-dkms/ rt3290sta-dkms in the AUR] || Not working as of Oct 2014 || ACPI: Yes<br/>Suspend to RAM: Yes<br/>Suspend to Disk: Yes<br/>Battery: Yes<br/>Display dimming: Yes<br/>CPU frequency scaling: Yes || not tested || Hot keys: yes <br/>LightScribe: untested <br/>Webcam: yes <br/>Card reader: yes || --<br />
|-<br />
| [[HP ENVY TouchSmart 17-j113tx]] || 2014.11 || Intel HD 4600 (''i915'') + NVIDIA GeForce GT 740M (''nouveau'' or proprietary ''NVIDIA'') as an Optimus setup. || Intel HD Audio (''snd_hda_intel'') || Realtek, exact model is unclear (''r8169'') || Intel 7260 (''iwlwifi'') || Intel Bluetooth, works || ACPI: Yes, Suspend to RAM: Yes, Suspect to Disk: Yes, Battery: Yes, Display Dimming: Yes, CPU Frequency Scaling: Yes || Not included. || Optical Disk Drive, TouchScreen, Webcam, SD Card Reader || See article.<br />
|-<br />
| HP Pavilion Ultrabook 15-b030st || 2015.05 || Intel Core i5-3317U + NVIDIA GeForce GT 630M (''nouveau'' or proprietary ''NVIDIA'') as an Optimus setup. || Intel HD Audio (''snd_hda_intel'') || ??? || Ralink RT3290 || Not working || -- || Yes || -- || --<br />
|}<br />
<br />
== Configuration ==<br />
<br />
=== HP Compaq 8510w ===<br />
<br />
Follow the steps outlined in [[Suspend and hibernate#Hibernation]]. The suspend to disk process works correctly but the laptop does not power itself off. To fix this create the following file:<br />
<br />
{{hc|/etc/systemd/system/sleep.conf|2=<br />
[Sleep]<br />
HibernateMode=shutdown<br />
}}<br />
<br />
This file tells [[Systemd]] to write {{ic|shutdown}} instead of {{ic|platform}} to {{ic|/sys/power/disk}} before writing {{ic|disk}} to {{ic|/sys/power/state}}.</div>Betseg