https://github.com/e-lemongrab/config_files
Public repo for configuration files. Used by: https://github.com/e-lemongrab/myshell
https://github.com/e-lemongrab/config_files
alacritty-config codeowners config-files firefox-config gitattributes gitconfig gitignore hyprland-config inputrc intellij-idea-settings linux tmux-conf vimrc waybar wofi wsl2
Last synced: 27 days ago
JSON representation
Public repo for configuration files. Used by: https://github.com/e-lemongrab/myshell
- Host: GitHub
- URL: https://github.com/e-lemongrab/config_files
- Owner: e-lemongrab
- License: mit
- Created: 2024-10-20T18:50:04.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2026-04-19T21:01:18.000Z (about 1 month ago)
- Last Synced: 2026-04-19T23:10:51.865Z (about 1 month ago)
- Topics: alacritty-config, codeowners, config-files, firefox-config, gitattributes, gitconfig, gitignore, hyprland-config, inputrc, intellij-idea-settings, linux, tmux-conf, vimrc, waybar, wofi, wsl2
- Language: JavaScript
- Homepage:
- Size: 125 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Config_files
Public repo for configuration files used directly and also consumed by `myshell` through its `config_files` profile.
## Contents
### Firefox
- `firefox/user.js`
- privacy-focused Firefox profile defaults and notes about expected compatibility tradeoffs
Target location:
- Firefox profile directory: `~/.mozilla/firefox//user.js`
### Home dotfiles
- `home/.vimrc`
- `home/.tmux.conf`
- `home/.inputrc`
- `home/.gitconfig`
- `home/.alacritty.toml`
Target locations:
- `~/.vimrc`
- `~/.tmux.conf`
- `~/.inputrc`
- `~/.gitconfig`
- `~/.alacritty.toml`
### Hyprland
- `hyprland/hyprland.conf`
- `hyprland/hyprpaper.conf`
Expected locations depend on your setup. This repository stores the source files, but deployment / copy / symlink strategy may be handled externally.
Recommended paths when deploying locally:
- `~/.config/hypr/hyprland.conf`
- `~/.config/hypr/hyprpaper.conf`
Hyprland notes:
- monitor definitions are reference values and may need local adjustment
- external programs such as IDE, browser, launcher/menu, and file manager are not a `myshell` integration contract; they are reference values and can be changed or removed locally
- screenshot output paths are local preference
- keyboard layout and other input preferences are local preference
- `hyprpaper.conf` is now the source of truth for wallpaper assignment and timed rotation through native `hyprpaper` config
- wallpaper handling is expected to run through `hyprpaper.service` instead of a custom rotation script
- NVIDIA fan control can also be deployed as a user service instead of being launched from `hyprland.conf`
### Services
- `services/nvidia/nvidia-fan.service`
- `services/nvidia/nvidiafan.sh`
Recommended paths when deploying locally:
- `~/.config/systemd/user/nvidia-fan.service`
- `~/.config/nvidia/nvidiafan.sh`
Service notes:
- `nvidia-fan.service` is a user service definition for NVIDIA fan control
- service scripts are versioned in this repo and can be deployed by consumer repos such as `myshell`
#### Service prerequisites
`nvidia-fan.service`:
- `nvidia-smi`
- `nvidia-settings`
- `sudo`
- `xhost`
- the deployed script path must match the service `ExecStart` path
- `sudo` for `nvidia-settings` must work non-interactively in the user-session context
- the service depends on the graphical session being ready; a startup delay is used to avoid race conditions at login
### WSL
- `wsl/.wslconfig`
Target location:
- Windows user profile: `%UserProfile%\\.wslconfig`
## Integration with `myshell`
This repository is also consumed by `myshell` through the `config_files` profile. In that model, `myshell` is the bootstrap / installer side, while this repository acts as the source of truth for the configuration files.
That means portability matters here: unnecessary machine-specific assumptions in these files can affect `myshell` installs too.
## Firefox `user.js`
This Firefox profile keeps `network.cookie.cookieBehavior = 1` for day-to-day compatibility.
It is intended to be used together with:
- NoScript
- Firefox Multi-Account Containers
- the anti-fingerprinting and partitioning settings already enabled in `firefox/user.js`
In this setup, privacy hardening does not rely on stricter cookie blocking alone, but on the combination of:
- `privacy.fingerprintingProtection`
- Firefox internal partitioning preferences
- container-based separation
### Daily-use balance
The profile is intentionally privacy-focused, but it is also intended to remain usable as a primary browser profile.
For that reason, the current baseline avoids some of the heaviest compatibility / performance tradeoffs for daily browsing:
- `privacy.resistFingerprinting` is disabled
- `privacy.firstparty.isolate` is disabled
- `network.websocket.enabled` is enabled
- `webgl.disabled` is disabled
- `javascript.options.wasm.simd` is enabled
- font visibility is permissive in normal/private/tracking-protection contexts and only strict under Resist Fingerprinting
The remaining baseline still keeps:
- strict content blocking
- container support
- fingerprinting protection
- partitioned network / service-worker / third-party storage
- HTTPS-only mode
- blocked-by-default camera / microphone / geolocation / screen / desktop notification / XR permissions
- telemetry and studies disabled
### Notes on breakage / expected behavior
The profile intentionally blocks or restricts several browser capabilities.
Blocked or denied by default:
- camera
- microphone
- screen sharing
- geolocation
- desktop notifications
- WebXR / XR APIs
This can affect:
- browser-based video calls
- meeting tools that need mic or camera access
- screen sharing from the browser
- sites that request geolocation for maps or local results
- sites that rely on push / desktop notifications
- WebXR demos or browser VR / AR experiences
Additional privacy-hardening prefs already present in `firefox/user.js` may also affect behavior:
- `media.navigator.streams.fake = true` can cause unusual behavior in some media-capability checks or websites expecting normal camera / microphone failure modes
- DRM is disabled, so some protected streaming services may not work
This profile is intentionally opinionated and favors privacy / isolation, while aiming to avoid the most noticeable daily-use performance regressions for modern web apps.
## Notes on machine-specific config
Some files in this repository may still contain personal or environment-specific paths. Where that happens, they should be treated as custom config, and ideally cleaned up over time if they are expected to be reused through `myshell` or on other machines.