{"id":23397411,"url":"https://github.com/strix007/wsl","last_synced_at":"2025-07-23T14:34:28.215Z","repository":{"id":206995530,"uuid":"718161109","full_name":"Strix007/wsl","owner":"Strix007","description":"My wsl config","archived":false,"fork":false,"pushed_at":"2024-10-11T11:06:42.000Z","size":105824,"stargazers_count":22,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T15:56:51.449Z","etag":null,"topics":["emacs","lf","linux","shell","vim","wsl","zathura","zsh","zsh-plugin"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Strix007.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-11-13T14:08:19.000Z","updated_at":"2025-02-19T07:15:46.000Z","dependencies_parsed_at":"2023-12-06T14:29:23.252Z","dependency_job_id":"a8157388-56dd-4819-8d0d-65321c29062b","html_url":"https://github.com/Strix007/wsl","commit_stats":null,"previous_names":["strix007/wsl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Strix007/wsl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Strix007%2Fwsl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Strix007%2Fwsl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Strix007%2Fwsl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Strix007%2Fwsl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Strix007","download_url":"https://codeload.github.com/Strix007/wsl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Strix007%2Fwsl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266694573,"owners_count":23969795,"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","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["emacs","lf","linux","shell","vim","wsl","zathura","zsh","zsh-plugin"],"created_at":"2024-12-22T08:18:10.963Z","updated_at":"2025-07-23T14:34:28.190Z","avatar_url":"https://github.com/Strix007.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"#+TITLE: Arbab Khan’s Dotfiles\n#+AUTHOR: Arbab Khan   \n#+EMAIL: arbabashruff@gmail.com\n#+DESCRIPTION: These are the dotfiles for my arch wsl instance.\n\n* WSL Configuration Of Arbab Khan:noexport:\nThis is my WSL configuration for my arch WSL instance.\n\n* Table of Contents\n:PROPERTIES:\n:TOC:      :include all :ignore this\n:END:\n:CONTENTS:\n- [[#caution][Caution]]\n- [[#about][About]]\n- [[#what-to-install][What To Install]]\n  - [[#windows-11][Windows 11]]\n  - [[#wsl][WSL]]\n    - [[#shell][Shell]]\n    - [[#tmux][Tmux]]\n    - [[#neovim][NeoVim]]\n    - [[#lf][lf]]\n    - [[#fzf][fzf]]\n    - [[#mpd][MPD]]\n    - [[#emacs][Emacs]]\n- [[#setup-instructions][Setup Instructions]]\n  - [[#windows][Windows]]\n    - [[#wezterm][WezTerm]]\n    - [[#vcxsrv][VcXsrv]]\n      - [[#firewall][Firewall]]\n      - [[#startup][Startup]]\n      - [[#blurry-fonts][Blurry Fonts]]\n      - [[#shortcut][Shortcut]]\n- [[#archwsl][ArchWSL]]\n  - [[#systemd][Systemd]]\n  - [[#emacs-daemon][Emacs Daemon]]\n- [[#contributing][Contributing]]\n:END:\n\n* Caution\n:PROPERTIES:\n:CUSTOM_ID: caution\n:END:\n\nI have not tested these dotfiles on other WSL distributions and am not sure how will they work.\n\nYou also need to do simple little tweaks here and there to get things working, there are too many to list but they are simple enough that a simple google search should help you.\n\n* About\n:PROPERTIES:\n:CUSTOM_ID: about\n:END:\n\nThis is a very basic configuration for WSL2 on Windows 11 using [[https://github.com/yuk7/ArchWSL][yuk7's ArchWSL]]. \n\nThis configuration also heavily relies on [[https://aalonso.dev/blog/how-to-use-gui-apps-in-wsl2-forwarding-x-server-cdj][Aitor Alono's article on how to use GUI apps in WSL2]]. \n\nThis configuration uses WezTerm on the Windows side to spawn directly into the WSL instance without going through powershell though any terminal can work.\n\n* What To Install\n:PROPERTIES:\n:CUSTOM_ID: what-to-install\n:END:\n** Windows 11\n:PROPERTIES:\n:CUSTOM_ID: windows-11\n:END:\n- [[https://learn.microsoft.com/en-us/windows/wsl/install][WSL2]]\n- [[https://wezfurlong.org/wezterm/install/windows.html][WezTerm]]\n- [[https://github.com/VSWSL/Arch-WSL#Installation][Arch-WSL]]\n- [[https://github.com/ryanoasis/nerd-fonts#font-installation][Nerd Font]]\n- [[https://sourceforge.net/projects/vcxsrv][VcXsrv]]\n** WSL\n:PROPERTIES:\n:CUSTOM_ID: wsl\n:END:\n*** Shell\n:PROPERTIES:\n:CUSTOM_ID: shell\n:END:\n- [[https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH][Zsh]]\n- [[https://getantidote.github.io/install][Antidote]] \n- [[https://github.com/junegunn/fzf#installation][fzf]]\n- [[https://github.com/jstkdng/ueberzugpp][ueberzug++]]\n- [[https://github.com/eza-community/eza][eza]]\n- [[https://github.com/ajeetdsouza/zoxide#installation][zoxide]]\n- [[https://github.com/mozilla/sccache#installation][sccache]]\n- [[https://github.com/4U6U57/wsl-open][wsl-open]]\n- [[https://github.com/laurent22/wslpath][wslpath]]\n- [[https://github.com/nullpo-head/WSL-Hello-sudo][WSL-Hello-sudo]]\n*** Tmux\n:PROPERTIES:\n:CUSTOM_ID: tmux\n:END:\n- [[https://github.com/tmux/tmux][tmux]]\n- [[https://github.com/tmux-plugins/tpm][tpm]]\n- [[https://github.com/mikefarah/yq][yq]] \n- [[https://github.com/junegunn/fzf#installation][fzf]]\n- [[https://github.com/ajeetdsouza/zoxide][zoxide]]\n- [[https://github.com/facebook/pathpicker/][fpp]]\n- [[https://github.com/golang/go][go]]\n*** NeoVim\n:PROPERTIES:\n:CUSTOM_ID: neovim\n:END:\n- [[https://github.com/neovim/neovim/wiki/Installing-Neovim][neovim]]\n- [[https://www.gnu.org/software/make/#download][make]]\n- [[https://github.com/mah0x211/lua-pcre2][lua-pcre2]]\n*** lf \n:PROPERTIES:\n:CUSTOM_ID: lf\n:END:\n- [[https://github.com/gokcehan/lf][lf]]  \n- [[https://github.com/junegunn/fzf#installation][fzf]]\n- [[https://github.com/jstkdng/ueberzugpp][ueberzug++]]\n- [[https://github.com/andreafrancia/trash-cli][trash-cli]] \n- [[https://github.com/sharkdp/bat#installation][bat]]\n- [[https://github.com/dirkvdb/ffmpegthumbnailer][ffmpegthumbnailer]]\n- [[https://imagemagick.org/script/download.php][imagemagick]]\n- [[https://poppler.freedesktop.org/][poppler]]\n- [[https://github.com/marianosimone/epub-thumbnailer][epub-thumbnailer]]\n- [[https://wkhtmltopdf.org/downloads.html][wkhtmltopdf]]\n- [[https://github.com/hpjansson/chafa#Installing][chafa]]\n*** fzf\n:PROPERTIES:\n:CUSTOM_ID: fzf\n:END:\n- [[https://github.com/hpjansson/chafa#Installing][chafa]]\n- [[https://github.com/jstkdng/ueberzugpp][ueberzug++]]\n- [[https://stedolan.github.io/jq][jq]]\n- [[https://github.com/eza-community/eza][eza]]\n- [[https://sourceforge.net/projects/w3m/][w3m]]\n- [[https://github.com/charmbracelet/glow][glow]]\n- [[https://github.com/transmission/transmission][transmission-cli]]\n- [[https://github.com/sharkdp/bat#installation][bat]]\n*** MPD\n:PROPERTIES:\n:CUSTOM_ID: mpd\n:END:\n- [[https://mpd.readthedocs.io/en/stable/user.html][mpd]] \n- [[https://github.com/MusicPlayerDaemon/mpc][mpc]]   \n- [[https://rybczak.net/ncmpcpp/installation][ncmpcpp]]\n*** Emacs\n:PROPERTIES:\n:CUSTOM_ID: emacs\n:END:\nUnder WSLg, you would need to compile emacs yourself with =pgtk= and =native-comp= but due to some hibernation issues I faced with WSLg, I switched over to forwarding a X server with VcXsrv. So you don’t need to compile emacs from scratch anymore, but it is still the prefered method to install emacs as compared to a distro repository.\n#+begin_example\n# Install the necessary developement tools\nsudo pacman -S base-devel git --needed\nsudo pacman -S libxpm libjpeg libpng libtiff giflib librsvg libxml2 gnutls gtk3 webkit2gtk --needed\n# Clone the Emacs repository\ngit clone git://git.sv.gnu.org/emacs.git\n# cd into the Emacs repository\ncd emacs\n# Generate build files\n./autogen\n# Configure the Emacs features per your needs\n./configure --with-native-compilation=aot  --with-xwidgets --with-tree-sitter --with-json --with-imagemagick --with-mailutils\n# Build Emacs\nmake\n# Install Emacs\nsudo make install\n#+end_example\n- [[https://github.com/jgm/pandoc/blob/main/INSTALL.md][pandoc]] \n\n* Setup Instructions\n:PROPERTIES:\n:CUSTOM_ID: setup-instructions\n:END:\n** Windows\n:PROPERTIES:\n:CUSTOM_ID: windows\n:END:\n*** WezTerm\n:PROPERTIES:\n:CUSTOM_ID: wezterm\n:END:\nTo setup WezTerm with =wezterm.lua=, after installing wezterm you need to move to move =wezterm.lua= to where you have installed WezTerm, typically =C:\\Program Files\\WezTerm= . Doing so might require administrator privilages.\n*** VcXsrv\n:PROPERTIES:\n:CUSTOM_ID: vcxsrv\n:END:\n**** Firewall\n:PROPERTIES:\n:CUSTOM_ID: firewall\n:END:\n\nAfter VcxSrv is installed, we need to ensure the proper rules for VcxSrv on our firewall. These steps assume you do not have custom firewall rules(like an antivirus). If you do have custom rules set, you may need to configure it manually. \n\nTo ensure the proper firewall rules, open =Windows Security= ,go to =Firewall \u0026 network protection= -\u003e =Allow an app through firewall= and ensure =VcXsrv windows xserver= has both =Private networks= and =Public networks= permissions.\n\n**** Startup\n:PROPERTIES:\n:CUSTOM_ID: startup\n:END:\nTo automatically start VcXsrv on startup, move the =Windows/config.xlaunch= file to the =%AppData%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup= directory and enable it in =TaskManager=\n:CUSTOM_ID: startup\n:END:\n\n**** Blurry Fonts\n:PROPERTIES:\n:CUSTOM_ID: blurry-fonts\n:END:\nIf you experience blurry fonts, follow [[https://superuser.com/questions/1370361/blurry-fonts-on-using-windows-default-scaling-with-wsl-gui-applications-hidpi/1550608#1550608][this]] answer.\n\n**** Shortcut\n:PROPERTIES:\n:CUSTOM_ID: shortcut\n:END:\nTo make a shortcut for any GUI application for VcXsrv, right-click on desktop, click =New= -\u003e =Shortcut= and put the shortcut command as such =C:\\Windows\\System32\\wsl.exe --distribution Arch zsh -ic \"/your command here/\"=\n\n* ArchWSL\n:PROPERTIES:\n:CUSTOM_ID: archwsl\n:END:\n*** Systemd\n:PROPERTIES:\n:CUSTOM_ID: systemd\n:END:\nTo enable systemd, you need to edit =/etc/wsl.conf= with sudo privileges i.e. =sudo vim /etc/wsl.conf= and add the following lines\n#+begin_example\n[boot]\nsystemd=true\n#+end_example\nand then restart your WSL instance by going into the windows terminal and typing the followin command =wsl --shutdown= and then opening WezTerm.\n*** Emacs Daemon\n:PROPERTIES:\n:CUSTOM_ID: emacs-daemon\n:END:\nTo enable Emacs daemon on WSL, we need to create a systemd user service for the Emacs daemon.\nWe can do so by the following steps.\n**** Create a service unit file for the Emacs daemon\n:PROPERTIES:\n:CUSTOM_ID: create-a-service-unit-file-for-the-emacs-daemon\n:TOC:      :ignore this\n:END:\n=vim ~/.config/systemd/user/emacs.service=\n**** Add the following content to the file\n:PROPERTIES:\n:CUSTOM_ID: add-the-following-content-to-the-file\n:TOC:      :ignore this\n:END:\n#+begin_example\n[Unit]\nDescription=Emacs text editor (daemon)\n\n[Service]\nType=forking\nExecStart=/usr/local/bin/emacs --daemon\nExecStop=/usr/local/bin/emacsclient --eval \"(progn (setq kill-emacs-hook 'nil) (kill-emacs))\"\nRestart=always\n\n[Install]\nWantedBy=default.target\n#+end_example\n**** Reload systemd user manager\n:PROPERTIES:\n:CUSTOM_ID: reload-systemd-user-manager\n:TOC:      :ignore this\n:END:\n=systemctl --user daemon-reload=\n**** Enable the systemd user manager\n:PROPERTIES:\n:CUSTOM_ID: enable-the-systemd-user-manager\n:TOC:      :ignore this\n:END:\n=systemctl --user enable emacs.service=\n\n* Contributing\n:PROPERTIES:\n:CUSTOM_ID: contributing\n:END:\nIf you see me doing anything inefficiently in this config or you think something would be useful to me or you want to correct some error on my part, feel free to open a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrix007%2Fwsl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstrix007%2Fwsl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrix007%2Fwsl/lists"}