{"id":19146279,"url":"https://github.com/01walid/my-arch-stuff","last_synced_at":"2026-06-11T23:30:14.730Z","repository":{"id":142876798,"uuid":"13882711","full_name":"01walid/my-arch-stuff","owner":"01walid","description":"A personal repository of dotfiles, configs, scripts and tools I often setup after any (arch) Linux installation.","archived":false,"fork":false,"pushed_at":"2014-09-18T20:20:07.000Z","size":158,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-03T16:25:42.582Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"VimL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/01walid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-10-26T12:03:16.000Z","updated_at":"2018-04-25T18:06:03.000Z","dependencies_parsed_at":"2023-03-15T11:43:15.641Z","dependency_job_id":null,"html_url":"https://github.com/01walid/my-arch-stuff","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/01walid%2Fmy-arch-stuff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/01walid%2Fmy-arch-stuff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/01walid%2Fmy-arch-stuff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/01walid%2Fmy-arch-stuff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/01walid","download_url":"https://codeload.github.com/01walid/my-arch-stuff/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240229935,"owners_count":19768588,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T07:43:45.018Z","updated_at":"2026-06-11T23:30:14.569Z","avatar_url":"https://github.com/01walid.png","language":"VimL","funding_links":[],"categories":[],"sub_categories":[],"readme":"My Arch Linux Stuff\n===================\n\nPersonal repository of dotfiles, configs, scripts and tools I often setup after any (arch) Linux\ninstallation. I decided to gather them in one place, so I can remember exactly what I did, and \nmaintain the same personal-experience across machines/servers and improve it over time.\n\n\nYou’re welcome to use them, but you’ll probably want to fork it to remove anything peculiar to me \nor my setup that I’ve left in here. I'll be glad if you suggest me any improvement or better tools.\n\nThese are a bit Archlinux-specific stuff, but they can be useful for other distros as well.\n\n\n# Post-installation tools\n\nDon't expect that I'll list everything here (e.g. install git, libreoffice, firefox...), but I'll \nlist what are other uncommon tools that I need them or found them useful to me, but it's usually\nhard to remember them (or even their names) at once, so here they are:\n\n### Extra packages repositories\n\nI often activate the `multilib` repository in `/etc/pacman.conf` plus these 2 more repos:\n\n```\n[archlinuxfr]\n# For downloading 'yaourt', a wrapper for pacman which adds seamless access to the Arch User Repository\nSigLevel = Never\nServer = http://repo.archlinux.fr/$arch\n\n[herecura-stable]\n# additional apps not found in community (such as python-enabled Vim, qVim, teamviewer... etc)\nServer = http://repo.herecura.be/herecura-stable/$arch\nSigLevel = PackageOptional\n```\n\n### Sorting the best mirrors\n\nI use [Reflector](https://wiki.archlinux.org/index.php/Reflector), a script which can retrieve the \nlatest mirror list from the [MirrorStatus](https://www.archlinux.org/mirrors/status/) page, filter \nthe most up-to-date mirrors, sort them by speed and overwrite the file `/etc/pacman.d/mirrorlist`.\n\n\nHere is the command I use:\n\n```shell\nreflector --verbose -l 6 --sort rate --save /etc/pacman.d/mirrorlis\n```\n\nYou can find it in `scripts/bestservers.sh` so you don't have to remember it.\n\n### Font configs \n\nI use the awesome [infinality](http://www.infinality.net/) project to improve the font rendering, to \nan even better-than-windows rendering:\n\n```shell\nyaourt freetype2-infinality \nyaourt fontconfig-infinality # this may be a dependency of the first one\n```\n\nI then activate the [LCD filter](https://wiki.archlinux.org/index.php/Font_Configuration#LCD_filter),\nanyway, everything is very well described in the [Arch Wiki](https://wiki.archlinux.org/index.php/Font_Configuration). \nyou can find my fonts.conf file in `confs/.config/fontconfig/fonts.conf` that obviously should reside \nin `~/.config/fontconfig/fonts.conf` of your Home directory.\n\nHowever, some widely used fonts (especially on the web) should be installed in your system, here are \nsome I often install:\n\n```shell\nyaourt ttf-arabeyes-fonts # Collection of free Arabic fonts\nyaourt ttf-amiri \nyaourt ttf-sil-scheherazade # Unicode Arabic font from SIL \nyaourt ttf-qurancomplex-fonts # Fonts by King Fahd Glorious Quran Printing Complex in al-Madinah al-Munawwarah\npacman -S ttf-ubuntu-font-family\nyaourt ttf-tahoma # or yaourt ttf-microsoft-tahoma \nyaourt ttf-win7-fonts \n```\n\nSee this [Wiki section](https://wiki.archlinux.org/index.php/Fonts#Font_packages) for more fonts. \nFor the terminal (and even for coding) I use Monofur, and as Arabic web content is more and more using\nthe Android fonts, I also install droid-arabic-naskh and droid-arabic-kufi (they're all available in AUR).\n\nIf you installed Infinality as I mentioned, it comes with the `infctl setstyle` command, you can \nselect the font style (win7, winxp, osx, linux, ...), for instance: `infctl setstyle win7` to mimic the\nfont rendering to be the same as Windows7 (or better!).\n\n### Better Gnome/gtk app appearance\n\nI use KDE, and by default, some gtk apps look ugly, to fix that (so they look like native KDE apps), install:\n\n```shell\npacman -S gtk-qt-engin\npacman -S oxygen-gtk3\nyaourt oxygen-gtk-icon\n```\n\nThen go to system settings -\u003e GTK Styles and Fonts, select the oxygen-gtk style, logout/in, done.\n\nFor the sake of beauty I use [KFaenza](http://kde-look.org/content/show.php/?content=143890) icons \n(like Faenza but for KDE!) `yaourt kfaenza` with Androbit KDE desktop theme.\n\n### Better windows file systems handling\n\nTo be able to format USB sticks and other hard-disk partitions to FAT/NTFS:\n\n```shell\npacman -S dosfstools # gets you mkfs.vfat and mkfs.msdos\npacman -S ntfsprogs  # gets you mkfs.ntf\npacman -S exfat-utils # for the exFAT file system\n\n# optional, for supporting the Samsung Flash-Friendly File System (F2FS)\npacman -S f2fs-tools\n```\n\n### Better Terminal\n\nI use [zsh](https://wiki.archlinux.org/index.php/Zsh) instead of bash, with the must-have \n[oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) with git (enabled by default) and \n[syntax highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) plugins. You can find \nmy .zshrc file in `dotfiles/.zshrc`.\n\n\n### Pacman colors\nFrom version \u003e= 4, Pacman support colored outputs, you just need to uncomment the \"Color\" line in \n`pacman.conf`.\n\n\n### Git basic config\nImportant before doing any commit, so you won't loose any credits:\n\n```shell \ngit config --global user.name \"YOUR FULL NAME HERE\"\ngit config --global user.email \"YOUR EMAIL HERE\"\ngit config --global core.editor nano # or vim\ngit config --global color.ui true\ngit config format.pretty oneline # optional\n```\n\n### Allow mounting a filesystem on a system device for any user\nPut the following in `/etc/polkit-1/rules.d/10-enable-mount.rules` \n```\npolkit.addRule(function(action) {\n    if (action.id == \"org.freedesktop.udisks2.filesystem-mount-system\") {\n        return polkit.Result.YES;\n    }\n});\n```\n\n## Routine stuff\n\nfrom time to time, I run these commands:\n\n```shell \n$ pacman -Sc # to delete unused packages and free up disk space\n$ pacman-optimize # Improves pacman's database access speeds (puts all the small files together in one (physical) location on the hard disk )\n$ fc-cache -vf # for refreshing the font cache\n$ yaourt -Syua --devel # full system update, however I often just use pacman -Syu\n```\n\n# Tools I use\n\n* `pacman -S imagemagic` this includes the `convert` command to convert between image format or resize \nthem easily, e.g. `convert input.jpg output.png`, or even to PDF: `convert page*.png output.pdf`. \nSearch the web for advanced usage.\n\n* `pacman -S texlive-latexextr` and `pacman -S texlive-scienc` if you use LaTex, these include the \n\"polyglossia\" package for better Arabic support (see this [paper](http://www.dr-adel.com/pdf/arabic-test-20-4-2011.pd))\nand some other useful scientific packages\n\n* `pacman -S youtube-dl` to download online videos from the command line with ease, example usage: \n`youtube-dl -t \u003cvideo-link-here\u003e`, the `-t` option to set the video title as the name of the downloaded file.\n\n* `pacman -S tree` a directory listing program displaying a depth indented list of files. Example usage:\n\n```shell\n$ cd /to/some/directory\n$ tree\n# the ouput:\n|-- net\n|   |-- dev_snmp6\n|   |-- netfilter\n|   |-- rpc\n|   |   |-- auth.rpcsec.context\n|   |   |-- auth.rpcsec.init\n|   |   |-- nfsd.export\n|   |   `-- nfsd.fh\n|   `-- stat\n|-- root -\u003e /\n```\nyou can print that to file: `tree \u003e file.txt`\n* `pacman -S cloc` for counting lines of code, see: http://cloc.sourceforge.net, kudos to @sohaibafifi.\n\n* `setfacl` (comes with systemd as a dependency) for more advanced folder and user/groups permissions.\n* `pacdiff` for managing `.pacnew` files and see the diff, and also use Kompare, and Kdiff3 (GUIs for KDE).\n* `yaourt --stats` nice stats about installed packages.\n\nI believe there are other useful tools I use from time to time, I'll write them here whenever I remember them.\n\n# TODO\n\n- ☐ Android devices handling.\n- ☐ My nginx configuration files.\n- ☐ Add an install file for auto-installing all of the mentioned tools and config/dotfiles.\n\n# License\n\nPublic domain. Do whatever you like with it if any is useful to you.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F01walid%2Fmy-arch-stuff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F01walid%2Fmy-arch-stuff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F01walid%2Fmy-arch-stuff/lists"}