{"id":15149032,"url":"https://github.com/xlucn/dotfiles","last_synced_at":"2025-10-24T05:30:57.493Z","repository":{"id":91304716,"uuid":"128543294","full_name":"xlucn/dotfiles","owner":"xlucn","description":"Linux configuration files (dotfiles) and some useful scripts","archived":false,"fork":false,"pushed_at":"2024-11-05T12:46:43.000Z","size":1935,"stargazers_count":44,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-30T23:41:38.226Z","etag":null,"topics":["awesomewm","bash","config","configuration","dotfiles","framebuffer","rofi","tmux","tty"],"latest_commit_sha":null,"homepage":"","language":"Lua","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/xlucn.png","metadata":{"files":{"readme":"README.md","changelog":"newsboat/.config/newsboat/config","contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-04-07T15:45:09.000Z","updated_at":"2025-01-28T14:28:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"7f33c0cd-d42c-4c27-82be-086f71d564ac","html_url":"https://github.com/xlucn/dotfiles","commit_stats":{"total_commits":2519,"total_committers":1,"mean_commits":2519.0,"dds":0.0,"last_synced_commit":"de9c4fb3d53794619b1c1072ccf272f57a7ff552"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xlucn%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xlucn%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xlucn%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xlucn%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xlucn","download_url":"https://codeload.github.com/xlucn/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237918710,"owners_count":19387305,"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":["awesomewm","bash","config","configuration","dotfiles","framebuffer","rofi","tmux","tty"],"created_at":"2024-09-26T13:41:24.231Z","updated_at":"2025-10-24T05:30:57.054Z","avatar_url":"https://github.com/xlucn.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dotfiles\n\nConfig files for everything.\n\n![](https://github.com/OliverLew/oliverlew.github.io/blob/pictures/dwm.png?raw=true)\n\n## Environment\n\n- OS: [Archlinux][] for most recent versions of programs.\n- WM: [dwm][] ([my fork][dwm_fork]).\n- Terminal Emulator: [st][] ([my fork][st_fork]).\n- Network: systemd-networkd + iwd.\n- Music player: [mpd][] + [mpc][] + [ncmpc][]\n- Text editor: [neovim][]\n\n[Archlinux]: https://www.archlinux.org/\n[dwm]: https://dwm.suckless.org/\n[dwm_fork]: https://github.com/oliverlew/dwm\n[st]: https://st.suckless.org/\n[st_fork]: https://github.com/oliverlew/st\n[mpd]: https://github.com/MusicPlayerDaemon/MPD/\n[mpc]: https://github.com/MusicPlayerDaemon/mpc\n[ncmpc]: https://github.com/MusicPlayerDaemon/ncmpc\n[neovim]: https://github.com/neovim/neovim\n\n## Manage dotfiles\n\nI manage my configuration files with [stow][] and a simple makefile. Every\ntop-level folder is treated as a stow \"package\". Stow will link the files\ninside those folders to user's home directory. For example, `package/.foo/bar`\nwill be linked to `$HOME/.foo/bar`.\n\n[stow]: https://www.gnu.org/software/stow/\n\nThere are two kinds of files:\n\n- Dotfiles: files like `package/.foo/bar`\n\n  These files go to the user's home directory. Managed by **stow**. Install with\n\n```sh\nmake dotfiles  # deploy \"dot\" files\n```\n\n- System files: files like `package/foo/bar`\n\n  These files go to root directory. The reason for this is some system files\n  doesn't work if they are symlinks, so they will be copied to the target\n  directly. Install with\n\n```sh\nmake system    # deploy system files\n```\n\n## Topics\n\nThere are some interesting configuration files that I think deserve sharing.\nFollow the link to read more.\n\n### [Bash](bash)\n\n- My own shell prompt script, simple and fast.\n- Readline configuration, making bash a powerful interactive shell.\n- Environment variables, with lots of XDG path settings.\n\n### [Fbterm](fbterm)\n\nFbterm is a terminal emulator under linux console. It can show Unicode\ncharacters, more colors. Combined with tmux, it can create a quite powerful\nGUI-free environment.\n\n### [MPD](mpd/.config)\n\nMPD is a music player daemon. I mostly use ncmpc as the front end.\n\n### [Mutt](neomutt)\n\nMutt is a TUI mail client.\n\nApart from normal configurations, I created a `mutt_bootstrap` script\nto support multiple accounts by listing and selecting an email address\nfrom `pass` password store, and extracting the password therein.\n\n### [Python](python/.config)\n\nIPython has plenty customization options, such as vi keybinding mode.\n\nPtpython is a enhanced REPL environment, such as showing function signature and\ndocstring\n\n### [Rofi](rofi/.config/rofi)\n\nThere is a GNOME-style launcher theme.\n\n### [Scripts](scripts/.local/bin)\n\nA lot of scripts.\n\n### [Tmux](tmux/.config/tmux)\n\nAs a heavy tmux user, I mapped most actions to `Alt-KEY`, similar to WM\nkeybindings. I think this style can improve efficiency by quite a lot, because\nyou don't have to press a chain of key combination (e.g., `Alt-Enter` replaces\n`Ctrl-A` then `minus`)\n\n### [(Neo)Vim](vim/.config)\n\n- Neovim. I am gradually de-coupling neovim from vim configurations. More specifically, I am adding more lua plugins to replace vim script ones.\n- Vim. I am doing my best to make the configuration fast and lightweight.\n- Ex/Vi. Try this old text editor, you will learn vi(m) faster.\n\n### [Miscellaneous](config)\n\nAll other configuration files. Some interesting ones I like:\n- Gnu `info` [keybings](config/.config/infokey) for vim users. Now you know more than pressing q to quit!\n- `Top` [settings](config/.config/procps) to make it as eye-candy as possible.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxlucn%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxlucn%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxlucn%2Fdotfiles/lists"}