├── .github └── workflows │ └── update-flake-lock.yml ├── .gitignore ├── LICENSE ├── README.md ├── assets └── preview.png ├── dotfiles ├── .config │ ├── asm-lsp │ │ └── .asm-lsp.toml │ ├── discord │ │ └── settings.json │ ├── eww │ │ ├── eww.scss │ │ ├── eww.yuck │ │ ├── scripts │ │ │ ├── cava.sh │ │ │ ├── get-song-artist-album.sh │ │ │ ├── lock.sh │ │ │ ├── power-off.sh │ │ │ ├── reboot.sh │ │ │ └── toggle-calendar-menu.sh │ │ └── widgets │ │ │ ├── bar │ │ │ ├── bar.yuck │ │ │ └── clock.yuck │ │ │ └── calendar-menu │ │ │ ├── audio-ui │ │ │ ├── audio-ui.yuck │ │ │ ├── cava.yuck │ │ │ └── song-artist-album.yuck │ │ │ ├── calendar-menu.yuck │ │ │ ├── power-buttons │ │ │ ├── lock.yuck │ │ │ ├── power-button.yuck │ │ │ ├── power-buttons.yuck │ │ │ ├── power-off.yuck │ │ │ └── reboot.yuck │ │ │ └── usage-bars │ │ │ ├── battery.yuck │ │ │ ├── cpu.yuck │ │ │ ├── disk.yuck │ │ │ ├── memory.yuck │ │ │ ├── usage-bar.yuck │ │ │ └── usage-bars.yuck │ ├── godot │ │ └── editor_settings-4.tres │ ├── hypr │ │ ├── core │ │ │ ├── core.conf │ │ │ ├── decoration.conf │ │ │ ├── dwindle.conf │ │ │ ├── env-variables.conf │ │ │ ├── general.conf │ │ │ ├── input.conf │ │ │ ├── keybindings.conf │ │ │ ├── monitor.conf │ │ │ └── startup.conf │ │ ├── external │ │ │ ├── brightnessctl.conf │ │ │ ├── eww.conf │ │ │ ├── external.conf │ │ │ ├── hyprshot.conf │ │ │ ├── rofi.conf │ │ │ └── swww │ │ │ │ ├── all-wallpapers │ │ │ │ ├── catppuccin-kitty.webp │ │ │ │ ├── catppuccin-nixos.png │ │ │ │ ├── readme.txt │ │ │ │ └── snowy-home.jpg │ │ │ │ ├── current-wallpaper │ │ │ │ └── snowy-home.jpg │ │ │ │ ├── enabled-wallpapers │ │ │ │ └── catppuccin-nixos.png │ │ │ │ ├── set-random-wallpaper.sh │ │ │ │ └── swww.conf │ │ ├── hyprland.conf │ │ └── nwg-displays.conf │ ├── kitty │ │ └── kitty.conf │ ├── neofetch │ │ └── config.conf │ ├── nvim │ │ ├── .lua-format │ │ ├── README.md │ │ ├── init.lua │ │ ├── lazy-lock.json │ │ └── lua │ │ │ ├── core │ │ │ ├── bootstrap.lua │ │ │ ├── init.lua │ │ │ └── mappings.lua │ │ │ └── plugins │ │ │ ├── configs │ │ │ ├── autopairs.lua │ │ │ ├── catppuccin.lua │ │ │ ├── cmp.lua │ │ │ ├── colorizer.lua │ │ │ ├── comment.lua │ │ │ ├── fugitive.lua │ │ │ ├── gitgutter.lua │ │ │ ├── image.lua │ │ │ ├── init.lua │ │ │ ├── leetcode.lua │ │ │ ├── lspconfig.lua │ │ │ ├── luasnip.lua │ │ │ ├── mason-lspconfig.lua │ │ │ ├── mason.lua │ │ │ ├── presence.lua │ │ │ ├── snacks.lua │ │ │ ├── startup.lua │ │ │ ├── telescope.lua │ │ │ ├── toggleterm.lua │ │ │ ├── tree.lua │ │ │ ├── treesitter.lua │ │ │ ├── vim-prisma.lua │ │ │ ├── wakatime.lua │ │ │ └── yuck.lua │ │ │ └── init.lua │ ├── rofi │ │ └── config.rasi │ └── vesktop │ │ ├── settings.json │ │ └── settings │ │ ├── quickCss.css │ │ └── settings.json ├── .gitconfig ├── .gitignore-global ├── .gnupg │ └── gpg-agent.conf ├── .peaclock │ └── config ├── .stow-local-ignore ├── .tmux.conf ├── .yarnrc.yml └── README.md ├── flake.lock ├── flake.nix ├── home-manager ├── README.md ├── home.nix └── modules │ ├── catppuccin.nix │ ├── core.nix │ ├── default.nix │ ├── graphical-user-interfaces.nix │ ├── packages │ ├── cli-utilities │ │ ├── ani-cli.nix │ │ ├── brightnessctl.nix │ │ ├── btop.nix │ │ ├── cava.nix │ │ ├── cbonsai.nix │ │ ├── cloc.nix │ │ ├── cmatrix.nix │ │ ├── cowsay.nix │ │ ├── cpulimit.nix │ │ ├── default.nix │ │ ├── delta.nix │ │ ├── dig.nix │ │ ├── exiftool.nix │ │ ├── ffmpeg.nix │ │ ├── fzf.nix │ │ ├── git-lfs.nix │ │ ├── gitleaks.nix │ │ ├── guess-the-number-asm.nix │ │ ├── hashcat.nix │ │ ├── imgcat.nix │ │ ├── imv.nix │ │ ├── jq.nix │ │ ├── kittysay.nix │ │ ├── libnotify.nix │ │ ├── lsof.nix │ │ ├── minio-client.nix │ │ ├── neofetch.nix │ │ ├── neovim.nix │ │ ├── nix-init.nix │ │ ├── nmap.nix │ │ ├── onefetch.nix │ │ ├── openssl.nix │ │ ├── peaclock.nix │ │ ├── pkg-config.nix │ │ ├── ripgrep.nix │ │ ├── speedtest-cli.nix │ │ ├── spicetify-cli.nix │ │ ├── sqlite-web.nix │ │ ├── svgo.nix │ │ ├── thefuck.nix │ │ ├── tmux.nix │ │ ├── tree.nix │ │ ├── unar.nix │ │ ├── unzip.nix │ │ ├── websocat.nix │ │ ├── wget.nix │ │ ├── whois.nix │ │ ├── wine.nix │ │ ├── wl-clipboard.nix │ │ ├── xhost.nix │ │ ├── yt-dlp.nix │ │ └── zip.nix │ ├── default.nix │ ├── development-environment │ │ ├── c-sharp │ │ │ ├── default.nix │ │ │ ├── dotnet-sdk_8.nix │ │ │ └── mono.nix │ │ ├── c │ │ │ ├── bear.nix │ │ │ ├── clang-tools.nix │ │ │ ├── clang.nix │ │ │ ├── cmake.nix │ │ │ ├── default.nix │ │ │ └── gcc.nix │ │ ├── default.nix │ │ ├── go │ │ │ ├── default.nix │ │ │ └── go.nix │ │ ├── java │ │ │ ├── android-studio.nix │ │ │ ├── android-tools.nix │ │ │ ├── default.nix │ │ │ ├── gradle.nix │ │ │ ├── maven.nix │ │ │ └── zulu.nix │ │ ├── javascript │ │ │ ├── default.nix │ │ │ ├── nodejs_22.nix │ │ │ └── yarn-berry.nix │ │ ├── lua │ │ │ ├── default.nix │ │ │ ├── lua-language-server.nix │ │ │ ├── luaformatter.nix │ │ │ └── luajit.nix │ │ ├── misc │ │ │ ├── default.nix │ │ │ ├── gdb.nix │ │ │ ├── gnumake.nix │ │ │ └── google-cloud-sdk.nix │ │ ├── python │ │ │ ├── default.nix │ │ │ ├── pip312.nix │ │ │ ├── poetry.nix │ │ │ └── python313.nix │ │ ├── rust │ │ │ ├── cargo.nix │ │ │ └── default.nix │ │ └── typescript │ │ │ ├── default.nix │ │ │ ├── ts-node.nix │ │ │ └── typescript.nix │ ├── gui-apps │ │ ├── atlauncher.nix │ │ ├── caprine-bin.nix │ │ ├── ciscopackettracer8.nix │ │ ├── clocks.nix │ │ ├── default.nix │ │ ├── discord.nix │ │ ├── element-desktop.nix │ │ ├── epiphany.nix │ │ ├── firefox.nix │ │ ├── fontforge-gtk.nix │ │ ├── gedit.nix │ │ ├── gimp.nix │ │ ├── godot3-mono.nix │ │ ├── godot_4.nix │ │ ├── google-chrome.nix │ │ ├── hoppscotch.nix │ │ ├── kdenlive.nix │ │ ├── kitty.nix │ │ ├── libreoffice.nix │ │ ├── lunar-client.nix │ │ ├── lutris.nix │ │ ├── minecraft.nix │ │ ├── mnta.nix │ │ ├── mpv.nix │ │ ├── networkmanagerapplet.nix │ │ ├── nwg-displays.nix │ │ ├── obs-studio.nix │ │ ├── pavucontrol.nix │ │ ├── postman.nix │ │ ├── protonvpn-gui.nix │ │ ├── qalculate-gtk.nix │ │ ├── remmina.nix │ │ ├── sherloq.nix │ │ ├── slack.nix │ │ ├── soundnode.nix │ │ ├── sowon.nix │ │ ├── spotify.nix │ │ ├── steam.nix │ │ ├── super-tux-kart.nix │ │ ├── super-tux.nix │ │ ├── synfigstudio.nix │ │ ├── thunar.nix │ │ ├── tor-browser.nix │ │ ├── vesktop.nix │ │ ├── via.nix │ │ ├── virtualbox.nix │ │ ├── vscode.nix │ │ ├── whatsapp-for-linux.nix │ │ └── wireshark.nix │ ├── misc │ │ ├── breeze.nix │ │ ├── comic-relief.nix │ │ ├── default.nix │ │ ├── eww.nix │ │ ├── hyprcursor.nix │ │ ├── hyprshot.nix │ │ ├── nerdfonts.nix │ │ ├── rofi.nix │ │ ├── swaylock.nix │ │ ├── swaynotificationcenter.nix │ │ └── swww.nix │ └── shell │ │ ├── bash.nix │ │ ├── default.nix │ │ └── zsh.nix │ ├── spicetify.nix │ └── systemd.nix ├── install.sh ├── nixos ├── README.md ├── configuration.nix └── modules │ ├── bluetooth.nix │ ├── boot.nix │ ├── catppuccin.nix │ ├── core.nix │ ├── default.nix │ ├── desktop-environment.nix │ ├── external.nix │ ├── location.nix │ ├── networking.nix │ ├── packages │ ├── cli-utilities │ │ ├── default.nix │ │ ├── docker.nix │ │ ├── git.nix │ │ ├── home-manager.nix │ │ ├── stow.nix │ │ └── vim.nix │ ├── default.nix │ ├── development-environment │ │ ├── default.nix │ │ └── shared │ │ │ ├── default.nix │ │ │ └── nix-ld.nix │ ├── gui-apps │ │ ├── default.nix │ │ ├── gparted.nix │ │ ├── konsole.nix │ │ ├── steam.nix │ │ └── virtualbox.nix │ └── misc │ │ ├── default.nix │ │ ├── gnupg.nix │ │ ├── lxsession.nix │ │ ├── ntfs3g.nix │ │ └── os-prober.nix │ ├── printing.nix │ ├── shell.nix │ ├── sound.nix │ └── users.nix └── shared ├── README.md └── shared.nix /.github/workflows/update-flake-lock.yml: -------------------------------------------------------------------------------- 1 | name: "Update flake.lock" 2 | on: 3 | workflow_dispatch: 4 | # schedule: 5 | # - cron: '0 0 * * 0' # Weekly on Saturday 00:00 6 | # - cron: '0 0 1 * *' # Monthly on first day 00:00 7 | 8 | jobs: 9 | update-lockfile: 10 | runs-on: ubuntu-latest 11 | name: "🕙 Update flake.lock" 12 | steps: 13 | - name: Checkout Code 14 | uses: actions/checkout@v4 15 | 16 | - name: Install Nix 17 | uses: cachix/install-nix-action@V27 18 | 19 | - name: Update flake.lock 20 | uses: DeterminateSystems/update-flake-lock@main 21 | with: 22 | commit-msg: "chore(nixos): update flake.lock" 23 | pr-title: "chore(nixos): update flake.lock" 24 | pr-labels: | 25 | automated 26 | token: ${{ github.token }} 27 | 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | result 2 | monitors.conf 3 | workspaces.conf 4 | 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## nixos-config 2 | 3 | This repository contains my working environment config. It consists of: 4 | 5 | 1. nixos config (placed in `nixos/`, `home-manager/` & `shared/`) 6 | 2. dotfiles (placed in `dotfiles/`) 7 | 8 | It thoroughly defines every single tweak that I've made to any program that's running on my machine. 9 | 10 | ## Features 11 | 12 |
13 | Preview Image 14 |
15 | 16 | The whole OS is centered around Catppuccin Mocha Mauve theme. Lots of applications are configured to match this color pallete, some examples include: 17 | 18 | - shell - [zsh](https://github.com/zsh-users/zsh), 19 | - desktop environment - [hyprland](https://github.com/hyprwm/Hyprland), 20 | - code editor - [neovim](https://github.com/neovim/neovim), 21 | - app launcher - [rofi](https://github.com/adi1090x/rofi), 22 | - bar / desktop widgets - [eww](https://github.com/elkowar/eww), 23 | - and much more! 24 | 25 | Other than that, this config is also integrated with [catppuccin/nix](https://github.com/catppuccin/nix); which regularly adds support for more apps. 26 | 27 | ## Usage 28 | 29 | - SUPER + S / Print Screen - Screenshot, 30 | - SUPER + R - App Launcher, 31 | - SUPER + W - Change Wallpaper, 32 | - SUPER + A - Lock, 33 | - SUPER + E - Toggle Window Split (Horizontal / Vertical), 34 | - SUPER + F - Start Browser, 35 | - SUPER + T - Start Terminal, 36 | - SUPER + Y - Enter a TTY Session, 37 | - SUPER + L - Change Workspace (Direction: Right), 38 | - SUPER + H - Change Workspace (Direction: Left), 39 | - SUPER + Q - Kill Active Window, 40 | - SUPER + V - Make Active Window Float, 41 | - SUPER + J - Fullscreen Active Window, 42 | - SUPER + RMB - Resize Active Window, 43 | - SUPER + LMB - Move Active Window, 44 | - CTRL + L - Change Workspace With Active Window (Direction: Right), 45 | - CTRL + H - Change Workspace With Active Window (Direction: Left), 46 | 47 | ### Neovim 48 | 49 | Checkout [`dotfiles/.config/nvim/README.md`](https://github.com/Khenziii/nixos-config/blob/master/dotfiles/.config/nvim/README.md). It covers those topics: 50 | 51 | 1. Keybindings 52 | 2. Plugins 53 | 3. Language Support 54 | 4. Code Formatting 55 | 56 | ### Shell 57 | 58 | For every detail, see [`home-manager/modules/packages/shell`](https://github.com/Khenziii/nixos-config/tree/master/home-manager/modules/packages/shell). 59 | 60 | TL;DR: you can accept autosuggestions using `'a`, and exit insert mode with `'j`. 61 | 62 | ## 63 | 64 | If you have more questions, feel free to reach out to me! 65 | 66 | ## Documentation 67 | 68 | Every previously mentioned module (`nixos/`, `home-manager/`, `shared/`, `dotfiles/`) has it's own docs placed in `/README.md`. If you're going to read them, the recommended order is: 69 | 70 | 1. [`dotfiles/`](https://github.com/Khenziii/nixos-config/blob/master/dotfiles/README.md) 71 | 2. [`nixos/`](https://github.com/Khenziii/nixos-config/blob/master/nixos/README.md) 72 | 3. [`home-manager/`](https://github.com/Khenziii/nixos-config/blob/master/home-manager/README.md) 73 | 4. [`shared/`](https://github.com/Khenziii/nixos-config/blob/master/shared/README.md) 74 | 75 | If you're not familiar with Nix, checkout [this](https://nixos.org/) page; in short, NixOS is a opinionated Linux distro which focuses on reproducibility. Nix is both a package manager, and a programming language at the same time. 76 | 77 | ## Installation 78 | 79 | You can setup this configuration in many different ways. 80 | 81 | ### Using The Installer (`install.sh`) 82 | 83 | I have written a minimal script for linking the dotfiles and switching to the NixOS configuration: 84 | 85 | ```shell 86 | $ curl https://raw.githubusercontent.com/Khenziii/nixos-config/master/install.sh > install.sh && sudo chmod +x install.sh && sudo ./install.sh && rm -f install.sh 87 | ``` 88 | 89 | > [!TIP] 90 | > Running this script, requires having `git` and `stow` installed. If you're on NixOS, you can temporarily enter a shell session with them available using this command: 91 | > 92 | > ```shell 93 | > $ nix-shell -p git stow 94 | > ``` 95 | 96 | 97 | > [!TIP] 98 | > By default, the script shows a warning requesting the user to make sure that they want to proceed at startup. To override it, you can pass `y` as the first parameter when calling the script: 99 | > 100 | > ```shell 101 | > $ curl https://raw.githubusercontent.com/Khenziii/nixos-config/master/install.sh > install.sh && sudo chmod +x install.sh && sudo ./install.sh y && rm -f install.sh 102 | > ``` 103 | 104 | > [!CAUTION] 105 | > `curl`'ing a file like this and executing it as root without necessary attention is extremely dangerous. 106 | > 107 | > **make sure to read the content of this script before running it!!! ** 108 | 109 | ### Manually 110 | 111 | If you don't want to run a random script originating from a random github repo (which is totally understandable, I'd be cautious too), you can execute the commands yourself: 112 | 113 | ```shell 114 | $ git clone https://github.com/Khenziii/nixos-config 115 | $ cd nixos-config 116 | $ stow --no-folding --adopt -t ~ dotfiles 117 | $ touch ~/.config/hypr/monitors.conf 118 | $ touch ~/.config/hypr/workspaces.conf 119 | $ sudo nixos-generate-config 120 | $ sudo nixos-rebuild switch --flake ".#iusenixosbtw" --impure 121 | $ home-manager switch --flake ".#khenzii" 122 | ``` 123 | 124 | `monitors.conf` and `workspaces.conf` are both files created by `nwg-displays` (output configuration utility). They're imported from `hyprland.conf`, so we create empty placeholders to avoid errors. 125 | 126 | ## 127 | 128 | Remember, there's nothing stopping you from using the code however you like to! It's licensed under `GPL-3.0`. If you want to, you can use only the dotfiles like this: 129 | 130 | ```shell 131 | $ git clone https://github.com/Khenziii/nixos-config 132 | $ cd nixos-config 133 | $ stow --no-folding --adopt -t ~ dotfiles 134 | $ touch ~/.config/hypr/monitors.conf 135 | $ touch ~/.config/hypr/workspaces.conf 136 | ``` 137 | 138 | The choice is up to you! 139 | 140 | -------------------------------------------------------------------------------- /assets/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Khenziii/nixos-config/fc26739c7a2a50de2d12c37ac8a6c182dcb0f2a6/assets/preview.png -------------------------------------------------------------------------------- /dotfiles/.config/asm-lsp/.asm-lsp.toml: -------------------------------------------------------------------------------- 1 | version = "0.7.4" 2 | 3 | [assemblers] 4 | gas = true 5 | go = false 6 | z80 = false 7 | 8 | [instruction_sets] 9 | x86 = false 10 | x86_64 = true 11 | z80 = false 12 | 13 | -------------------------------------------------------------------------------- /dotfiles/.config/discord/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "SKIP_HOST_UPDATE": true, 3 | "chromiumSwitches": {}, 4 | "IS_MAXIMIZED": false, 5 | "IS_MINIMIZED": false, 6 | "WINDOW_BOUNDS": { 7 | "x": 22, 8 | "y": 80, 9 | "width": 2516, 10 | "height": 1338 11 | }, 12 | "MINIMIZE_TO_TRAY": false, 13 | "OPEN_ON_STARTUP": false, 14 | "BACKGROUND_COLOR": "#2c2d32", 15 | "DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING": true 16 | } -------------------------------------------------------------------------------- /dotfiles/.config/eww/eww.scss: -------------------------------------------------------------------------------- 1 | window { 2 | background-color: transparent; 3 | } 4 | 5 | .container { 6 | padding: 10px; 7 | border-radius: 5px; 8 | background-color: #1e1e2e; 9 | color: #cba6f7; 10 | margin-left: 5px; 11 | margin-right: 5px; 12 | } 13 | 14 | progress { 15 | border: none; 16 | border-radius: 3px; 17 | background-color: #cba6f7; 18 | } 19 | 20 | .progress-bar { 21 | > trough { 22 | border: none; 23 | border-radius: 3px; 24 | background-color: #181825; 25 | } 26 | } 27 | 28 | button { 29 | all: unset; 30 | font-size: 32px; 31 | } 32 | 33 | .power-button { 34 | &:hover { 35 | color: darken(#cba6f7, 10%); 36 | } 37 | 38 | &:active { 39 | color: #ae25a7; 40 | } 41 | } 42 | 43 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/eww.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/bar/bar.yuck") 2 | (include "./widgets/calendar-menu/calendar-menu.yuck") 3 | 4 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/scripts/cava.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # This handy one liner was grabbed from: 4 | # https://github.com/elkowar/eww/issues/230 5 | # Special thanks to: @JustSimplyKyle (https://github.com/JustSimplyKyle) 6 | 7 | printf "[general]\nframerate=60\nbars = 15\n[output]\nmethod = raw\nraw_target = /dev/stdout\ndata_format = ascii\nascii_max_range = 7\n" | cava -p /dev/stdin | sed -u 's/;//g;s/0/▁/g;s/1/▂/g;s/2/▃/g;s/3/▄/g;s/4/▅/g;s/5/▆/g;s/6/▇/g;s/7/█/g;' 8 | 9 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/scripts/get-song-artist-album.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | currently_playing=$(dbus-send --print-reply --session --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'Metadata') 4 | 5 | title=$(echo "$currently_playing" | awk -F '"' '/xesam:title/ {getline; print $2}') 6 | artist=$(echo "$currently_playing" | awk -F '"' '/xesam:artist/ {getline; getline; print $2}') 7 | album=$(echo "$currently_playing" | awk -F '"' '/xesam:album/ {getline; print $2}') 8 | 9 | formatted_output="\"${title}\" from \"${album}\" by ${artist}" 10 | 11 | # If title is the same as album, or our formatted 12 | # string is too long, shorten it by removing the album. 13 | if [ "$title" = "$album" ] || [ ${#formatted_output} -gt 50 ]; then 14 | formatted_output="\"${title}\" by ${artist}" 15 | fi 16 | 17 | if [ -z "$title" ]; then 18 | formatted_output=";)" 19 | fi 20 | 21 | echo "$formatted_output" 22 | 23 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/scripts/lock.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | swaylock 4 | 5 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/scripts/power-off.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | shutdown now 4 | 5 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/scripts/reboot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | reboot 4 | 5 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/scripts/toggle-calendar-menu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | eww open --toggle calendar-menu 4 | 5 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/bar/bar.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/bar/clock.yuck") 2 | 3 | (defwindow bar 4 | :monitor 0 5 | :geometry (geometry 6 | :anchor "top center" 7 | :y "20px" 8 | ) 9 | :exclusive true 10 | (eventbox 11 | :onhover "~/.config/eww/scripts/toggle-calendar-menu.sh" 12 | (box 13 | :spacing 25 14 | :orientation "horizontal" 15 | :class "container" 16 | (clock) 17 | ) 18 | ) 19 | ) 20 | 21 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/bar/clock.yuck: -------------------------------------------------------------------------------- 1 | (defpoll time 2 | :interval "1s" 3 | :initial "00:00" 4 | `date +%H:%M` 5 | ) 6 | 7 | (defwidget clock [] 8 | (label 9 | :text time 10 | ) 11 | ) 12 | 13 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/audio-ui/audio-ui.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/calendar-menu/audio-ui/cava.yuck") 2 | (include "./widgets/calendar-menu/audio-ui/song-artist-album.yuck") 3 | 4 | (defwidget audio-ui [] 5 | (box 6 | :orientation "vertical" 7 | :halign "center" 8 | :hexpand false 9 | :space-evenly false 10 | :spacing 10 11 | (song-artist-album) 12 | (cava) 13 | ) 14 | ) 15 | 16 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/audio-ui/cava.yuck: -------------------------------------------------------------------------------- 1 | (deflisten cava-output 2 | :initial "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁" 3 | `sh ~/.config/eww/scripts/cava.sh` 4 | ) 5 | 6 | (defwidget cava [] 7 | (label 8 | :text cava-output 9 | ) 10 | ) 11 | 12 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/audio-ui/song-artist-album.yuck: -------------------------------------------------------------------------------- 1 | (defpoll song-artist-album-string 2 | :interval "1s" 3 | :initial ";)" 4 | `sh ~/.config/eww/scripts/get-song-artist-album.sh` 5 | ) 6 | 7 | (defwidget song-artist-album [] 8 | (label 9 | :text song-artist-album-string 10 | :wrap true 11 | :justify "center" 12 | ) 13 | ) 14 | 15 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/calendar-menu.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/calendar-menu/usage-bars/usage-bars.yuck") 2 | (include "./widgets/calendar-menu/power-buttons/power-buttons.yuck") 3 | (include "./widgets/calendar-menu/audio-ui/audio-ui.yuck") 4 | 5 | ( 6 | defwindow calendar-menu 7 | :monitor 0 8 | :exclusive false 9 | :stacking "overlay" 10 | :geometry (geometry 11 | :anchor "top center" 12 | :y -50 13 | ) 14 | (eventbox 15 | :onhoverlost "~/.config/eww/scripts/toggle-calendar-menu.sh" 16 | (box 17 | :orientation "vertical" 18 | :class "container" 19 | :space-evenly false 20 | :spacing 10 21 | (calendar) 22 | (box 23 | :orientation "vertical" 24 | :halign "center" 25 | :spacing 10 26 | (battery) 27 | (cpu) 28 | (disk) 29 | (memory) 30 | ) 31 | (audio-ui) 32 | (box 33 | :orientation "horizontal" 34 | :halign "center" 35 | :spacing 50 36 | (lock) 37 | (reboot) 38 | (power-off) 39 | ) 40 | ) 41 | ) 42 | ) 43 | 44 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/power-buttons/lock.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/calendar-menu/power-buttons/power-button.yuck") 2 | 3 | (defwidget lock [] 4 | (power-button 5 | :script-path "~/.config/eww/scripts/lock.sh" 6 | :icon "" 7 | :tooltip-text "Lock" 8 | ) 9 | ) 10 | 11 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/power-buttons/power-button.yuck: -------------------------------------------------------------------------------- 1 | (defwidget power-button [script-path icon tooltip-text] 2 | (tooltip 3 | (label 4 | :text tooltip-text 5 | ) 6 | (button 7 | :class "power-button" 8 | :onclick script-path 9 | :timeout "60s" 10 | icon 11 | ) 12 | ) 13 | ) 14 | 15 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/power-buttons/power-buttons.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/calendar-menu/power-buttons/lock.yuck") 2 | (include "./widgets/calendar-menu/power-buttons/power-off.yuck") 3 | (include "./widgets/calendar-menu/power-buttons/reboot.yuck") 4 | 5 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/power-buttons/power-off.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/calendar-menu/power-buttons/power-button.yuck") 2 | 3 | (defwidget power-off [] 4 | (power-button 5 | :script-path "~/.config/eww/scripts/power-off.sh" 6 | :icon "" 7 | :tooltip-text "Shutdown Now" 8 | ) 9 | ) 10 | 11 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/power-buttons/reboot.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/calendar-menu/power-buttons/power-button.yuck") 2 | 3 | (defwidget reboot [] 4 | (power-button 5 | :script-path "~/.config/eww/scripts/reboot.sh" 6 | :icon "" 7 | :tooltip-text "Reboot" 8 | ) 9 | ) 10 | 11 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/usage-bars/battery.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/calendar-menu/usage-bars/usage-bar.yuck") 2 | 3 | (defwidget battery [] 4 | (usage-bar 5 | :tooltip-text {EWW_BATTERY.BAT0.status == "Charging" ? 6 | "Battery (Charging)" : 7 | "Battery (Discharging)"} 8 | :label-left-text {EWW_BATTERY.BAT0.capacity == 100.0 9 | ? "" 10 | : EWW_BATTERY.BAT0.capacity > 75.0 11 | ? "" 12 | : EWW_BATTERY.BAT0.capacity > 50.0 13 | ? "" 14 | : EWW_BATTERY.BAT0.capacity > 25.0 15 | ? "" 16 | : "" 17 | } 18 | :progress-value {EWW_BATTERY.BAT0.capacity} 19 | :label-right-text "${EWW_BATTERY.BAT0.capacity}%" 20 | ) 21 | ) 22 | 23 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/usage-bars/cpu.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/calendar-menu/usage-bars/usage-bar.yuck") 2 | 3 | (defwidget cpu [] 4 | (usage-bar 5 | :tooltip-text "CPU Usage" 6 | :label-left-text "" 7 | :progress-value {EWW_CPU.avg} 8 | :label-right-text "${round(EWW_CPU.avg, 0)}%" 9 | ) 10 | ) 11 | 12 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/usage-bars/disk.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/calendar-menu/usage-bars/usage-bar.yuck") 2 | 3 | (defwidget disk [] 4 | (usage-bar 5 | :tooltip-text "Disk Usage" 6 | :label-left-text "" 7 | :progress-value {EWW_DISK['/'].used_perc} 8 | :label-right-text "${round(EWW_DISK['/'].used_perc, 0)}%" 9 | ) 10 | ) 11 | 12 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/usage-bars/memory.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/calendar-menu/usage-bars/usage-bar.yuck") 2 | 3 | (defwidget memory [] 4 | (usage-bar 5 | :tooltip-text "RAM Usage" 6 | :label-left-text "" 7 | :progress-value {EWW_RAM.used_mem_perc} 8 | :label-right-text "${round(EWW_RAM.used_mem_perc, 0)}%" 9 | ) 10 | ) 11 | 12 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/usage-bars/usage-bar.yuck: -------------------------------------------------------------------------------- 1 | (defwidget usage-bar [tooltip-text label-left-text progress-value label-right-text] 2 | (tooltip 3 | (label 4 | :text tooltip-text 5 | ) 6 | (box 7 | :orientation "horizontal" 8 | :space-evenly false 9 | :spacing 10 10 | (label 11 | :text label-left-text 12 | ) 13 | (progress 14 | :orientation "horizontal" 15 | :class "progress-bar" 16 | :valign "center" 17 | :value progress-value 18 | :width 5 19 | ) 20 | (label 21 | :text label-right-text 22 | ) 23 | ) 24 | ) 25 | ) 26 | 27 | -------------------------------------------------------------------------------- /dotfiles/.config/eww/widgets/calendar-menu/usage-bars/usage-bars.yuck: -------------------------------------------------------------------------------- 1 | (include "./widgets/calendar-menu/usage-bars/battery.yuck") 2 | (include "./widgets/calendar-menu/usage-bars/cpu.yuck") 3 | (include "./widgets/calendar-menu/usage-bars/disk.yuck") 4 | (include "./widgets/calendar-menu/usage-bars/memory.yuck") 5 | 6 | -------------------------------------------------------------------------------- /dotfiles/.config/godot/editor_settings-4.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="EditorSettings" format=3] 2 | 3 | [resource] 4 | resource_local_to_scene = false 5 | resource_name = "" 6 | interface/editor/editor_language = "en" 7 | interface/editor/display_scale = 0 8 | interface/editor/editor_screen = -2 9 | interface/editor/project_manager_screen = -2 10 | interface/editor/debug/enable_pseudolocalization = false 11 | interface/editor/use_embedded_menu = false 12 | interface/editor/expand_to_title = true 13 | interface/editor/custom_display_scale = 1.0 14 | interface/editor/main_font_size = 14 15 | interface/editor/code_font_size = 14 16 | interface/editor/code_font_contextual_ligatures = 1 17 | interface/editor/code_font_custom_opentype_features = "" 18 | interface/editor/code_font_custom_variations = "" 19 | interface/editor/font_antialiasing = 1 20 | interface/editor/font_hinting = 0 21 | interface/editor/font_subpixel_positioning = 1 22 | interface/editor/main_font = "" 23 | interface/editor/main_font_bold = "" 24 | interface/editor/code_font = "" 25 | interface/editor/low_processor_mode_sleep_usec = 6900 26 | interface/editor/unfocused_low_processor_mode_sleep_usec = 100000 27 | interface/editor/separate_distraction_mode = false 28 | interface/editor/automatically_open_screenshots = true 29 | interface/editor/single_window_mode = false 30 | interface/editor/mouse_extra_buttons_navigate_history = true 31 | interface/editor/save_each_scene_on_quit = true 32 | interface/editor/accept_dialog_cancel_ok_buttons = 0 33 | interface/editor/show_internal_errors_in_toast_notifications = 0 34 | interface/inspector/max_array_dictionary_items_per_page = 20 35 | interface/inspector/show_low_level_opentype_features = false 36 | interface/inspector/float_drag_speed = 5.0 37 | interface/theme/preset = "Default" 38 | interface/theme/icon_and_font_color = 0 39 | interface/theme/base_color = Color(0.21, 0.24, 0.29, 1) 40 | interface/theme/accent_color = Color(0.44, 0.73, 0.98, 1) 41 | interface/theme/contrast = 0.3 42 | interface/theme/draw_extra_borders = false 43 | interface/theme/icon_saturation = 1.0 44 | interface/theme/relationship_line_opacity = 0.1 45 | interface/theme/border_size = 0 46 | interface/theme/corner_radius = 3 47 | interface/theme/additional_spacing = 0.0 48 | interface/theme/custom_theme = "" 49 | interface/touchscreen/increase_scrollbar_touch_area = false 50 | interface/touchscreen/enable_long_press_as_right_click = false 51 | interface/touchscreen/enable_pan_and_scale_gestures = false 52 | interface/touchscreen/scale_gizmo_handles = 1 53 | interface/scene_tabs/display_close_button = 1 54 | interface/scene_tabs/show_thumbnail_on_hover = true 55 | interface/scene_tabs/maximum_width = 350 56 | interface/scene_tabs/show_script_button = false 57 | interface/multi_window/enable = true 58 | interface/multi_window/restore_windows_on_load = true 59 | interface/multi_window/maximize_window = false 60 | filesystem/external_programs/raster_image_editor = "" 61 | filesystem/external_programs/vector_image_editor = "" 62 | filesystem/external_programs/audio_editor = "" 63 | filesystem/external_programs/3d_model_editor = "" 64 | filesystem/directories/autoscan_project_path = "" 65 | filesystem/directories/default_project_path = "/home/khenzii" 66 | filesystem/on_save/compress_binary_resources = true 67 | filesystem/on_save/safe_save_on_backup_then_rename = true 68 | filesystem/file_dialog/show_hidden_files = false 69 | filesystem/file_dialog/display_mode = 0 70 | filesystem/file_dialog/thumbnail_size = 64 71 | filesystem/import/blender/blender3_path = "" 72 | filesystem/import/blender/rpc_port = 6011 73 | filesystem/import/blender/rpc_server_uptime = 5 74 | filesystem/import/fbx/fbx2gltf_path = "" 75 | filesystem/tools/oidn/oidn_denoise_path = "" 76 | docks/scene_tree/start_create_dialog_fully_expanded = false 77 | docks/scene_tree/auto_expand_to_selected = true 78 | docks/filesystem/thumbnail_size = 64 79 | docks/filesystem/always_show_folders = true 80 | docks/filesystem/textfile_extensions = "txt,md,cfg,ini,log,json,yml,yaml,toml,xml" 81 | docks/property_editor/auto_refresh_interval = 0.2 82 | docks/property_editor/subresource_hue_tint = 0.75 83 | text_editor/theme/color_theme = "Default" 84 | text_editor/theme/highlighting/symbol_color = Color(0.67, 0.79, 1, 1) 85 | text_editor/theme/highlighting/keyword_color = Color(1, 0.44, 0.52, 1) 86 | text_editor/theme/highlighting/control_flow_keyword_color = Color(1, 0.55, 0.8, 1) 87 | text_editor/theme/highlighting/base_type_color = Color(0.26, 1, 0.76, 1) 88 | text_editor/theme/highlighting/engine_type_color = Color(0.56, 1, 0.86, 1) 89 | text_editor/theme/highlighting/user_type_color = Color(0.78, 1, 0.93, 1) 90 | text_editor/theme/highlighting/comment_color = Color(0.8025, 0.81, 0.8225, 0.5) 91 | text_editor/theme/highlighting/doc_comment_color = Color(0.6, 0.7, 0.8, 0.8) 92 | text_editor/theme/highlighting/string_color = Color(1, 0.93, 0.63, 1) 93 | text_editor/theme/highlighting/background_color = Color(0.1155, 0.132, 0.1595, 1) 94 | text_editor/theme/highlighting/completion_background_color = Color(0.21, 0.24, 0.29, 1) 95 | text_editor/theme/highlighting/completion_selected_color = Color(1, 1, 1, 0.07) 96 | text_editor/theme/highlighting/completion_existing_color = Color(1, 1, 1, 0.14) 97 | text_editor/theme/highlighting/completion_scroll_color = Color(1, 1, 1, 0.29) 98 | text_editor/theme/highlighting/completion_scroll_hovered_color = Color(1, 1, 1, 0.4) 99 | text_editor/theme/highlighting/completion_font_color = Color(0.8025, 0.81, 0.8225, 1) 100 | text_editor/theme/highlighting/text_color = Color(0.8025, 0.81, 0.8225, 1) 101 | text_editor/theme/highlighting/line_number_color = Color(0.8025, 0.81, 0.8225, 0.5) 102 | text_editor/theme/highlighting/safe_line_number_color = Color(0.8025, 0.972, 0.8225, 0.75) 103 | text_editor/theme/highlighting/caret_color = Color(1, 1, 1, 1) 104 | text_editor/theme/highlighting/caret_background_color = Color(0, 0, 0, 1) 105 | text_editor/theme/highlighting/text_selected_color = Color(0, 0, 0, 0) 106 | text_editor/theme/highlighting/selection_color = Color(0.44, 0.73, 0.98, 0.4) 107 | text_editor/theme/highlighting/brace_mismatch_color = Color(1, 0.47, 0.42, 1) 108 | text_editor/theme/highlighting/current_line_color = Color(1, 1, 1, 0.07) 109 | text_editor/theme/highlighting/line_length_guideline_color = Color(0.21, 0.24, 0.29, 1) 110 | text_editor/theme/highlighting/word_highlighted_color = Color(1, 1, 1, 0.07) 111 | text_editor/theme/highlighting/number_color = Color(0.63, 1, 0.88, 1) 112 | text_editor/theme/highlighting/function_color = Color(0.34, 0.7, 1, 1) 113 | text_editor/theme/highlighting/member_variable_color = Color(0.736, 0.88, 1, 1) 114 | text_editor/theme/highlighting/mark_color = Color(1, 0.47, 0.42, 0.3) 115 | text_editor/theme/highlighting/bookmark_color = Color(0.08, 0.49, 0.98, 1) 116 | text_editor/theme/highlighting/breakpoint_color = Color(1, 0.47, 0.42, 1) 117 | text_editor/theme/highlighting/executing_line_color = Color(0.98, 0.89, 0.27, 1) 118 | text_editor/theme/highlighting/code_folding_color = Color(1, 1, 1, 0.27) 119 | text_editor/theme/highlighting/folded_code_region_color = Color(0.68, 0.46, 0.77, 0.2) 120 | text_editor/theme/highlighting/search_result_color = Color(1, 1, 1, 0.07) 121 | text_editor/theme/highlighting/search_result_border_color = Color(0.41, 0.61, 0.91, 0.38) 122 | text_editor/appearance/caret/type = 0 123 | text_editor/appearance/caret/caret_blink = true 124 | text_editor/appearance/caret/caret_blink_interval = 0.5 125 | text_editor/appearance/caret/highlight_current_line = true 126 | text_editor/appearance/caret/highlight_all_occurrences = true 127 | text_editor/appearance/guidelines/show_line_length_guidelines = true 128 | text_editor/appearance/guidelines/line_length_guideline_soft_column = 80 129 | text_editor/appearance/guidelines/line_length_guideline_hard_column = 100 130 | text_editor/appearance/gutters/show_line_numbers = true 131 | text_editor/appearance/gutters/line_numbers_zero_padded = false 132 | text_editor/appearance/gutters/highlight_type_safe_lines = true 133 | text_editor/appearance/gutters/show_info_gutter = true 134 | text_editor/appearance/minimap/show_minimap = true 135 | text_editor/appearance/minimap/minimap_width = 80 136 | text_editor/appearance/lines/code_folding = true 137 | text_editor/appearance/lines/word_wrap = 0 138 | text_editor/appearance/lines/autowrap_mode = 3 139 | text_editor/appearance/whitespace/draw_tabs = true 140 | text_editor/appearance/whitespace/draw_spaces = false 141 | text_editor/appearance/whitespace/line_spacing = 4 142 | text_editor/behavior/navigation/move_caret_on_right_click = true 143 | text_editor/behavior/navigation/scroll_past_end_of_file = false 144 | text_editor/behavior/navigation/smooth_scrolling = true 145 | text_editor/behavior/navigation/v_scroll_speed = 80 146 | text_editor/behavior/navigation/drag_and_drop_selection = true 147 | text_editor/behavior/navigation/stay_in_script_editor_on_node_selected = true 148 | text_editor/behavior/indent/type = 0 149 | text_editor/behavior/indent/size = 4 150 | text_editor/behavior/indent/auto_indent = false 151 | text_editor/behavior/files/trim_trailing_whitespace_on_save = false 152 | text_editor/behavior/files/autosave_interval_secs = 0 153 | text_editor/behavior/files/restore_scripts_on_load = true 154 | text_editor/behavior/files/convert_indent_on_save = true 155 | text_editor/behavior/files/auto_reload_scripts_on_external_change = false 156 | text_editor/script_list/show_members_overview = true 157 | text_editor/script_list/sort_members_outline_alphabetically = false 158 | text_editor/completion/idle_parse_delay = 2.0 159 | text_editor/completion/auto_brace_complete = true 160 | text_editor/completion/code_complete_enabled = true 161 | text_editor/completion/code_complete_delay = 0.3 162 | text_editor/completion/put_callhint_tooltip_below_current_line = true 163 | text_editor/completion/complete_file_paths = true 164 | text_editor/completion/add_type_hints = false 165 | text_editor/completion/use_single_quotes = false 166 | text_editor/completion/colorize_suggestions = true 167 | text_editor/help/show_help_index = true 168 | text_editor/help/help_font_size = 16 169 | text_editor/help/help_source_font_size = 15 170 | text_editor/help/help_title_font_size = 23 171 | text_editor/help/class_reference_examples = 0 172 | editors/grid_map/pick_distance = 5000.0 173 | editors/3d/primary_grid_color = Color(0.56, 0.56, 0.56, 0.5) 174 | editors/3d/secondary_grid_color = Color(0.38, 0.38, 0.38, 0.5) 175 | editors/3d/selection_box_color = Color(1, 0.5, 0, 1) 176 | editors/3d_gizmos/gizmo_colors/instantiated = Color(0.7, 0.7, 0.7, 0.6) 177 | editors/3d_gizmos/gizmo_colors/joint = Color(0.5, 0.8, 1, 1) 178 | editors/3d_gizmos/gizmo_colors/shape = Color(0.5, 0.7, 1, 1) 179 | editors/3d/primary_grid_steps = 8 180 | editors/3d/grid_size = 200 181 | editors/3d/grid_division_level_max = 2 182 | editors/3d/grid_division_level_min = 0 183 | editors/3d/grid_division_level_bias = -0.2 184 | editors/3d/grid_xz_plane = true 185 | editors/3d/grid_xy_plane = false 186 | editors/3d/grid_yz_plane = false 187 | editors/3d/default_fov = 70.0 188 | editors/3d/default_z_near = 0.05 189 | editors/3d/default_z_far = 4000.0 190 | editors/3d/navigation/invert_x_axis = false 191 | editors/3d/navigation/invert_y_axis = false 192 | editors/3d/navigation/navigation_scheme = 0 193 | editors/3d/navigation/zoom_style = 0 194 | editors/3d/navigation/emulate_numpad = false 195 | editors/3d/navigation/emulate_3_button_mouse = false 196 | editors/3d/navigation/orbit_modifier = 0 197 | editors/3d/navigation/pan_modifier = 1 198 | editors/3d/navigation/zoom_modifier = 4 199 | editors/3d/navigation/warped_mouse_panning = true 200 | editors/3d/navigation_feel/orbit_sensitivity = 0.25 201 | editors/3d/navigation_feel/orbit_inertia = 0.0 202 | editors/3d/navigation_feel/translation_inertia = 0.05 203 | editors/3d/navigation_feel/zoom_inertia = 0.05 204 | editors/3d/freelook/freelook_navigation_scheme = 0 205 | editors/3d/freelook/freelook_sensitivity = 0.25 206 | editors/3d/freelook/freelook_inertia = 0.0 207 | editors/3d/freelook/freelook_base_speed = 5.0 208 | editors/3d/freelook/freelook_activation_modifier = 0 209 | editors/3d/freelook/freelook_speed_zoom_link = false 210 | editors/2d/grid_color = Color(1, 1, 1, 0.07) 211 | editors/2d/guides_color = Color(0.6, 0, 0.8, 1) 212 | editors/2d/smart_snapping_line_color = Color(0.9, 0.1, 0.1, 1) 213 | editors/2d/bone_width = 5.0 214 | editors/2d/bone_color1 = Color(1, 1, 1, 0.7) 215 | editors/2d/bone_color2 = Color(0.6, 0.6, 0.6, 0.7) 216 | editors/2d/bone_selected_color = Color(0.9, 0.45, 0.45, 0.7) 217 | editors/2d/bone_ik_color = Color(0.9, 0.9, 0.45, 0.7) 218 | editors/2d/bone_outline_color = Color(0.35, 0.35, 0.35, 0.5) 219 | editors/2d/bone_outline_size = 2.0 220 | editors/2d/viewport_border_color = Color(0.4, 0.4, 1, 0.4) 221 | editors/2d/use_integer_zoom_by_default = false 222 | editors/panning/2d_editor_panning_scheme = 0 223 | editors/panning/sub_editors_panning_scheme = 0 224 | editors/panning/animation_editors_panning_scheme = 1 225 | editors/panning/simple_panning = false 226 | editors/panning/warped_mouse_panning = true 227 | editors/panning/2d_editor_pan_speed = 20 228 | editors/tiles_editor/display_grid = true 229 | editors/tiles_editor/grid_color = Color(1, 0.5, 0.2, 0.5) 230 | editors/polygon_editor/point_grab_radius = 8 231 | editors/polygon_editor/show_previous_outline = true 232 | editors/animation/autorename_animation_tracks = true 233 | editors/animation/default_create_bezier_tracks = false 234 | editors/animation/default_create_reset_tracks = true 235 | editors/animation/onion_layers_past_color = Color(1, 0, 0, 1) 236 | editors/animation/onion_layers_future_color = Color(0, 1, 0, 1) 237 | editors/shader_editor/behavior/files/restore_shaders_on_load = true 238 | editors/visual_editors/minimap_opacity = 0.85 239 | editors/visual_editors/lines_curvature = 0.5 240 | editors/visual_editors/visual_shader/port_preview_size = 160 241 | run/window_placement/rect = 1 242 | run/window_placement/rect_custom_position = Vector2(0, 0) 243 | run/window_placement/screen = -5 244 | run/window_placement/android_window = 0 245 | run/auto_save/save_before_running = true 246 | run/output/font_size = 13 247 | run/output/always_clear_output_on_play = true 248 | run/output/always_open_output_on_play = true 249 | run/output/always_close_output_on_stop = false 250 | network/debug/remote_host = "127.0.0.1" 251 | network/debug/remote_port = 6007 252 | network/tls/editor_tls_certificates = "" 253 | debugger/auto_switch_to_remote_scene_tree = false 254 | debugger/profiler_frame_history_size = 3600 255 | debugger/profiler_frame_max_functions = 64 256 | debugger/remote_scene_tree_refresh_interval = 1.0 257 | debugger/remote_inspect_refresh_interval = 0.2 258 | network/http_proxy/host = "" 259 | network/http_proxy/port = 8080 260 | project_manager/sorting_order = 0 261 | project_manager/default_renderer = "gl_compatibility" 262 | asset_library/available_urls = { 263 | "godotengine.org (Official)": "https://godotengine.org/asset-library/api" 264 | } 265 | asset_library/use_threads = true 266 | export/android/java_sdk_path = "" 267 | export/android/android_sdk_path = "" 268 | export/android/debug_keystore = "" 269 | export/android/debug_keystore_user = "androiddebugkey" 270 | export/android/debug_keystore_pass = "android" 271 | export/android/force_system_user = false 272 | export/android/shutdown_adb_on_exit = true 273 | export/android/one_click_deploy_clear_previous_install = false 274 | export/android/use_wifi_for_remote_debug = false 275 | export/android/wifi_remote_debug_host = "localhost" 276 | export/macos/rcodesign = "" 277 | export/web/http_host = "localhost" 278 | export/web/http_port = 8060 279 | export/web/use_tls = false 280 | export/web/tls_key = "" 281 | export/web/tls_certificate = "" 282 | export/windows/rcedit = "" 283 | export/windows/osslsigncode = "" 284 | export/windows/wine = "" 285 | interface/editor/save_on_focus_loss = false 286 | interface/editor/show_update_spinner = false 287 | interface/editor/update_continuously = false 288 | interface/editor/localize_settings = true 289 | interface/scene_tabs/restore_scenes_on_load = true 290 | interface/inspector/default_property_name_style = 1 291 | interface/inspector/default_float_step = 0.001 292 | interface/inspector/disable_folding = false 293 | interface/inspector/auto_unfold_foreign_scenes = true 294 | interface/inspector/horizontal_vector2_editing = false 295 | interface/inspector/horizontal_vector_types_editing = true 296 | interface/inspector/open_resources_in_current_inspector = true 297 | interface/inspector/resources_to_open_in_new_inspector = PackedStringArray("Script", "MeshLibrary") 298 | interface/inspector/default_color_picker_mode = 0 299 | interface/inspector/default_color_picker_shape = 3 300 | _default_feature_profile = "" 301 | interface/editors/show_scene_tree_root_selection = true 302 | interface/editors/derive_script_globals_by_name = true 303 | docks/scene_tree/ask_before_deleting_related_animation_tracks = true 304 | _use_favorites_root_selection = false 305 | filesystem/file_server/port = 6010 306 | filesystem/file_server/password = "" 307 | editors/3d/manipulator_gizmo_size = 80 308 | editors/3d/manipulator_gizmo_opacity = 0.9 309 | editors/3d/navigation/show_viewport_rotation_gizmo = true 310 | editors/3d/navigation/show_viewport_navigation_gizmo = false 311 | text_editor/behavior/files/auto_reload_and_parse_scripts_on_save = true 312 | text_editor/behavior/files/open_dominant_script_on_scene_change = true 313 | text_editor/external/use_external_editor = true 314 | text_editor/external/exec_path = "/home/khenzii/.nix-profile/bin/nvim" 315 | text_editor/script_list/script_temperature_enabled = true 316 | text_editor/script_list/script_temperature_history_size = 15 317 | text_editor/script_list/group_help_pages = true 318 | text_editor/script_list/sort_scripts_by = 0 319 | text_editor/script_list/list_script_names_as = 0 320 | text_editor/external/exec_flags = "--server 127.0.0.1:55432 --remote-send \":n {file}:call cursor({line},{col})\"" 321 | version_control/username = "" 322 | version_control/ssh_public_key_path = "" 323 | version_control/ssh_private_key_path = "" 324 | editors/bone_mapper/handle_colors/unset = Color(0.3, 0.3, 0.3, 1) 325 | editors/bone_mapper/handle_colors/set = Color(0.1, 0.6, 0.25, 1) 326 | editors/bone_mapper/handle_colors/missing = Color(0.8, 0.2, 0.8, 1) 327 | editors/bone_mapper/handle_colors/error = Color(0.8, 0.2, 0.2, 1) 328 | network/debug_adapter/remote_port = 6006 329 | network/debug_adapter/request_timeout = 1000 330 | network/debug_adapter/sync_breakpoints = false 331 | editors/3d_gizmos/gizmo_settings/path3d_tilt_disk_size = 0.8 332 | editors/3d_gizmos/gizmo_colors/path = Color(0.5, 0.5, 1, 0.9) 333 | editors/3d_gizmos/gizmo_colors/path_tilt = Color(1, 1, 0.4, 0.9) 334 | editors/3d_gizmos/gizmo_colors/skeleton = Color(1, 0.8, 0.4, 1) 335 | editors/3d_gizmos/gizmo_colors/selected_bone = Color(0.8, 0.3, 0, 1) 336 | editors/3d_gizmos/gizmo_settings/bone_axis_length = 0.1 337 | editors/3d_gizmos/gizmo_settings/bone_shape = 1 338 | editors/3d_gizmos/gizmo_colors/csg = Color(0, 0.4, 1, 0.15) 339 | editors/grid_map/editor_side = 1 340 | editors/grid_map/palette_min_width = 230 341 | editors/grid_map/preview_size = 64 342 | export/ssh/ssh = "" 343 | export/ssh/scp = "" 344 | network/language_server/remote_host = "127.0.0.1" 345 | network/language_server/remote_port = 6005 346 | network/language_server/enable_smart_resolve = true 347 | network/language_server/show_native_symbols_in_editor = false 348 | network/language_server/use_thread = false 349 | network/language_server/poll_limit_usec = 100000 350 | editors/3d_gizmos/gizmo_colors/camera = Color(0.8, 0.4, 0.8, 1) 351 | editors/3d_gizmos/gizmo_colors/stream_player_3d = Color(0.4, 0.8, 1, 1) 352 | editors/3d_gizmos/gizmo_colors/occluder = Color(0.8, 0.5, 1, 1) 353 | editors/3d_gizmos/gizmo_colors/visibility_notifier = Color(0.8, 0.5, 0.7, 1) 354 | editors/3d_gizmos/gizmo_colors/particles = Color(0.8, 0.7, 0.4, 1) 355 | editors/3d_gizmos/gizmo_colors/particle_attractor = Color(1, 0.7, 0.5, 1) 356 | editors/3d_gizmos/gizmo_colors/particle_collision = Color(0.5, 0.7, 1, 1) 357 | editors/3d_gizmos/gizmo_colors/reflection_probe = Color(0.6, 1, 0.5, 1) 358 | editors/3d_gizmos/gizmo_colors/decal = Color(0.6, 0.5, 1, 1) 359 | editors/3d_gizmos/gizmo_colors/voxel_gi = Color(0.5, 1, 0.6, 1) 360 | editors/3d_gizmos/gizmo_colors/lightmap_lines = Color(0.5, 0.6, 1, 1) 361 | editors/3d_gizmos/gizmo_colors/lightprobe_lines = Color(0.5, 0.6, 1, 1) 362 | editors/3d_gizmos/gizmo_colors/joint_body_a = Color(0.6, 0.8, 1, 1) 363 | editors/3d_gizmos/gizmo_colors/joint_body_b = Color(0.6, 0.9, 1, 1) 364 | editors/3d_gizmos/gizmo_colors/fog_volume = Color(0.5, 0.7, 1, 1) 365 | text_editor/theme/highlighting/gdscript/function_definition_color = Color(0.4, 0.9, 1, 1) 366 | text_editor/theme/highlighting/gdscript/global_function_color = Color(0.64, 0.64, 0.96, 1) 367 | text_editor/theme/highlighting/gdscript/node_path_color = Color(0.72, 0.77, 0.49, 1) 368 | text_editor/theme/highlighting/gdscript/node_reference_color = Color(0.39, 0.76, 0.35, 1) 369 | text_editor/theme/highlighting/gdscript/annotation_color = Color(1, 0.7, 0.45, 1) 370 | text_editor/theme/highlighting/gdscript/string_name_color = Color(1, 0.76, 0.65, 1) 371 | text_editor/theme/highlighting/comment_markers/critical_color = Color(0.77, 0.35, 0.35, 1) 372 | text_editor/theme/highlighting/comment_markers/warning_color = Color(0.72, 0.61, 0.48, 1) 373 | text_editor/theme/highlighting/comment_markers/notice_color = Color(0.56, 0.67, 0.51, 1) 374 | text_editor/theme/highlighting/comment_markers/critical_list = "ALERT,ATTENTION,CAUTION,CRITICAL,DANGER,SECURITY" 375 | text_editor/theme/highlighting/comment_markers/warning_list = "BUG,DEPRECATED,FIXME,HACK,TASK,TBD,TODO,WARNING" 376 | text_editor/theme/highlighting/comment_markers/notice_list = "INFO,NOTE,NOTICE,TEST,TESTING" 377 | shortcuts = [] 378 | builtin_action_overrides = [] 379 | metadata/script_setup_templates_dictionary = { 380 | "CharacterBody3D": "0CharacterBody3DBasic Movement", 381 | "Node": "0NodeDefault" 382 | } 383 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/core/core.conf: -------------------------------------------------------------------------------- 1 | source = monitor.conf 2 | source = general.conf 3 | source = decoration.conf 4 | source = dwindle.conf 5 | source = keybindings.conf 6 | source = env-variables.conf 7 | source = input.conf 8 | source = startup.conf 9 | 10 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/core/decoration.conf: -------------------------------------------------------------------------------- 1 | decoration { 2 | rounding = 5 3 | 4 | active_opacity = 1.0 5 | inactive_opacity = 1.0 6 | fullscreen_opacity = 1.0 7 | 8 | shadow_range = 10 9 | shadow_render_power = 3 10 | col.shadow = rgba(cba6f7ff) 11 | col.shadow_inactive = rgba(cba6f744) 12 | shadow_offset = 0 0 13 | 14 | # dim_inactive = true 15 | # dim_strength = 0.4 16 | 17 | blur { 18 | size = 2 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/core/dwindle.conf: -------------------------------------------------------------------------------- 1 | dwindle { 2 | preserve_split = true 3 | } 4 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/core/env-variables.conf: -------------------------------------------------------------------------------- 1 | env = XCURSOR_SIZE,24 2 | env = HYPRCURSOR_SIZE,24 3 | 4 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/core/general.conf: -------------------------------------------------------------------------------- 1 | general { 2 | gaps_in = 5 3 | gaps_out = 20 4 | gaps_workspaces = 5 5 | 6 | border_size = 2 7 | col.inactive_border = rgba(cba6f744) 8 | col.active_border = rgba(cba6f7ff) 9 | resize_on_border = true 10 | extend_border_grab_area = 20 11 | 12 | layout = dwindle 13 | } 14 | 15 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/core/input.conf: -------------------------------------------------------------------------------- 1 | input { 2 | numlock_by_default = true 3 | kb_layout = pl 4 | kb_options = lv3:lalt_switch 5 | } 6 | 7 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/core/keybindings.conf: -------------------------------------------------------------------------------- 1 | $terminal = kitty 2 | $safety-terminal = konsole 3 | $browser = firefox 4 | $lock = swaylock 5 | 6 | # apps 7 | bind = SUPER, T, exec, $terminal 8 | bind = SUPER, K, exec, $safety-terminal 9 | bind = SUPER, F, exec, $browser 10 | bind = SUPER, A, exec, $lock 11 | bind = SUPER, Y, exec, chvt 1 12 | 13 | # window management 14 | bind = SUPER, E, togglesplit, 15 | bind = SUPER, L, workspace, +1 16 | bind = SUPER, H, workspace, -1 17 | bind = SUPER, Q, killactive, 18 | bind = SUPER, V, togglefloating, 19 | bind = SUPER, J, fullscreen, 0 20 | bindm = SUPER, mouse:272, movewindow 21 | bindm = SUPER, mouse:273, resizewindow 22 | bind = CTRL, L, movetoworkspace, +1 23 | bind = CTRL, H, movetoworkspace, -1 24 | # bind = SHIFT, L, movefocus, r 25 | # bind = SHIFT, H, movefocus, l 26 | # bind = SHIFT, J, movefocus, d 27 | # bind = SHIFT, K, movefocus, u 28 | # bind = SUPER, L, movewindow, r 29 | # bind = SUPER, H, movewindow, l 30 | # bind = SUPER, J, movewindow, d 31 | # bind = SUPER, K, movewindow, u 32 | 33 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/core/monitor.conf: -------------------------------------------------------------------------------- 1 | monitor=,preferred,auto,1 2 | 3 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/core/startup.conf: -------------------------------------------------------------------------------- 1 | # Applications 2 | exec-once = spotify 3 | exec-once = discord 4 | exec-once = firefox 5 | exec-once = kitty 6 | 7 | # Background Tasks 8 | exec-once = nm-applet 9 | exec-once = lxsession 10 | 11 | # Settings 12 | exec-once = xhost +SI:localuser:root 13 | 14 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/brightnessctl.conf: -------------------------------------------------------------------------------- 1 | bind = , XF86MonBrightnessUp, exec, brightnessctl s +5% 2 | bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%- 3 | 4 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/eww.conf: -------------------------------------------------------------------------------- 1 | exec-once = eww daemon && (eww open bar) 2 | 3 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/external.conf: -------------------------------------------------------------------------------- 1 | source = swww/swww.conf 2 | source = rofi.conf 3 | source = hyprshot.conf 4 | source = brightnessctl.conf 5 | source = eww.conf 6 | 7 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/hyprshot.conf: -------------------------------------------------------------------------------- 1 | env = HYPRSHOT_DIR,./Pictures/Screenshots 2 | 3 | bind = SUPER, S, exec, hyprshot --mode region 4 | bind = , PRINT, exec, hyprshot --mode region 5 | 6 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/rofi.conf: -------------------------------------------------------------------------------- 1 | bind = SUPER, R, exec, rofi -show drun 2 | 3 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/swww/all-wallpapers/catppuccin-kitty.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Khenziii/nixos-config/fc26739c7a2a50de2d12c37ac8a6c182dcb0f2a6/dotfiles/.config/hypr/external/swww/all-wallpapers/catppuccin-kitty.webp -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/swww/all-wallpapers/catppuccin-nixos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Khenziii/nixos-config/fc26739c7a2a50de2d12c37ac8a6c182dcb0f2a6/dotfiles/.config/hypr/external/swww/all-wallpapers/catppuccin-nixos.png -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/swww/all-wallpapers/readme.txt: -------------------------------------------------------------------------------- 1 | Copy wallpapers from this directory to ../enabled-wallpapers in order to enable them. 2 | 3 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/swww/all-wallpapers/snowy-home.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Khenziii/nixos-config/fc26739c7a2a50de2d12c37ac8a6c182dcb0f2a6/dotfiles/.config/hypr/external/swww/all-wallpapers/snowy-home.jpg -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/swww/current-wallpaper/snowy-home.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Khenziii/nixos-config/fc26739c7a2a50de2d12c37ac8a6c182dcb0f2a6/dotfiles/.config/hypr/external/swww/current-wallpaper/snowy-home.jpg -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/swww/enabled-wallpapers/catppuccin-nixos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Khenziii/nixos-config/fc26739c7a2a50de2d12c37ac8a6c182dcb0f2a6/dotfiles/.config/hypr/external/swww/enabled-wallpapers/catppuccin-nixos.png -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/swww/set-random-wallpaper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | script_directory=~/.config/hypr/external/swww/ 4 | 5 | # get names of all the wallpapers 6 | wallpapers=( $(ls -1 $script_directory/enabled-wallpapers) ) 7 | 8 | # get a random wallpaper 9 | wallpapers_count=${#wallpapers[@]} 10 | random_index=$((RANDOM % wallpapers_count)) 11 | 12 | random_wallpaper=${wallpapers[$random_index]} 13 | 14 | # move old wallpaper out of current-wallpaper directory 15 | mv $script_directory/current-wallpaper/* $script_directory/enabled-wallpapers 16 | 17 | # move new wallpaper to current-wallpaper directory 18 | mv $script_directory/enabled-wallpapers/$random_wallpaper $script_directory/current-wallpaper/ 19 | 20 | # make swww use it 21 | swww img $script_directory/current-wallpaper/$random_wallpaper --fill-color=1e1e2e --resize=fit 22 | 23 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/external/swww/swww.conf: -------------------------------------------------------------------------------- 1 | $change-wallpaper=~/.config/hypr/external/swww/set-random-wallpaper.sh 2 | 3 | env = SWWW_TRANSITION,wipe 4 | env = SWWW_TRANSITION_STEP,255 5 | env = SWWW_TRANSITION_DURATION,2 6 | env = SWWW_TRANSITION_FPS,144 7 | env = SWWW_TRANSITION_ANGLE,45 8 | env = "SWWW_TRANSITION_BEZIER,0.75,0,0.30,1" 9 | 10 | exec-once = swww-daemon 11 | # `sleep 3` is necessary, because we need 12 | # to give the daemon some time to correctly 13 | # initialize & start accepting requests. 14 | # exec-once = sleep 3 && $change-wallpaper 15 | 16 | bind = SUPER, W, exec, $change-wallpaper 17 | 18 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | source = nwg-displays.conf 2 | source = core/core.conf 3 | source = external/external.conf 4 | 5 | -------------------------------------------------------------------------------- /dotfiles/.config/hypr/nwg-displays.conf: -------------------------------------------------------------------------------- 1 | # Most of external programs are configured in the `external` module, 2 | # however `nwg-displays` is an exception as it's configuration files 3 | # need to be loaded before `monitor.conf` in `core`. 4 | 5 | source = ~/.config/hypr/monitors.conf 6 | source = ~/.config/hypr/workspaces.conf 7 | 8 | -------------------------------------------------------------------------------- /dotfiles/.config/kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | # For more info, see https://sw.kovidgoyal.net/kitty/conf/ 2 | 3 | font_size 15.0 4 | font_family "Hack" 5 | 6 | background #171617 7 | background_opacity 0.8 8 | 9 | confirm_os_window_close 0 10 | 11 | term xterm-256color 12 | -------------------------------------------------------------------------------- /dotfiles/.config/neofetch/config.conf: -------------------------------------------------------------------------------- 1 | # See this wiki page for more info: 2 | # https://github.com/dylanaraps/neofetch/wiki/Customizing-Info 3 | 4 | print_info() { 5 | info title 6 | 7 | prin "--------" 8 | prin "Software" 9 | prin "--------" 10 | 11 | info "OS" distro 12 | info "Kernel" kernel 13 | info "DE" de 14 | info "WM" wm 15 | info "Packages" packages 16 | 17 | prin "--------" 18 | prin "Hardware" 19 | prin "--------" 20 | 21 | info "Host" model 22 | info "CPU" cpu 23 | info "GPU" gpu 24 | info "Resolution" resolution 25 | 26 | prin "----" 27 | prin "Misc" 28 | prin "----" 29 | 30 | info "Uptime" uptime 31 | info "Memory" memory 32 | info "Disk" disk 33 | info "Battery" battery 34 | info "Song" song 35 | } 36 | 37 | distro_shorthand="on" 38 | 39 | os_arch="on" 40 | 41 | uptime_shorthand="off" 42 | 43 | memory_percent="on" 44 | memory_unit="mib" 45 | 46 | # package_managers="on" 47 | package_managers="tiny" 48 | 49 | shell_path="off" 50 | shell_version="on" 51 | 52 | speed_shorthand="on" 53 | cpu_brand="on" 54 | cpu_speed="on" 55 | cpu_cores="logical" 56 | cpu_temp="C" 57 | 58 | gpu_brand="on" 59 | gpu_type="all" 60 | 61 | refresh_rate="on" 62 | 63 | gtk_shorthand="off" 64 | gtk2="on" 65 | gtk3="on" 66 | 67 | public_ip_host="http://ident.me" 68 | public_ip_timeout=2 69 | local_ip_interface=('auto') 70 | 71 | disk_show=('/') 72 | disk_subtitle="mount" 73 | disk_percent="on" 74 | 75 | music_player="spotify" 76 | song_format='"%title%" by %artist%' 77 | 78 | underline_char="-" 79 | separator=" -" 80 | 81 | color_blocks="off" 82 | 83 | bar_char_elapsed="=" 84 | bar_char_total="#" 85 | bar_border="on" 86 | memory_display="infobar" 87 | battery_display="infobar" 88 | disk_display="infobar" 89 | 90 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/.lua-format: -------------------------------------------------------------------------------- 1 | # https://github.com/Koihik/LuaFormatter 2 | # Docs: https://github.com/Koihik/LuaFormatter/blob/master/docs/Style-Config.md 3 | # 4 | # To quickly format the entire codebase, run this (in the root of the project): 5 | # $ find . -name "*.lua" -exec lua-format {} -i -c ~/dotfiles/.config/nvim/.lua-format \; 6 | 7 | column_limit: 100 8 | indent_width: 1 9 | use_tab: true 10 | tab_width: 4 11 | continuation_indent_width: 1 12 | spaces_before_call: 1 13 | keep_simple_control_block_one_line: false 14 | keep_simple_function_one_line: false 15 | align_args: false 16 | break_after_functioncall_lp: true 17 | break_before_functioncall_rp: true 18 | spaces_inside_functioncall_parens: false 19 | spaces_inside_functiondef_parens: false 20 | align_parameter: false 21 | chop_down_parameter: true 22 | break_after_functiondef_lp: true 23 | break_before_functiondef_rp: true 24 | align_table_field: false 25 | break_after_table_lb: true 26 | break_before_table_rb: true 27 | chop_down_table: true 28 | chop_down_kv_table: true 29 | table_sep: "," 30 | column_table_limit: 1 31 | column_table_limit_kv: 1 32 | extra_sep_at_table_end: true 33 | spaces_inside_table_braces: true 34 | break_after_operator: true 35 | double_quote_to_single_quote: false 36 | single_quote_to_double_quote: true 37 | spaces_around_equals_in_field: true 38 | line_breaks_after_function_body: 1 39 | line_separator: input 40 | 41 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/README.md: -------------------------------------------------------------------------------- 1 | ## Neovim Configuration 2 | 3 | In this directory, I keep my nvim configuration. It's modular, and pretty well organized. All of the plugins are kept in `lua/plugins` and vim's built-in settings in `lua/core`. 4 | 5 | ## Adding New Plugins 6 | 7 | Create a file called `.lua` in `lua/plugins/configs`, and add `""` to `plugins` table in `lua/plugins/configs/init.lua`. Your file should return a table that can get interpreted by [lazy.nvim](https://github.com/folke/lazy.nvim). Here's an example: 8 | 9 | ```lua 10 | local function setup() 11 | require("mason").setup({ 12 | max_concurrent_insallers = 3, 13 | }) 14 | end 15 | 16 | return { 17 | "williamboman/mason.nvim", 18 | dependencies = { 19 | "williamboman/mason-lspconfig.nvim", 20 | }, 21 | config = setup, 22 | priority = 1, -- this needs to load before mason-lspconfig 23 | } 24 | ``` 25 | 26 | *Make sure to checkout Lazy's docs!* 27 | 28 | ## Adding Support For New Languages 29 | 30 | Adding integration with a technology includes a couple of steps. We need to: 31 | 32 | 1. Install a Treesitter parser 33 | 2. Grab the actual LSP ([Language Server Protocol](https://en.wikipedia.org/wiki/Language_Server_Protocol)) using Mason 34 | 3. Configure [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) to use our LSP. 35 | 4. Sometimes, it's also necessary to install a tool from language's ecosystem. For example: `dotnet` is required for installing `csharp_ls` LSP. To do that, you should modify home-manager's config. Please read that module's docs. 36 | 37 | ### Installing a Treesitter parser 38 | 39 | Navigate to `lua/plugins/configs/treesitter.lua`. Add desired lang to `ensure_installed` table that we're passing as an argument to `require("nvim-treesitter.configs").setup()`: 40 | 41 | ```lua 42 | -- example: 43 | ensure_installed = { 44 | "c_sharp", -- added `c_sharp` 45 | }, 46 | ``` 47 | 48 | ### Installing an LSP using Mason 49 | 50 | Navigate to `lua/plugins/configs/mason-lspconfig.lua`. Add desired LSP to `ensure_installed` table that we're passing as an argument to `require("mason-lspconfig").setup()`: 51 | 52 | ```lua 53 | -- example: 54 | ensure_installed = { 55 | "csharp_ls", -- added `csharp_ls` 56 | }, 57 | ``` 58 | 59 | You can browse available LSPs using `:Mason` command (searching with `/` is very useful too!). 60 | 61 | ### Configuring nvim-lspconfig to use LSPs 62 | 63 | Navigate to `lua/plugins/configs/lspconfig.lua`. Add desired LSP to `servers` table: 64 | 65 | ```lua 66 | -- example: 67 | local servers = { 68 | "csharp_ls", -- added `csharp_ls` 69 | } 70 | ``` 71 | 72 | As you can see, configuring nvim to support multiple languages is a breeze thanks to the awesome open-source community! With this setup, it takes 3 strings to integrate a new language. 73 | 74 | ## Adding A New Keybind 75 | 76 | See `lua/core/mappings.lua`, it should be pretty self explanatory xD. 77 | 78 | ## Formatting The Code 79 | 80 | If you want to do so, you can format the entire codebase using [LuaFormatter](https://github.com/Koihik/LuaFormatter). I have created `.lua-format`, so it's a matter of running this command: 81 | 82 | ```shell 83 | $ find . -name "*.lua" -exec lua-format {} -i -c ~/.config/nvim/.lua-format 84 | ``` 85 | 86 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | local core = require("core") 2 | 3 | core.bootstrap.setup_vim_settings() 4 | core.bootstrap.setup_key_mappings() 5 | core.bootstrap.setup_plugins() 6 | 7 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lazy-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "LuaSnip": { "branch": "master", "commit": "ce0a05ab4e2839e1c48d072c5236cce846a387bc" }, 3 | "catppuccin": { "branch": "main", "commit": "10eda02ea4faa7d1f94e77a3410a4ae91c25c5f5" }, 4 | "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, 5 | "cmp-conventionalcommits": { "branch": "master", "commit": "a4dfacf0601130b7f8afa7c948d735c27802fb7f" }, 6 | "cmp-npm": { "branch": "main", "commit": "2337f109f51a09297596dd6b538b70ccba92b4e4" }, 7 | "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, 8 | "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, 9 | "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, 10 | "crates.nvim": { "branch": "main", "commit": "1643400e4b55542ab371ac294c0f733d9d4f9e66" }, 11 | "friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" }, 12 | "image.nvim": { "branch": "master", "commit": "61c76515cfc3cdac8123ece9e9761b20c3dc1315" }, 13 | "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" }, 14 | "leetcode.nvim": { "branch": "master", "commit": "02fb2c855658ad6b60e43671f6b040c812181a1d" }, 15 | "mason-lspconfig.nvim": { "branch": "main", "commit": "ba9c2f0b93deb48d0a99ae0e8d8dd36f7cc286d6" }, 16 | "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, 17 | "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" }, 18 | "nvim-autopairs": { "branch": "master", "commit": "e38c5d837e755ce186ae51d2c48e1b387c4425c6" }, 19 | "nvim-cmp": { "branch": "main", "commit": "d818fd0624205b34e14888358037fb6f5dc51234" }, 20 | "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, 21 | "nvim-comment": { "branch": "main", "commit": "e9ac16ab056695cad6461173693069ec070d2b23" }, 22 | "nvim-html-css": { "branch": "main", "commit": "c514bd27ad560636ed39dea3e370b3103754e244" }, 23 | "nvim-lspconfig": { "branch": "master", "commit": "9c762dcd457d2ab99edb3f3433cea9865ded47ad" }, 24 | "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, 25 | "nvim-tree.lua": { "branch": "master", "commit": "f9ff00bc06d7cb70548a3847d7a2a05e928bc988" }, 26 | "nvim-web-devicons": { "branch": "master", "commit": "e612de3d3a41a6b7be47f51e956dddabcbf419d9" }, 27 | "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, 28 | "presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" }, 29 | "snacks.nvim": { "branch": "main", "commit": "b006f50278e0c6e47d5f02a3295ea699d7120aea" }, 30 | "startup.nvim": { "branch": "master", "commit": "c6ba324f9eba0c23b675b53af431346aab893268" }, 31 | "telescope.nvim": { "branch": "master", "commit": "47ab113de540d1d1d9cdf7dba76dc60ddd808bb8" }, 32 | "toggleterm.nvim": { "branch": "main", "commit": "8ed0f52006d3207ec6c94de7db62da840937ef2a" }, 33 | "treesitter": { "branch": "master", "commit": "63be47f203d3e9174fdac3872fb9766e5bcc5a11" }, 34 | "vim-fugitive": { "branch": "master", "commit": "0444df68cd1cdabc7453d6bd84099458327e5513" }, 35 | "vim-gitgutter": { "branch": "main", "commit": "7b0b5098e3e57be86bb96cfbf2b8902381eef57c" }, 36 | "vim-prisma": { "branch": "main", "commit": "95c5b25066efb34c75bce78698baa371fe0ee7c2" }, 37 | "vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" }, 38 | "vim-wakatime": { "branch": "master", "commit": "53bba6bb8342de9cbdafc82142a9b5e82008d858" }, 39 | "yuck.vim": { "branch": "master", "commit": "9b5e0370f70cc30383e1dabd6c215475915fe5c3" } 40 | } 41 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/core/bootstrap.lua: -------------------------------------------------------------------------------- 1 | local plugins = require("plugins") 2 | local mappings = require("core.mappings") 3 | 4 | local function setup_plugins() 5 | local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 6 | if not (vim.uv or vim.loop).fs_stat(lazypath) then 7 | vim.fn.system({ 8 | "git", 9 | "clone", 10 | "--filter=blob:none", 11 | "https://github.com/folke/lazy.nvim.git", 12 | "--branch=stable", -- latest stable release 13 | lazypath, 14 | }) 15 | end 16 | vim.opt.rtp:prepend(lazypath) 17 | 18 | local config = {} 19 | require("lazy").setup(plugins, config) 20 | end 21 | 22 | local function setup_key_mappings() 23 | for _, mapping in pairs(mappings) do 24 | vim.api.nvim_set_keymap(mapping.mode, mapping.key, mapping.command, mapping.options) 25 | end 26 | end 27 | 28 | local function setup_vim_settings() 29 | vim.wo.relativenumber = true 30 | 31 | -- vim.opt.spell = true 32 | vim.opt.spelllang = { 33 | "en_us", 34 | } 35 | 36 | vim.opt.tabstop = 4 37 | vim.opt.shiftwidth = 4 38 | vim.opt.expandtab = true 39 | 40 | vim.diagnostic.config { 41 | update_in_insert = true, 42 | } 43 | 44 | vim.g.mapleader = "'" 45 | 46 | vim.opt.updatetime = 250 47 | 48 | vim.o.termguicolors = true 49 | end 50 | 51 | return { 52 | setup_plugins = setup_plugins, 53 | setup_key_mappings = setup_key_mappings, 54 | setup_vim_settings = setup_vim_settings, 55 | } 56 | 57 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/core/init.lua: -------------------------------------------------------------------------------- 1 | local bootstrap = require("core.bootstrap") 2 | 3 | return { 4 | bootstrap = bootstrap, 5 | } 6 | 7 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/core/mappings.lua: -------------------------------------------------------------------------------- 1 | local tree_focus = { 2 | mode = "n", 3 | key = "f", 4 | command = ":NvimTreeFocus", 5 | options = { 6 | noremap = true, 7 | silent = true, 8 | }, 9 | } 10 | 11 | local tree_toggle = { 12 | mode = "n", 13 | key = "q", 14 | command = ":NvimTreeToggle", 15 | options = { 16 | noremap = true, 17 | silent = true, 18 | }, 19 | } 20 | 21 | local exit_insert_mode = { 22 | mode = "i", 23 | key = "j", 24 | command = "", 25 | options = { 26 | noremap = true, 27 | silent = true, 28 | }, 29 | } 30 | 31 | local clear_highlights = { 32 | mode = "n", 33 | key = "c", 34 | command = ":noh", 35 | options = { 36 | noremap = true, 37 | silent = true, 38 | }, 39 | } 40 | 41 | local telescope_live_grep = { 42 | mode = "n", 43 | key = "s", 44 | command = ":Telescope live_grep", 45 | options = { 46 | noremap = true, 47 | silent = true, 48 | }, 49 | } 50 | 51 | local telescope_find_files = { 52 | mode = "n", 53 | key = "d", 54 | command = ":Telescope find_files hidden=true", 55 | options = { 56 | noremap = true, 57 | silent = true, 58 | }, 59 | } 60 | 61 | local open_tab = { 62 | mode = "n", 63 | key = "n", 64 | command = ":$tabnew", 65 | options = { 66 | noremap = true, 67 | silent = true, 68 | }, 69 | } 70 | 71 | local close_tab = { 72 | mode = "n", 73 | key = "x", 74 | command = ":tabclose", 75 | options = { 76 | noremap = true, 77 | silent = true, 78 | }, 79 | } 80 | 81 | local show_full_error = { 82 | mode = "n", 83 | key = "z", 84 | command = ":lua vim.diagnostic.open_float()", 85 | options = { 86 | noremap = true, 87 | silent = true, 88 | }, 89 | } 90 | 91 | local open_in_browser = { 92 | mode = "n", 93 | key = "v", 94 | command = ":lua Snacks.gitbrowse()", 95 | options = { 96 | noremap = true, 97 | silent = true, 98 | }, 99 | } 100 | 101 | local format_file = { 102 | mode = "n", 103 | key = "g", 104 | command = ":lua vim.lsp.buf.format()", 105 | options = { 106 | noremap = true, 107 | silent = true, 108 | }, 109 | } 110 | 111 | return { 112 | tree_focus, 113 | exit_insert_mode, 114 | clear_highlights, 115 | telescope_live_grep, 116 | telescope_find_files, 117 | tree_toggle, 118 | open_tab, 119 | close_tab, 120 | show_full_error, 121 | open_in_browser, 122 | format_file 123 | } 124 | 125 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/autopairs.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/windwp/nvim-autopairs 2 | 3 | local function setup() 4 | require("nvim-autopairs").setup({ 5 | check_ts = true, 6 | }) 7 | end 8 | 9 | return { 10 | 'windwp/nvim-autopairs', 11 | event = "InsertEnter", 12 | config = setup, 13 | } 14 | 15 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/catppuccin.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/catppuccin/nvim 2 | 3 | local function setup() 4 | require("catppuccin").setup( 5 | { 6 | flavour = "auto", -- latte, frappe, macchiato, mocha 7 | background = { -- :h background 8 | light = "latte", 9 | dark = "mocha", 10 | }, 11 | transparent_background = false, -- disables setting the background color. 12 | show_end_of_buffer = true, -- shows the '~' characters after the end of buffers 13 | term_colors = false, -- sets terminal colors (e.g. `g:terminal_color_0`) 14 | dim_inactive = { 15 | enabled = false, -- dims the background color of inactive window 16 | shade = "dark", 17 | percentage = 0.15, -- percentage of the shade to apply to the inactive window 18 | }, 19 | no_italic = false, -- Force no italic 20 | no_bold = false, -- Force no bold 21 | no_underline = false, -- Force no underline 22 | styles = { -- Handles the styles of general hi groups (see `:h highlight-args`): 23 | comments = { 24 | "italic", 25 | }, -- Change the style of comments 26 | conditionals = { 27 | "italic", 28 | }, 29 | loops = {}, 30 | functions = {}, 31 | keywords = {}, 32 | strings = {}, 33 | variables = {}, 34 | numbers = {}, 35 | booleans = {}, 36 | properties = {}, 37 | types = {}, 38 | operators = {}, 39 | -- miscs = {}, -- Uncomment to turn off hard-coded styles 40 | }, 41 | color_overrides = {}, 42 | custom_highlights = {}, 43 | default_integrations = true, 44 | integrations = { 45 | cmp = true, 46 | gitsigns = true, 47 | nvimtree = true, 48 | treesitter = true, 49 | notify = false, 50 | mini = { 51 | enabled = true, 52 | indentscope_color = "", 53 | }, 54 | -- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations) 55 | }, 56 | } 57 | ) 58 | 59 | -- setup must be called before loading 60 | vim.cmd.colorscheme "catppuccin" 61 | end 62 | 63 | return { 64 | "catppuccin/nvim", 65 | name = "catppuccin", 66 | config = setup, 67 | } 68 | 69 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/cmp.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/hrsh7th/nvim-cmp 2 | 3 | local function setup() 4 | vim.opt.completeopt = { 5 | "menu", 6 | "menuone", 7 | "noselect", 8 | } 9 | 10 | local cmp = require("cmp") 11 | local luasnip = require("luasnip") 12 | 13 | local select_opts = {behavior = cmp.SelectBehavior.Select} 14 | cmp.setup({ 15 | snippet = { 16 | expand = function(args) 17 | luasnip.lsp_expand(args.body) 18 | end 19 | }, 20 | sources = { 21 | { 22 | name = "path", 23 | keyword_length = 5, 24 | }, 25 | { 26 | name = "nvim_lsp", 27 | keyword_length = 1, 28 | }, 29 | { 30 | name = "buffer", 31 | keyword_length = 3, 32 | }, 33 | { 34 | name = "luasnip", 35 | keyword_length = 2, 36 | }, 37 | -- { 38 | -- name = "spell", 39 | -- keyword_length = 5, 40 | -- }, 41 | { 42 | name = "crates", 43 | keyword_length = 4, 44 | }, 45 | { 46 | name = "npm", 47 | keyword_length = 4, 48 | }, 49 | { 50 | name = "html-css", 51 | keyword_length = 5, 52 | }, 53 | { 54 | name = "conventionalcommits", 55 | keyword_length = 1, 56 | }, 57 | }, 58 | window = { 59 | documentation = cmp.config.window.bordered() 60 | }, 61 | formatting = { 62 | fields = { 63 | "menu", 64 | "abbr", 65 | "kind", 66 | }, 67 | }, 68 | mapping = { 69 | [""] = cmp.mapping.confirm({ select = true }), 70 | [""] = cmp.mapping.select_prev_item(select_opts), 71 | [""] = cmp.mapping.select_next_item(select_opts), 72 | [""] = cmp.mapping.select_prev_item(select_opts), 73 | [""] = cmp.mapping.select_next_item(select_opts), 74 | ["w"] = cmp.mapping.complete(), 75 | }, 76 | }) 77 | 78 | end 79 | 80 | return { 81 | "hrsh7th/nvim-cmp", 82 | dependencies = { 83 | "hrsh7th/cmp-buffer", 84 | "hrsh7th/cmp-path", 85 | "hrsh7th/cmp-nvim-lsp", 86 | "saadparwaiz1/cmp_luasnip", 87 | -- "f3fora/cmp-spell", 88 | "saecki/crates.nvim", 89 | "david-kunz/cmp-npm", 90 | "jezda1337/nvim-html-css", 91 | "davidsierradz/cmp-conventionalcommits", 92 | }, 93 | config = setup, 94 | } 95 | 96 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/colorizer.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/norcalli/nvim-colorizer.lua 2 | 3 | local function setup() 4 | require("colorizer").setup() 5 | end 6 | 7 | return { 8 | "norcalli/nvim-colorizer.lua", 9 | config = setup, 10 | } 11 | 12 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/comment.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/terrortylor/nvim-comment 2 | 3 | local function setup() 4 | require('nvim_comment').setup({ 5 | marker_padding = true, 6 | comment_empty = true, 7 | comment_empty_trim_whitespace = true, 8 | create_mappings = true, 9 | line_mapping = "'j", 10 | operator_mapping = "'a", 11 | comment_chunk_text_object = nil, 12 | hook = nil 13 | }) 14 | end 15 | 16 | return { 17 | "terrortylor/nvim-comment", 18 | config = setup, 19 | } 20 | 21 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/fugitive.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/tpope/vim-fugitive 2 | -- This plugin's name is not very self descriptive, 3 | -- but it's just a git integration into vim. 4 | 5 | return { 6 | "tpope/vim-fugitive", 7 | dependencies = { 8 | "tpope/vim-rhubarb", 9 | }, 10 | } 11 | 12 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/gitgutter.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/airblade/vim-gitgutter 2 | 3 | local function setup() 4 | vim.g.gitgutter_sign_added = "+" 5 | vim.g.gitgutter_sign_removed = "-" 6 | vim.g.gitgutter_sign_modified = "~" 7 | vim.g.gitgutter_removed_first_line = "-^" 8 | vim.g.gitgutter_sign_modified_removed = "~-" 9 | end 10 | 11 | return { 12 | "airblade/vim-gitgutter", 13 | config = setup, 14 | } 15 | 16 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/image.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/3rd/image.nvim 2 | 3 | local function setup() 4 | require("image").setup({}) 5 | end 6 | 7 | return { 8 | "3rd/image.nvim", 9 | config = setup, 10 | } 11 | 12 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/init.lua: -------------------------------------------------------------------------------- 1 | local plugins = { 2 | "catppuccin", 3 | "treesitter", 4 | "tree", 5 | "presence", 6 | "wakatime", 7 | "fugitive", 8 | "startup", 9 | "autopairs", 10 | "lspconfig", 11 | "cmp", 12 | "luasnip", 13 | "mason", 14 | "gitgutter", 15 | "leetcode", 16 | "image", 17 | "toggleterm", 18 | "vim-prisma", 19 | "colorizer", 20 | "yuck", 21 | "telescope", 22 | "mason-lspconfig", 23 | "comment", 24 | "snacks", 25 | } 26 | 27 | local function get_plugins(plugin_names) 28 | local plugins_array = {} 29 | for _, plugin_name in ipairs(plugin_names) do 30 | local plugin = require(string.format("plugins.configs.%s", plugin_name)) 31 | table.insert(plugins_array, plugin) 32 | end 33 | return plugins_array 34 | end 35 | 36 | return get_plugins(plugins) 37 | 38 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/leetcode.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "kawre/leetcode.nvim", 3 | build = ":TSUpdate html", 4 | dependencies = { 5 | "nvim-telescope/telescope.nvim", 6 | "MunifTanjim/nui.nvim", 7 | "rcarriga/nvim-notify", 8 | }, 9 | opts = { 10 | lang = "python", 11 | image_support = true, 12 | }, 13 | } 14 | 15 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/lspconfig.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/neovim/nvim-lspconfig 2 | 3 | local function setup() 4 | local lspconfig = require("lspconfig") 5 | local lsp_capabilities = require("cmp_nvim_lsp").default_capabilities() 6 | 7 | local servers = { 8 | { name = "lua_ls", additional_settings = { 9 | settings = { 10 | Lua = { 11 | format = { 12 | enable = false 13 | } 14 | } 15 | } 16 | } }, 17 | { name = "tsserver", additional_settings = {} }, 18 | { name = "nil_ls", additional_settings = {} }, 19 | { name = "pylsp", additional_settings = {} }, 20 | { name = "csharp_ls", additional_settings = {} }, 21 | { name = "html", additional_settings = {} }, 22 | { name = "cssls", additional_settings = {} }, 23 | { name = "asm_lsp", additional_settings = {} }, 24 | { name = "gdscript", additional_settings = {} }, 25 | { name = "jdtls", additional_settings = {} }, 26 | { name = "kotlin_language_server", additional_settings = {} }, 27 | { name = "eslint", additional_settings = {} }, 28 | { name = "stylelint_lsp", additional_settings = { 29 | filetypes = { "css", "scss", "less" }, 30 | } }, 31 | { name = "clangd", additional_settings = {} }, 32 | } 33 | 34 | for _, server in ipairs(servers) do 35 | lspconfig[server.name].setup(vim.tbl_extend("force", { 36 | capabilities = lsp_capabilities, 37 | }, server.additional_settings)) 38 | end 39 | end 40 | 41 | return { 42 | "neovim/nvim-lspconfig", 43 | config = setup, 44 | } 45 | 46 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/luasnip.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/L3MON4D3/LuaSnip 2 | 3 | local function setup() 4 | require("luasnip.loaders.from_vscode").lazy_load() 5 | end 6 | 7 | return { 8 | "L3MON4D3/LuaSnip", 9 | dependencies = { 10 | "rafamadriz/friendly-snippets" 11 | }, 12 | config = setup, 13 | lazy = true, 14 | } 15 | 16 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/mason-lspconfig.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/williamboman/mason-lspconfig.nvim 2 | 3 | local function setup() 4 | require("mason-lspconfig").setup({ 5 | ensure_installed = { 6 | "lua_ls@3.10.6", 7 | "tsserver@4.3.3", 8 | "nil_ls@2024-08-06", 9 | "pylsp@1.12.0", 10 | "csharp_ls@0.15.0", 11 | "html@4.10.0", 12 | "cssls@4.10.0", 13 | "asm_lsp@0.9.0", 14 | -- `jdtls` doesn't support version locking.. 15 | -- TODO: switch to a better Java LSP 16 | "jdtls", 17 | "kotlin_language_server@1.3.12", 18 | "eslint@4.10.0", 19 | "stylelint_lsp@2.0.0", 20 | -- "clangd@20.1.0", | This is installed via home manager's config, as we need the wrapped version of `clangd` to find certain headers. 21 | }, 22 | }) 23 | end 24 | 25 | return { 26 | "williamboman/mason-lspconfig.nvim", 27 | config = setup, 28 | } 29 | 30 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/mason.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/williamboman/mason.nvim 2 | 3 | local function setup() 4 | require("mason").setup({ 5 | max_concurrent_insallers = 3, 6 | }) 7 | end 8 | 9 | return { 10 | "williamboman/mason.nvim", 11 | dependencies = { 12 | "williamboman/mason-lspconfig.nvim", 13 | }, 14 | config = setup, 15 | priority = 1, -- this needs to load before mason-lspconfig 16 | } 17 | 18 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/presence.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/andweeb/presence.nvim 2 | 3 | local function setup() 4 | require("presence").setup( 5 | { 6 | auto_update = true, 7 | neovim_image_text = "what a chad editor!", -- This displays, when someone hovers over the main image. 8 | main_image = "neovim", -- Can be either "neovim" or "file". 9 | debounce_timeout = 10, -- How often the presence should be updated (seconds). 10 | buttons = true, 11 | show_time = true, 12 | enable_line_number = true, 13 | log_level = nil, 14 | editing_text = "Working on %s", 15 | file_explorer_text = "Browsing using %s", 16 | git_commit_text = "Writing a git commit", 17 | plugin_manager_text = "Managing plugins", 18 | reading_text = "Reading %s", 19 | workspace_text = "Playing around with %s", 20 | line_number_text = "Line: %s/%s", 21 | } 22 | ) 23 | end 24 | 25 | return { 26 | "andweeb/presence.nvim", 27 | config = setup, 28 | } 29 | 30 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/snacks.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/folke/snacks.nvim 2 | 3 | return { 4 | "folke/snacks.nvim", 5 | opts = { 6 | gitbrowse = { enable = true }, 7 | }, 8 | } 9 | 10 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/startup.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/startup-nvim/startup.nvim 2 | 3 | local settings = { 4 | logo = { 5 | type = "text", 6 | oldfiles_directory = false, 7 | align = "center", 8 | fold_section = false, 9 | title = "", 10 | margin = 5, 11 | content = { 12 | "███ █ ", 13 | " █ ███", 14 | "███ █ █", 15 | " █ ███", 16 | "███ █ █", 17 | " ", 18 | "██ ███", 19 | " █ █ █", 20 | " █ ███", 21 | "█ █", 22 | "███ ███", 23 | }, 24 | highlight = "Normal", 25 | default_color = "", 26 | oldfiles_amount = 0, 27 | }, 28 | quote_first_paragraph = { 29 | type = "text", 30 | oldfiles_directory = false, 31 | align = "center", 32 | fold_section = false, 33 | title = "", 34 | margin = 5, 35 | content = { 36 | '"I use NixOS, btw"', 37 | }, 38 | highlight = "String", 39 | default_color = "", 40 | oldfiles_amount = 0, 41 | }, 42 | quote_second_paragraph = { 43 | type = "text", 44 | oldfiles_directory = false, 45 | align = "center", 46 | fold_section = false, 47 | title = "", 48 | margin = 5, 49 | content = { 50 | "~ Sun Tzu, The Art of War", 51 | }, 52 | highlight = "String", 53 | default_color = "", 54 | oldfiles_amount = 0, 55 | }, 56 | commands = { 57 | type = "mapping", 58 | oldfiles_directory = false, 59 | align = "center", 60 | fold_section = false, 61 | title = "", 62 | margin = 5, 63 | content = { 64 | { 65 | "Focus On NvimTree", 66 | "NvimTreeFocus", 67 | "f", 68 | }, 69 | }, 70 | highlight = "Statement", 71 | default_color = "", 72 | oldfiles_amount = 0, 73 | }, 74 | old_files = { 75 | type = "oldfiles", 76 | oldfiles_directory = true, 77 | align = "center", 78 | fold_section = false, 79 | title = "", 80 | margin = 5, 81 | content = "", 82 | highlight = "Number", 83 | default_color = "", 84 | oldfiles_amount = 10, 85 | }, 86 | clock = { 87 | type = "text", 88 | oldfiles_directory = false, 89 | align = "center", 90 | fold_section = false, 91 | title = "", 92 | margin = 5, 93 | content = function() 94 | local time = os.date("%H:%M") 95 | local date = os.date("%d/%m/%Y") 96 | return { 97 | time, 98 | date, 99 | } 100 | end, 101 | highlight = "Normal", 102 | default_color = "", 103 | oldfiles_amount = 0, 104 | }, 105 | options = { 106 | mapping_keys = true, 107 | cursor_column = 0.5, 108 | empty_lines_between_mappings = true, 109 | disable_statuslines = false, 110 | -- WARNING !!! 111 | -- bellow array needs to have greater 112 | -- (or equal) length, than the `parts` one 113 | paddings = { 114 | 1, 115 | 1, 116 | 0, 117 | 2, 118 | 1, 119 | 1, 120 | }, 121 | }, 122 | mappings = { 123 | execute_command = "", 124 | open_file = "", 125 | open_file_split = "", 126 | open_section = "", 127 | open_help = "?", 128 | }, 129 | colors = { 130 | background = "#262626", 131 | folded_section = "#1C1C1C", 132 | }, 133 | parts = { 134 | "logo", 135 | "quote_first_paragraph", 136 | "quote_second_paragraph", 137 | "commands", 138 | "old_files", 139 | "clock", 140 | }, 141 | } 142 | 143 | local function setup() 144 | require("startup").setup(settings) 145 | end 146 | 147 | return { 148 | "startup-nvim/startup.nvim", 149 | dependencies = { 150 | "nvim-lua/plenary.nvim", 151 | }, 152 | config = setup, 153 | } 154 | 155 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/telescope.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/nvim-telescope/telescope.nvim 2 | 3 | -- telescope won't show any results from these files / directories. 4 | local ignored_files_and_dirs = { 5 | "node_modules", 6 | "dist", 7 | ".git", 8 | ".next", 9 | "yarn.lock", 10 | "coverage", 11 | ".nx", 12 | ".idea", 13 | }; 14 | 15 | -- telescope expects ignored files in this format: 16 | -- "!{first_ignored_file,second_ignored_file}" 17 | -- this function handles the conversion of a string table 18 | -- to a single string in the mentioned format. 19 | local function string_table_to_glob_string(string_table) 20 | local result = "!{"; 21 | 22 | for index, str in ipairs(string_table) do 23 | -- concat our string to the result 24 | result = result .. str; 25 | 26 | -- if not the last item, concat a comma 27 | if index < #string_table then 28 | result = result .. ","; 29 | end 30 | end 31 | 32 | -- close the string 33 | result = result .. "}"; 34 | return result; 35 | end 36 | 37 | local function setup() 38 | require("telescope").setup({ 39 | defaults = { 40 | vimgrep_arguments = { 41 | 'rg', 42 | '--color=never', 43 | '--no-heading', 44 | '--with-filename', 45 | '--line-number', 46 | '--column', 47 | '--smart-case', 48 | '--hidden', -- include dotfiles 49 | '--no-ignore', -- include VCS ignored files 50 | '--glob', -- ignore files listed in `ignored_files_and_dirs` 51 | string_table_to_glob_string(ignored_files_and_dirs), 52 | }, 53 | }, 54 | }) 55 | end 56 | 57 | return { 58 | "nvim-telescope/telescope.nvim", 59 | config = setup, 60 | dependencies = { 61 | "nvim-lua/plenary.nvim", 62 | }, 63 | } 64 | 65 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/toggleterm.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/akinsho/toggleterm.nvim 2 | 3 | local function setup() 4 | require("toggleterm").setup({ 5 | -- open_mapping = [[t]], 6 | direction = "float", 7 | }) 8 | end 9 | 10 | return { 11 | "akinsho/toggleterm.nvim", 12 | config = setup, 13 | } 14 | 15 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/tree.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/nvim-tree/nvim-tree.lua 2 | 3 | local function setup() 4 | require("nvim-tree").setup({ 5 | git = { 6 | enable = true, 7 | ignore = false, 8 | timeout = 500, 9 | }, 10 | }) 11 | end 12 | 13 | return { 14 | "nvim-tree/nvim-tree.lua", 15 | version = "*", 16 | lazy = false, 17 | dependencies = { 18 | "nvim-tree/nvim-web-devicons", 19 | }, 20 | config = setup, 21 | } 22 | 23 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/treesitter.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/nvim-treesitter/nvim-treesitter 2 | 3 | local function setup() 4 | require("nvim-treesitter.configs").setup({ 5 | ensure_installed = { 6 | "lua", 7 | "yuck", 8 | "javascript", 9 | "typescript", 10 | "tsx", 11 | "python", 12 | "markdown", 13 | "html", 14 | "scss", 15 | "css", 16 | "nix", 17 | "c_sharp", 18 | "asm", 19 | "gdscript", 20 | "java", 21 | "kotlin", 22 | "c", 23 | }, 24 | auto_install = false, 25 | highlight = { 26 | enable = true, 27 | }, 28 | indent = { 29 | enable = true, 30 | }, 31 | }) 32 | end 33 | 34 | return { 35 | "nvim-treesitter/nvim-treesitter", 36 | name = "treesitter", 37 | config = setup, 38 | priority = 1, 39 | } 40 | 41 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/vim-prisma.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/prisma/vim-prisma 2 | 3 | return { 4 | "prisma/vim-prisma", 5 | } 6 | 7 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/wakatime.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/wakatime/vim-wakatime 2 | 3 | return { 4 | "wakatime/vim-wakatime", 5 | lazy = false, 6 | } 7 | 8 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/configs/yuck.lua: -------------------------------------------------------------------------------- 1 | -- https://github.com/elkowar/yuck.vim 2 | 3 | return { 4 | "elkowar/yuck.vim", 5 | } 6 | 7 | -------------------------------------------------------------------------------- /dotfiles/.config/nvim/lua/plugins/init.lua: -------------------------------------------------------------------------------- 1 | local configs = require("plugins.configs") 2 | return configs 3 | 4 | -------------------------------------------------------------------------------- /dotfiles/.config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | primary: #cba6f7; 3 | secondary: #11111b; 4 | secondary-darkened: #11111b44; 5 | text: #cdd6f4; 6 | text-darkened: #cdd6f488; 7 | background: #1e1e2e; 8 | } 9 | 10 | configuration { 11 | modi: "drun"; 12 | show-icons: true; 13 | } 14 | 15 | window { 16 | enabled: true; 17 | 18 | location: center; 19 | anchor: center; 20 | x-offset: 0px; 21 | y-offset: 0px; 22 | 23 | margin: 0px; 24 | padding: 0px; 25 | 26 | border: 3px solid; 27 | border-color: @primary; 28 | border-radius: 5px; 29 | 30 | background-color: @background; 31 | 32 | cursor: "default"; 33 | } 34 | 35 | mainbox { 36 | enabled: true; 37 | children: ["inputbar", "listview"]; 38 | 39 | padding: 10px; 40 | } 41 | 42 | inputbar { 43 | enabled: true; 44 | children: ["entry", "num-filtered-rows", "textbox-num-sep", "num-rows"]; 45 | 46 | border: 0px 0px 3px 0px; 47 | border-color: @primary; 48 | } 49 | 50 | num-filtered-rows { 51 | enabled: true; 52 | text-color: @text; 53 | } 54 | 55 | textbox-num-sep { 56 | enabled: true; 57 | text-color: @text; 58 | } 59 | 60 | num-rows { 61 | enabled: true; 62 | text-color: @text; 63 | } 64 | 65 | entry { 66 | enabled: true; 67 | text-color: @text; 68 | cursor: text; 69 | placeholder: "Search.."; 70 | placeholder-color: @text-darkened; 71 | } 72 | 73 | listview { 74 | enabled: true; 75 | border: none; 76 | margin: 5px 0px 0px 0px; 77 | } 78 | 79 | scrollbar { 80 | enabled: true; 81 | handle-width: 10px; 82 | handle-color: @primary; 83 | } 84 | 85 | element { 86 | enabled: true; 87 | padding: 10px; 88 | } 89 | 90 | element-text { 91 | text-color: @text; 92 | } 93 | 94 | element normal.normal, 95 | element alternate.normal { 96 | background-color: @secondary-darkened; 97 | } 98 | 99 | element selected.normal { 100 | background-color: @secondary; 101 | } 102 | 103 | message, 104 | error-message { 105 | enabled: true; 106 | padding: 10px; 107 | } 108 | 109 | textbox { 110 | text-color: @text; 111 | } 112 | 113 | -------------------------------------------------------------------------------- /dotfiles/.config/vesktop/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "discordBranch": "stable", 3 | "minimizeToTray": false, 4 | "arRPC": true, 5 | "splashColor": "rgb(205, 214, 244)", 6 | "splashBackground": "rgb(30, 30, 46)", 7 | "splashTheming": true, 8 | "spellCheckLanguages": [ 9 | "en-US", 10 | "en", 11 | "pl" 12 | ] 13 | } -------------------------------------------------------------------------------- /dotfiles/.config/vesktop/settings/quickCss.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Khenziii/nixos-config/fc26739c7a2a50de2d12c37ac8a6c182dcb0f2a6/dotfiles/.config/vesktop/settings/quickCss.css -------------------------------------------------------------------------------- /dotfiles/.config/vesktop/settings/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "autoUpdate": true, 3 | "autoUpdateNotification": true, 4 | "useQuickCss": true, 5 | "themeLinks": [ 6 | "https://catppuccin.github.io/discord/dist/catppuccin-mocha-mauve.theme.css" 7 | ], 8 | "enabledThemes": [], 9 | "enableReactDevtools": true, 10 | "frameless": false, 11 | "transparent": false, 12 | "winCtrlQ": false, 13 | "disableMinSize": false, 14 | "winNativeTitleBar": false, 15 | "plugins": { 16 | "ChatInputButtonAPI": { 17 | "enabled": true 18 | }, 19 | "CommandsAPI": { 20 | "enabled": true 21 | }, 22 | "MemberListDecoratorsAPI": { 23 | "enabled": true 24 | }, 25 | "MessageAccessoriesAPI": { 26 | "enabled": true 27 | }, 28 | "MessageDecorationsAPI": { 29 | "enabled": true 30 | }, 31 | "MessageEventsAPI": { 32 | "enabled": true 33 | }, 34 | "MessagePopoverAPI": { 35 | "enabled": true 36 | }, 37 | "MessageUpdaterAPI": { 38 | "enabled": true 39 | }, 40 | "ServerListAPI": { 41 | "enabled": false 42 | }, 43 | "UserSettingsAPI": { 44 | "enabled": true 45 | }, 46 | "AlwaysAnimate": { 47 | "enabled": true 48 | }, 49 | "AlwaysTrust": { 50 | "enabled": true, 51 | "domain": true, 52 | "file": true 53 | }, 54 | "AnonymiseFileNames": { 55 | "enabled": false 56 | }, 57 | "AppleMusicRichPresence": { 58 | "enabled": false 59 | }, 60 | "WebRichPresence (arRPC)": { 61 | "enabled": false 62 | }, 63 | "AutomodContext": { 64 | "enabled": false 65 | }, 66 | "BANger": { 67 | "enabled": false 68 | }, 69 | "BetterFolders": { 70 | "enabled": false, 71 | "sidebar": true, 72 | "sidebarAnim": true, 73 | "closeAllFolders": false, 74 | "closeAllHomeButton": false, 75 | "closeOthers": false, 76 | "forceOpen": false, 77 | "keepIcons": false, 78 | "showFolderIcon": 1 79 | }, 80 | "BetterGifAltText": { 81 | "enabled": false 82 | }, 83 | "BetterGifPicker": { 84 | "enabled": true 85 | }, 86 | "BetterNotesBox": { 87 | "enabled": false 88 | }, 89 | "BetterRoleContext": { 90 | "enabled": true 91 | }, 92 | "BetterRoleDot": { 93 | "enabled": false 94 | }, 95 | "BetterSessions": { 96 | "enabled": false 97 | }, 98 | "BetterSettings": { 99 | "enabled": false 100 | }, 101 | "BetterUploadButton": { 102 | "enabled": false 103 | }, 104 | "BiggerStreamPreview": { 105 | "enabled": false 106 | }, 107 | "BlurNSFW": { 108 | "enabled": false 109 | }, 110 | "CallTimer": { 111 | "enabled": true, 112 | "format": "stopwatch" 113 | }, 114 | "ClearURLs": { 115 | "enabled": true 116 | }, 117 | "ClientTheme": { 118 | "enabled": false 119 | }, 120 | "ColorSighted": { 121 | "enabled": false 122 | }, 123 | "ConsoleShortcuts": { 124 | "enabled": false 125 | }, 126 | "CopyEmojiMarkdown": { 127 | "enabled": false 128 | }, 129 | "CopyUserURLs": { 130 | "enabled": true 131 | }, 132 | "CrashHandler": { 133 | "enabled": false 134 | }, 135 | "CtrlEnterSend": { 136 | "enabled": false 137 | }, 138 | "CustomRPC": { 139 | "enabled": false, 140 | "type": 0, 141 | "timestampMode": 0 142 | }, 143 | "CustomIdle": { 144 | "enabled": true, 145 | "idleTimeout": 10, 146 | "remainInIdle": false 147 | }, 148 | "Dearrow": { 149 | "enabled": false 150 | }, 151 | "Decor": { 152 | "enabled": false 153 | }, 154 | "DisableCallIdle": { 155 | "enabled": true 156 | }, 157 | "DontRoundMyTimestamps": { 158 | "enabled": true 159 | }, 160 | "EmoteCloner": { 161 | "enabled": false 162 | }, 163 | "Experiments": { 164 | "enabled": true, 165 | "toolbarDevMenu": false 166 | }, 167 | "F8Break": { 168 | "enabled": false 169 | }, 170 | "FakeNitro": { 171 | "enabled": false 172 | }, 173 | "FakeProfileThemes": { 174 | "enabled": false 175 | }, 176 | "FavoriteEmojiFirst": { 177 | "enabled": true 178 | }, 179 | "FavoriteGifSearch": { 180 | "enabled": true, 181 | "searchOption": "hostandpath" 182 | }, 183 | "FixCodeblockGap": { 184 | "enabled": true 185 | }, 186 | "FixSpotifyEmbeds": { 187 | "enabled": false 188 | }, 189 | "FixYoutubeEmbeds": { 190 | "enabled": true 191 | }, 192 | "ForceOwnerCrown": { 193 | "enabled": true 194 | }, 195 | "FriendInvites": { 196 | "enabled": true 197 | }, 198 | "FriendsSince": { 199 | "enabled": true 200 | }, 201 | "GameActivityToggle": { 202 | "enabled": false 203 | }, 204 | "GifPaste": { 205 | "enabled": true 206 | }, 207 | "GreetStickerPicker": { 208 | "enabled": false 209 | }, 210 | "HideAttachments": { 211 | "enabled": false 212 | }, 213 | "iLoveSpam": { 214 | "enabled": true 215 | }, 216 | "IgnoreActivities": { 217 | "enabled": false 218 | }, 219 | "ImageLink": { 220 | "enabled": false 221 | }, 222 | "ImageZoom": { 223 | "enabled": false 224 | }, 225 | "ImplicitRelationships": { 226 | "enabled": false, 227 | "sortByAffinity": true 228 | }, 229 | "InvisibleChat": { 230 | "enabled": true 231 | }, 232 | "KeepCurrentChannel": { 233 | "enabled": false 234 | }, 235 | "LastFMRichPresence": { 236 | "enabled": false 237 | }, 238 | "LoadingQuotes": { 239 | "enabled": false, 240 | "replaceEvents": true, 241 | "enablePluginPresetQuotes": true, 242 | "enableDiscordPresetQuotes": false, 243 | "additionalQuotes": "", 244 | "additionalQuotesDelimiter": "|" 245 | }, 246 | "MaskedLinkPaste": { 247 | "enabled": false 248 | }, 249 | "MemberCount": { 250 | "enabled": true, 251 | "memberList": true, 252 | "toolTip": true 253 | }, 254 | "MessageClickActions": { 255 | "enabled": true, 256 | "requireModifier": false, 257 | "enableDoubleClickToReply": true, 258 | "enableDoubleClickToEdit": true 259 | }, 260 | "MessageLatency": { 261 | "enabled": false 262 | }, 263 | "MessageLinkEmbeds": { 264 | "enabled": true, 265 | "listMode": "blacklist", 266 | "idList": "", 267 | "automodEmbeds": "never" 268 | }, 269 | "MessageLogger": { 270 | "enabled": true, 271 | "deleteStyle": "text", 272 | "ignoreBots": false, 273 | "ignoreSelf": false, 274 | "ignoreUsers": "", 275 | "ignoreChannels": "", 276 | "ignoreGuilds": "", 277 | "logEdits": true, 278 | "logDeletes": true, 279 | "collapseDeleted": false, 280 | "inlineEdits": true 281 | }, 282 | "MessageTags": { 283 | "enabled": false 284 | }, 285 | "MoreCommands": { 286 | "enabled": false 287 | }, 288 | "MoreKaomoji": { 289 | "enabled": false 290 | }, 291 | "MoreUserTags": { 292 | "enabled": true, 293 | "tagSettings": { 294 | "WEBHOOK": { 295 | "text": "Webhook", 296 | "showInChat": true, 297 | "showInNotChat": true 298 | }, 299 | "OWNER": { 300 | "text": "Owner", 301 | "showInChat": true, 302 | "showInNotChat": true 303 | }, 304 | "ADMINISTRATOR": { 305 | "text": "Admin", 306 | "showInChat": true, 307 | "showInNotChat": true 308 | }, 309 | "MODERATOR_STAFF": { 310 | "text": "Staff", 311 | "showInChat": true, 312 | "showInNotChat": true 313 | }, 314 | "MODERATOR": { 315 | "text": "Mod", 316 | "showInChat": true, 317 | "showInNotChat": true 318 | }, 319 | "VOICE_MODERATOR": { 320 | "text": "VC Mod", 321 | "showInChat": true, 322 | "showInNotChat": true 323 | }, 324 | "CHAT_MODERATOR": { 325 | "text": "Chat Mod", 326 | "showInChat": true, 327 | "showInNotChat": true 328 | } 329 | } 330 | }, 331 | "Moyai": { 332 | "enabled": false, 333 | "ignoreBots": true, 334 | "ignoreBlocked": true, 335 | "triggerWhenUnfocused": true, 336 | "quality": "Normal", 337 | "volume": 0.5 338 | }, 339 | "MutualGroupDMs": { 340 | "enabled": true 341 | }, 342 | "NewGuildSettings": { 343 | "enabled": true, 344 | "guild": false, 345 | "messages": 1, 346 | "everyone": true, 347 | "role": false, 348 | "highlights": true, 349 | "events": true, 350 | "showAllChannels": true 351 | }, 352 | "NoBlockedMessages": { 353 | "enabled": false 354 | }, 355 | "NoDefaultHangStatus": { 356 | "enabled": false 357 | }, 358 | "NoDevtoolsWarning": { 359 | "enabled": true 360 | }, 361 | "NoF1": { 362 | "enabled": false 363 | }, 364 | "NoMosaic": { 365 | "enabled": false 366 | }, 367 | "NoOnboardingDelay": { 368 | "enabled": false 369 | }, 370 | "NoPendingCount": { 371 | "enabled": false 372 | }, 373 | "NoProfileThemes": { 374 | "enabled": false 375 | }, 376 | "NoReplyMention": { 377 | "enabled": false, 378 | "userList": "1234567890123445,1234567890123445", 379 | "shouldPingListed": true, 380 | "inverseShiftReply": false 381 | }, 382 | "NoScreensharePreview": { 383 | "enabled": false 384 | }, 385 | "NoServerEmojis": { 386 | "enabled": false 387 | }, 388 | "NoTypingAnimation": { 389 | "enabled": false 390 | }, 391 | "NoUnblockToJump": { 392 | "enabled": false 393 | }, 394 | "NormalizeMessageLinks": { 395 | "enabled": false 396 | }, 397 | "NotificationVolume": { 398 | "enabled": false, 399 | "notificationVolume": 100 400 | }, 401 | "NSFWGateBypass": { 402 | "enabled": false 403 | }, 404 | "OnePingPerDM": { 405 | "enabled": false 406 | }, 407 | "oneko": { 408 | "enabled": false 409 | }, 410 | "OpenInApp": { 411 | "enabled": false 412 | }, 413 | "OverrideForumDefaults": { 414 | "enabled": false 415 | }, 416 | "PartyMode": { 417 | "enabled": false 418 | }, 419 | "PauseInvitesForever": { 420 | "enabled": false 421 | }, 422 | "PermissionFreeWill": { 423 | "enabled": false, 424 | "lockout": true, 425 | "onboarding": true 426 | }, 427 | "PermissionsViewer": { 428 | "enabled": true 429 | }, 430 | "petpet": { 431 | "enabled": false 432 | }, 433 | "PictureInPicture": { 434 | "enabled": false 435 | }, 436 | "PinDMs": { 437 | "enabled": false 438 | }, 439 | "PlainFolderIcon": { 440 | "enabled": false 441 | }, 442 | "PlatformIndicators": { 443 | "enabled": true, 444 | "colorMobileIndicator": true, 445 | "list": true, 446 | "badges": true, 447 | "messages": true 448 | }, 449 | "PreviewMessage": { 450 | "enabled": true 451 | }, 452 | "QuickMention": { 453 | "enabled": false 454 | }, 455 | "QuickReply": { 456 | "enabled": false 457 | }, 458 | "ReactErrorDecoder": { 459 | "enabled": false 460 | }, 461 | "ReadAllNotificationsButton": { 462 | "enabled": false 463 | }, 464 | "RelationshipNotifier": { 465 | "enabled": false 466 | }, 467 | "ReplaceGoogleSearch": { 468 | "enabled": false 469 | }, 470 | "ReplyTimestamp": { 471 | "enabled": false 472 | }, 473 | "RevealAllSpoilers": { 474 | "enabled": false 475 | }, 476 | "ReverseImageSearch": { 477 | "enabled": false 478 | }, 479 | "ReviewDB": { 480 | "enabled": false 481 | }, 482 | "RoleColorEverywhere": { 483 | "enabled": true, 484 | "chatMentions": true, 485 | "memberList": true, 486 | "voiceUsers": true, 487 | "reactorsList": true, 488 | "colorChatMessages": false, 489 | "pollResults": true 490 | }, 491 | "SecretRingToneEnabler": { 492 | "enabled": false 493 | }, 494 | "Summaries": { 495 | "enabled": false, 496 | "summaryExpiryThresholdDays": 3 497 | }, 498 | "SendTimestamps": { 499 | "enabled": false 500 | }, 501 | "ServerInfo": { 502 | "enabled": true 503 | }, 504 | "ServerListIndicators": { 505 | "enabled": false 506 | }, 507 | "ShikiCodeblocks": { 508 | "enabled": true, 509 | "useDevIcon": "GREYSCALE", 510 | "theme": "https://raw.githubusercontent.com/shikijs/shiki/0b28ad8ccfbf2615f2d9d38ea8255416b8ac3043/packages/shiki/themes/dark-plus.json" 511 | }, 512 | "ShowAllMessageButtons": { 513 | "enabled": false 514 | }, 515 | "ShowConnections": { 516 | "enabled": true, 517 | "iconSpacing": 1, 518 | "iconSize": 32 519 | }, 520 | "ShowHiddenChannels": { 521 | "enabled": true, 522 | "showMode": 0, 523 | "hideUnreads": true, 524 | "defaultAllowedUsersAndRolesDropdownState": true 525 | }, 526 | "ShowHiddenThings": { 527 | "enabled": true, 528 | "showTimeouts": true, 529 | "showInvitesPaused": true, 530 | "showModView": true, 531 | "disableDiscoveryFilters": true, 532 | "disableDisallowedDiscoveryFilters": true 533 | }, 534 | "ShowMeYourName": { 535 | "enabled": true, 536 | "mode": "nick-user", 537 | "displayNames": false, 538 | "inReplies": false 539 | }, 540 | "ShowTimeoutDuration": { 541 | "enabled": false 542 | }, 543 | "SilentMessageToggle": { 544 | "enabled": false 545 | }, 546 | "SilentTyping": { 547 | "enabled": true, 548 | "isEnabled": false, 549 | "showIcon": true, 550 | "contextMenu": true 551 | }, 552 | "SortFriendRequests": { 553 | "enabled": true, 554 | "showDates": false 555 | }, 556 | "SpotifyControls": { 557 | "enabled": false 558 | }, 559 | "SpotifyCrack": { 560 | "enabled": true, 561 | "noSpotifyAutoPause": true, 562 | "keepSpotifyActivityOnIdle": false 563 | }, 564 | "SpotifyShareCommands": { 565 | "enabled": true 566 | }, 567 | "StartupTimings": { 568 | "enabled": false 569 | }, 570 | "StreamerModeOnStream": { 571 | "enabled": false 572 | }, 573 | "SuperReactionTweaks": { 574 | "enabled": false 575 | }, 576 | "TextReplace": { 577 | "enabled": false 578 | }, 579 | "ThemeAttributes": { 580 | "enabled": false 581 | }, 582 | "TimeBarAllActivities": { 583 | "enabled": false 584 | }, 585 | "Translate": { 586 | "enabled": false 587 | }, 588 | "TypingIndicator": { 589 | "enabled": true, 590 | "includeMutedChannels": false, 591 | "includeCurrentChannel": true, 592 | "indicatorMode": 3 593 | }, 594 | "TypingTweaks": { 595 | "enabled": true, 596 | "alternativeFormatting": true, 597 | "showRoleColors": true, 598 | "showAvatars": true 599 | }, 600 | "Unindent": { 601 | "enabled": true 602 | }, 603 | "UnlockedAvatarZoom": { 604 | "enabled": false 605 | }, 606 | "UnsuppressEmbeds": { 607 | "enabled": false 608 | }, 609 | "UrbanDictionary": { 610 | "enabled": false 611 | }, 612 | "UserVoiceShow": { 613 | "enabled": false 614 | }, 615 | "USRBG": { 616 | "enabled": false 617 | }, 618 | "ValidReply": { 619 | "enabled": false 620 | }, 621 | "ValidUser": { 622 | "enabled": true 623 | }, 624 | "VoiceChatDoubleClick": { 625 | "enabled": false 626 | }, 627 | "VcNarrator": { 628 | "enabled": false 629 | }, 630 | "VencordToolbox": { 631 | "enabled": false 632 | }, 633 | "ViewIcons": { 634 | "enabled": false 635 | }, 636 | "ViewRaw": { 637 | "enabled": false 638 | }, 639 | "VoiceDownload": { 640 | "enabled": false 641 | }, 642 | "VoiceMessages": { 643 | "enabled": false 644 | }, 645 | "WebKeybinds": { 646 | "enabled": false 647 | }, 648 | "WebScreenShareFixes": { 649 | "enabled": false 650 | }, 651 | "WhoReacted": { 652 | "enabled": true 653 | }, 654 | "Wikisearch": { 655 | "enabled": false 656 | }, 657 | "XSOverlay": { 658 | "enabled": false 659 | }, 660 | "NoTrack": { 661 | "enabled": false, 662 | "disableAnalytics": true 663 | }, 664 | "WebContextMenus": { 665 | "enabled": false, 666 | "addBack": true 667 | }, 668 | "Settings": { 669 | "enabled": false, 670 | "settingsLocation": "aboveNitro" 671 | }, 672 | "SupportHelper": { 673 | "enabled": false 674 | }, 675 | "YoutubeAdblock": { 676 | "enabled": false 677 | }, 678 | "ConsoleJanitor": { 679 | "enabled": false 680 | }, 681 | "MentionAvatars": { 682 | "enabled": false 683 | }, 684 | "AlwaysExpandRoles": { 685 | "enabled": false 686 | }, 687 | "FullSearchContext": { 688 | "enabled": true 689 | }, 690 | "AccountPanelServerProfile": { 691 | "enabled": false 692 | }, 693 | "CopyFileContents": { 694 | "enabled": false 695 | }, 696 | "NoMaskedUrlPaste": { 697 | "enabled": false 698 | }, 699 | "StickerPaste": { 700 | "enabled": false 701 | }, 702 | "VolumeBooster": { 703 | "enabled": false 704 | }, 705 | "UserMessagesPronouns": { 706 | "enabled": false 707 | }, 708 | "DynamicImageModalAPI": { 709 | "enabled": true 710 | }, 711 | "FixImagesQuality": { 712 | "enabled": false 713 | } 714 | }, 715 | "notifications": { 716 | "timeout": 5000, 717 | "position": "bottom-right", 718 | "useNative": "always", 719 | "logLimit": 50 720 | }, 721 | "cloud": { 722 | "authenticated": false, 723 | "url": "https://api.vencord.dev/", 724 | "settingsSync": false, 725 | "settingsSyncVersion": 1734979687459 726 | } 727 | } -------------------------------------------------------------------------------- /dotfiles/.gitconfig: -------------------------------------------------------------------------------- 1 | [user] 2 | email = khenzii.was.taken@gmail.com 3 | name = Khenziii 4 | signingkey = AB2FD4A1FDBB707D 5 | [http] 6 | postBuffer = 2097152000 7 | # don't close the connecition 8 | # if speed too low (my internet 9 | # sucks, **a lot**) 10 | lowSpeedLimit = 0 11 | [filter "lfs"] 12 | clean = git-lfs clean -- %f 13 | smudge = git-lfs smudge -- %f 14 | process = git-lfs filter-process 15 | required = true 16 | [core] 17 | editor = nvim 18 | excludesfile = ~/.gitignore-global 19 | [commit] 20 | gpgsign = true 21 | [credential] 22 | helper = store 23 | [rebase] 24 | # Display authors on rebase -i 25 | instructionFormat = (%an <%ae>) %s 26 | [push] 27 | autoSetupRemote = true 28 | 29 | -------------------------------------------------------------------------------- /dotfiles/.gitignore-global: -------------------------------------------------------------------------------- 1 | .idea/ 2 | 3 | vite.config.ts.timestamp 4 | 5 | __pycache__ 6 | venv 7 | env 8 | 9 | node_modules 10 | 11 | compile_commands.json 12 | -------------------------------------------------------------------------------- /dotfiles/.gnupg/gpg-agent.conf: -------------------------------------------------------------------------------- 1 | default-cache-ttl 3456000000 2 | max-cache-ttl 3456000000 3 | 4 | -------------------------------------------------------------------------------- /dotfiles/.peaclock/config: -------------------------------------------------------------------------------- 1 | set date off 2 | set seconds on 3 | style active-fg #cba6f7 4 | style colon-fg #cba6f7 5 | 6 | -------------------------------------------------------------------------------- /dotfiles/.stow-local-ignore: -------------------------------------------------------------------------------- 1 | README.md 2 | 3 | -------------------------------------------------------------------------------- /dotfiles/.tmux.conf: -------------------------------------------------------------------------------- 1 | setw -g mode-keys vi 2 | 3 | bind-key -n C-Up select-pane -U 4 | bind-key -n C-Down select-pane -D 5 | bind-key -n C-Left select-pane -L 6 | bind-key -n C-Right select-pane -R 7 | 8 | set -gq allow-passthrough on 9 | set -g visual-activity off 10 | 11 | set -g @plugin 'tmux-plugins/tmux-resurrect' 12 | run '~/.tmux/plugins/tmux-resurrect/resurrect.tmux' 13 | 14 | -------------------------------------------------------------------------------- /dotfiles/.yarnrc.yml: -------------------------------------------------------------------------------- 1 | httpTimeout: 100000000 2 | networkConcurrency: 1 3 | -------------------------------------------------------------------------------- /dotfiles/README.md: -------------------------------------------------------------------------------- 1 | ## dotfiles 2 | 3 | This directory contains my config files. 4 | 5 | ## What exactly are dotfiles? 6 | 7 | In many operating systems, files & directories starting with a dot (`.`) are considered hidden. 8 | 9 | This is particularly useful, as it provides a good place for programs to store their settings. 10 | 11 | The tradition of storing config in dotfiles is widely adopted in Unix-based systems (most notably Linux & macOS). 12 | 13 | Putting dotfiles online makes it very convenient, to quickly set up new work environments. 14 | 15 | ## Installation 16 | 17 | To manage my dotfiles, I use [stow](https://www.gnu.org/software/stow/). 18 | 19 | It's a tool, that allows quick creation of symbolic links. 20 | 21 | > [!TIP] 22 | > *What's a symbolic link?* 23 | > 24 | > Symbolic links (symlinks) are files that act as pointers to other files or directories. They're similar to Windows' shortcuts, but have minor differences in functionality & purpose. 25 | 26 | First, check if you have `stow` installed: 27 | 28 | ```shell 29 | $ stow --version 30 | ``` 31 | 32 | If no errors occurred, you can use `stow` to link my dotfiles: 33 | 34 | ```shell 35 | $ stow --no-folding --adopt -t ~ . 36 | ``` 37 | 38 | After running above command, `stow` will create symbolic links in your home directory to files in this directory. 39 | 40 | In case of any conflicts, `stow` will adapt to them (your configuration will be chosen over mine), you won't lose any settings :) 41 | 42 | If you want to check, if `stow` has adapted anything, you can always run: 43 | ```shell 44 | $ git status 45 | ``` 46 | -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- 1 | { 2 | "nodes": { 3 | "catppuccin": { 4 | "locked": { 5 | "lastModified": 1722997334, 6 | "narHash": "sha256-vE5FcKVQ3E0txJKt5w3vOlfcN1XoTAlxK9PnQ/CJavA=", 7 | "owner": "catppuccin", 8 | "repo": "nix", 9 | "rev": "66f4ea170093b62f319f41cebd2337a51b225c5a", 10 | "type": "github" 11 | }, 12 | "original": { 13 | "owner": "catppuccin", 14 | "repo": "nix", 15 | "type": "github" 16 | } 17 | }, 18 | "firefox-addons": { 19 | "inputs": { 20 | "flake-utils": "flake-utils", 21 | "nixpkgs": [ 22 | "nixpkgs" 23 | ] 24 | }, 25 | "locked": { 26 | "dir": "pkgs/firefox-addons", 27 | "lastModified": 1723262595, 28 | "narHash": "sha256-IPMyBC2oLn4ZnpKpfm4QAZhUM1/84CU4ukWNNKFP1is=", 29 | "owner": "rycee", 30 | "repo": "nur-expressions", 31 | "rev": "e281296c5bb98af6c67bfdc873acfd5bd4a5a07d", 32 | "type": "gitlab" 33 | }, 34 | "original": { 35 | "dir": "pkgs/firefox-addons", 36 | "owner": "rycee", 37 | "repo": "nur-expressions", 38 | "type": "gitlab" 39 | } 40 | }, 41 | "flake-compat": { 42 | "flake": false, 43 | "locked": { 44 | "lastModified": 1696426674, 45 | "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 46 | "owner": "edolstra", 47 | "repo": "flake-compat", 48 | "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 49 | "type": "github" 50 | }, 51 | "original": { 52 | "owner": "edolstra", 53 | "repo": "flake-compat", 54 | "type": "github" 55 | } 56 | }, 57 | "flake-parts": { 58 | "inputs": { 59 | "nixpkgs-lib": "nixpkgs-lib" 60 | }, 61 | "locked": { 62 | "lastModified": 1701473968, 63 | "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", 64 | "owner": "hercules-ci", 65 | "repo": "flake-parts", 66 | "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", 67 | "type": "github" 68 | }, 69 | "original": { 70 | "owner": "hercules-ci", 71 | "repo": "flake-parts", 72 | "type": "github" 73 | } 74 | }, 75 | "flake-parts_2": { 76 | "inputs": { 77 | "nixpkgs-lib": [ 78 | "vms", 79 | "hercules-ci-effects", 80 | "nixpkgs" 81 | ] 82 | }, 83 | "locked": { 84 | "lastModified": 1696343447, 85 | "narHash": "sha256-B2xAZKLkkeRFG5XcHHSXXcP7To9Xzr59KXeZiRf4vdQ=", 86 | "owner": "hercules-ci", 87 | "repo": "flake-parts", 88 | "rev": "c9afaba3dfa4085dbd2ccb38dfade5141e33d9d4", 89 | "type": "github" 90 | }, 91 | "original": { 92 | "id": "flake-parts", 93 | "type": "indirect" 94 | } 95 | }, 96 | "flake-utils": { 97 | "locked": { 98 | "lastModified": 1629284811, 99 | "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", 100 | "owner": "numtide", 101 | "repo": "flake-utils", 102 | "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c", 103 | "type": "github" 104 | }, 105 | "original": { 106 | "owner": "numtide", 107 | "repo": "flake-utils", 108 | "type": "github" 109 | } 110 | }, 111 | "flake-utils_2": { 112 | "inputs": { 113 | "systems": "systems" 114 | }, 115 | "locked": { 116 | "lastModified": 1731533236, 117 | "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 118 | "owner": "numtide", 119 | "repo": "flake-utils", 120 | "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 121 | "type": "github" 122 | }, 123 | "original": { 124 | "owner": "numtide", 125 | "repo": "flake-utils", 126 | "type": "github" 127 | } 128 | }, 129 | "hercules-ci-effects": { 130 | "inputs": { 131 | "flake-parts": "flake-parts_2", 132 | "nixpkgs": "nixpkgs_3" 133 | }, 134 | "locked": { 135 | "lastModified": 1701009247, 136 | "narHash": "sha256-GuX16rzRze2y7CsewJLTV6qXkXWyEwp6VCZXi8HLruU=", 137 | "owner": "hercules-ci", 138 | "repo": "hercules-ci-effects", 139 | "rev": "31b6cd7569191bfcd0a548575b0e2ef953ed7d09", 140 | "type": "github" 141 | }, 142 | "original": { 143 | "owner": "hercules-ci", 144 | "repo": "hercules-ci-effects", 145 | "type": "github" 146 | } 147 | }, 148 | "home-manager": { 149 | "inputs": { 150 | "nixpkgs": [ 151 | "nixpkgs" 152 | ] 153 | }, 154 | "locked": { 155 | "lastModified": 1723015306, 156 | "narHash": "sha256-jQnFEtH20/OsDPpx71ntZzGdRlpXhUENSQCGTjn//NA=", 157 | "owner": "nix-community", 158 | "repo": "home-manager", 159 | "rev": "b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e", 160 | "type": "github" 161 | }, 162 | "original": { 163 | "owner": "nix-community", 164 | "repo": "home-manager", 165 | "type": "github" 166 | } 167 | }, 168 | "mnta": { 169 | "inputs": { 170 | "flake-utils": "flake-utils_2", 171 | "nixpkgs": "nixpkgs" 172 | }, 173 | "locked": { 174 | "lastModified": 1748017624, 175 | "narHash": "sha256-+XHQbYO8vyMaZEDKPY4+r6naCR8mplYBzaQJZp6V+PU=", 176 | "owner": "khenziii", 177 | "repo": "mnta", 178 | "rev": "46df3af17f4fccab9bb598f1751e5e0c510a0c24", 179 | "type": "github" 180 | }, 181 | "original": { 182 | "owner": "khenziii", 183 | "repo": "mnta", 184 | "type": "github" 185 | } 186 | }, 187 | "nixpkgs": { 188 | "locked": { 189 | "lastModified": 1747744144, 190 | "narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=", 191 | "owner": "nixos", 192 | "repo": "nixpkgs", 193 | "rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f", 194 | "type": "github" 195 | }, 196 | "original": { 197 | "owner": "nixos", 198 | "ref": "nixos-unstable", 199 | "repo": "nixpkgs", 200 | "type": "github" 201 | } 202 | }, 203 | "nixpkgs-lib": { 204 | "locked": { 205 | "dir": "lib", 206 | "lastModified": 1701253981, 207 | "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=", 208 | "owner": "NixOS", 209 | "repo": "nixpkgs", 210 | "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58", 211 | "type": "github" 212 | }, 213 | "original": { 214 | "dir": "lib", 215 | "owner": "NixOS", 216 | "ref": "nixos-unstable", 217 | "repo": "nixpkgs", 218 | "type": "github" 219 | } 220 | }, 221 | "nixpkgs_2": { 222 | "locked": { 223 | "lastModified": 1723175592, 224 | "narHash": "sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI=", 225 | "owner": "nixos", 226 | "repo": "nixpkgs", 227 | "rev": "5e0ca22929f3342b19569b21b2f3462f053e497b", 228 | "type": "github" 229 | }, 230 | "original": { 231 | "owner": "nixos", 232 | "ref": "nixos-unstable", 233 | "repo": "nixpkgs", 234 | "type": "github" 235 | } 236 | }, 237 | "nixpkgs_3": { 238 | "locked": { 239 | "lastModified": 1697723726, 240 | "narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=", 241 | "owner": "NixOS", 242 | "repo": "nixpkgs", 243 | "rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0", 244 | "type": "github" 245 | }, 246 | "original": { 247 | "owner": "NixOS", 248 | "ref": "nixos-unstable", 249 | "repo": "nixpkgs", 250 | "type": "github" 251 | } 252 | }, 253 | "nixpkgs_4": { 254 | "locked": { 255 | "lastModified": 1703255338, 256 | "narHash": "sha256-Z6wfYJQKmDN9xciTwU3cOiOk+NElxdZwy/FiHctCzjU=", 257 | "owner": "nixos", 258 | "repo": "nixpkgs", 259 | "rev": "6df37dc6a77654682fe9f071c62b4242b5342e04", 260 | "type": "github" 261 | }, 262 | "original": { 263 | "owner": "nixos", 264 | "ref": "nixos-unstable", 265 | "repo": "nixpkgs", 266 | "type": "github" 267 | } 268 | }, 269 | "osx-kvm": { 270 | "flake": false, 271 | "locked": { 272 | "lastModified": 1701316418, 273 | "narHash": "sha256-Sk8LYhFovoMX1ln7DWYArJQphW2a4h8Xg7/ZEZXwZv4=", 274 | "owner": "kholia", 275 | "repo": "OSX-KVM", 276 | "rev": "09daff670a7eb9ff616073df329586c5995623a9", 277 | "type": "github" 278 | }, 279 | "original": { 280 | "owner": "kholia", 281 | "repo": "OSX-KVM", 282 | "type": "github" 283 | } 284 | }, 285 | "root": { 286 | "inputs": { 287 | "catppuccin": "catppuccin", 288 | "firefox-addons": "firefox-addons", 289 | "home-manager": "home-manager", 290 | "mnta": "mnta", 291 | "nixpkgs": "nixpkgs_2", 292 | "spicetify-nix": "spicetify-nix", 293 | "vms": "vms" 294 | } 295 | }, 296 | "spicetify-nix": { 297 | "inputs": { 298 | "flake-compat": "flake-compat", 299 | "nixpkgs": [ 300 | "nixpkgs" 301 | ] 302 | }, 303 | "locked": { 304 | "lastModified": 1723263161, 305 | "narHash": "sha256-jb9jGnfyacnUGm+8/En2md3Rc57OJH3M/84Ifwa39E8=", 306 | "owner": "gerg-l", 307 | "repo": "spicetify-nix", 308 | "rev": "4f16dafbf384eebe7b99d99fbdb04018eb2a5db4", 309 | "type": "github" 310 | }, 311 | "original": { 312 | "owner": "gerg-l", 313 | "repo": "spicetify-nix", 314 | "type": "github" 315 | } 316 | }, 317 | "systems": { 318 | "locked": { 319 | "lastModified": 1681028828, 320 | "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 321 | "owner": "nix-systems", 322 | "repo": "default", 323 | "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 324 | "type": "github" 325 | }, 326 | "original": { 327 | "owner": "nix-systems", 328 | "repo": "default", 329 | "type": "github" 330 | } 331 | }, 332 | "vms": { 333 | "inputs": { 334 | "flake-parts": "flake-parts", 335 | "hercules-ci-effects": "hercules-ci-effects", 336 | "nixpkgs": "nixpkgs_4", 337 | "osx-kvm": "osx-kvm" 338 | }, 339 | "locked": { 340 | "lastModified": 1739955541, 341 | "narHash": "sha256-X7BvCkW6QQFOmjBgrpdayOR+pv7gz7a/0wl/p+mTxt4=", 342 | "owner": "matthewcroughan", 343 | "repo": "nixtheplanet", 344 | "rev": "c9d159dc2e0049e7b250a767a3a01def52c3412b", 345 | "type": "github" 346 | }, 347 | "original": { 348 | "owner": "matthewcroughan", 349 | "repo": "nixtheplanet", 350 | "type": "github" 351 | } 352 | } 353 | }, 354 | "root": "root", 355 | "version": 7 356 | } 357 | -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- 1 | { 2 | description = "Khenzii's NixOS configuration"; 3 | 4 | inputs = { 5 | nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; 6 | home-manager = { 7 | url = "github:nix-community/home-manager"; 8 | inputs.nixpkgs.follows = "nixpkgs"; 9 | }; 10 | catppuccin.url = "github:catppuccin/nix"; 11 | spicetify-nix = { 12 | url = "github:gerg-l/spicetify-nix"; 13 | inputs.nixpkgs.follows = "nixpkgs"; 14 | }; 15 | firefox-addons = { 16 | url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; 17 | inputs.nixpkgs.follows = "nixpkgs"; 18 | }; 19 | vms.url = "github:matthewcroughan/nixtheplanet"; 20 | mnta.url = "github:khenziii/mnta"; 21 | }; 22 | 23 | outputs = { 24 | nixpkgs, 25 | home-manager, 26 | catppuccin, 27 | spicetify-nix, 28 | firefox-addons, 29 | vms, 30 | mnta, 31 | ... 32 | }: let 33 | # Below variables get passed to the modules. 34 | home-manager-inputs = { 35 | inherit spicetify-nix; 36 | inherit firefox-addons; 37 | inherit mnta; 38 | }; 39 | nixos-inputs = {}; 40 | shared-inputs = { 41 | hostname = "iusenixosbtw"; 42 | username = "khenzii"; 43 | system = "x86_64-linux"; 44 | }; 45 | in { 46 | nixosConfigurations.${shared-inputs.hostname} = nixpkgs.lib.nixosSystem { 47 | system = shared-inputs.system; 48 | modules = [ 49 | home-manager.nixosModules.home-manager 50 | catppuccin.nixosModules.catppuccin 51 | vms.nixosModules.macos-ventura 52 | ./shared/shared.nix 53 | ./nixos/configuration.nix 54 | ]; 55 | specialArgs = { inputs = shared-inputs // nixos-inputs; }; 56 | }; 57 | 58 | homeConfigurations.${shared-inputs.username} = home-manager.lib.homeManagerConfiguration { 59 | pkgs = nixpkgs.legacyPackages.${shared-inputs.system}; 60 | modules = [ 61 | catppuccin.homeManagerModules.catppuccin 62 | spicetify-nix.homeManagerModules.default 63 | ./shared/shared.nix 64 | ./home-manager/home.nix 65 | ]; 66 | extraSpecialArgs = { inputs = shared-inputs // home-manager-inputs; }; 67 | }; 68 | }; 69 | } 70 | 71 | -------------------------------------------------------------------------------- /home-manager/README.md: -------------------------------------------------------------------------------- 1 | ## home-manager 2 | 3 | This directory contains my home-manager configuration. 4 | 5 | ## What's home-manager? 6 | 7 | [home-manager](https://github.com/nix-community/home-manager) is a project maintained by Nix's community. 8 | 9 | It was made for managing the home directory using Nix. Combining it with NixOS makes you able to define your entire configuration with Nix. 10 | 11 | One of it's greatest features is that it's distro agnostic, meaning that you don't have to use NixOS for it. That makes it a popular starting point for people who want to try out Nix. 12 | 13 | ## Installation 14 | 15 | To install this config in a standalone manner, you can follow steps similiar to those for the `nixos` module: 16 | 17 | 1. Backup your old configuration: 18 | 19 | ```shell 20 | $ mv ~/.config/home-manager ~/.config/home-manager-old 21 | ``` 22 | 23 | 2. Create symlinks pointing to this directory: 24 | 25 | ```shell 26 | $ stow -t ~/.config/home-manager . 27 | ``` 28 | 29 | 3. Switch to a new configuration: 30 | 31 | ```shell 32 | $ home-manager switch 33 | ``` 34 | -------------------------------------------------------------------------------- /home-manager/home.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ../shared/shared.nix 6 | ./modules 7 | ]; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /home-manager/modules/catppuccin.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | # catppuccin is not enabled globally, 5 | # because some of my dotfiles are 6 | # conflicting with all the available themes. 7 | catppuccin = { 8 | flavor = "mocha"; 9 | accent = "mauve"; 10 | }; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /home-manager/modules/core.nix: -------------------------------------------------------------------------------- 1 | { inputs, ... }: 2 | 3 | { 4 | home = { 5 | username = inputs.username; 6 | homeDirectory = "/home/${inputs.username}"; 7 | }; 8 | 9 | # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion 10 | home.stateVersion = "23.11"; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /home-manager/modules/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./core.nix 6 | ./systemd.nix 7 | ./catppuccin.nix 8 | ./graphical-user-interfaces.nix 9 | ./spicetify.nix 10 | ./packages 11 | ]; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /home-manager/modules/graphical-user-interfaces.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | qt.style.catppuccin = { 5 | enable = true; 6 | apply = true; # auto applies the theme 7 | }; 8 | 9 | gtk = { 10 | enable = true; 11 | catppuccin = { 12 | enable = true; 13 | icon.enable = true; 14 | }; 15 | }; 16 | 17 | catppuccin.pointerCursor.enable = true; 18 | 19 | fonts.fontconfig.enable = true; 20 | 21 | xdg.desktopEntries = { 22 | firefox = { 23 | name = "FireFox"; 24 | genericName = "Web Browser 🦊"; 25 | exec = "firefox --name firefox %U"; 26 | icon = "firefox"; 27 | }; 28 | "org.gnome.Epiphany" = { 29 | name = "Epiphany"; 30 | genericName = "GNOME's Web Browser. Uses port of WebKit as it's rendering engine, making it similar to Safari"; 31 | exec = "epiphany %U"; 32 | icon = "org.gnome.Epiphany"; 33 | }; 34 | }; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/ani-cli.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | ani-cli 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/brightnessctl.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | brightnessctl 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/btop.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | btop 6 | ]; 7 | 8 | programs.btop = { 9 | enable = true; 10 | catppuccin.enable = true; 11 | }; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/cava.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | cava 6 | ]; 7 | 8 | programs.cava = { 9 | enable = true; 10 | catppuccin = { 11 | enable = true; 12 | transparent = true; 13 | }; 14 | }; 15 | } 16 | 17 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/cbonsai.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | cbonsai 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/cloc.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | cloc 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/cmatrix.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | cmatrix 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/cowsay.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | cowsay 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/cpulimit.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | cpulimit 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/default.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: let 2 | guess-the-number-asm = pkgs.callPackage ./guess-the-number-asm.nix {}; 3 | in 4 | 5 | { 6 | imports = [ 7 | ./brightnessctl.nix 8 | ./btop.nix 9 | ./cava.nix 10 | ./delta.nix 11 | ./ffmpeg.nix 12 | ./fzf.nix 13 | ./imv.nix 14 | ./libnotify.nix 15 | ./neofetch.nix 16 | ./neovim.nix 17 | ./peaclock.nix 18 | ./ripgrep.nix 19 | ./spicetify-cli.nix 20 | ./thefuck.nix 21 | ./tmux.nix 22 | ./tree.nix 23 | ./wget.nix 24 | ./wl-clipboard.nix 25 | ./imgcat.nix 26 | ./nmap.nix 27 | ./openssl.nix 28 | ./gitleaks.nix 29 | ./whois.nix 30 | ./unzip.nix 31 | ./git-lfs.nix 32 | ./hashcat.nix 33 | ./wine.nix 34 | ./nix-init.nix 35 | ./speedtest-cli.nix 36 | ./xhost.nix 37 | ./kittysay.nix 38 | ./cowsay.nix 39 | ./cmatrix.nix 40 | ./cbonsai.nix 41 | ./pkg-config.nix 42 | ./ani-cli.nix 43 | ./dig.nix 44 | ./cloc.nix 45 | ./yt-dlp.nix 46 | ./unar.nix 47 | ./onefetch.nix 48 | ./zip.nix 49 | ./cpulimit.nix 50 | ./svgo.nix 51 | ./lsof.nix 52 | ./websocat.nix 53 | ./minio-client.nix 54 | ./jq.nix 55 | ./exiftool.nix 56 | ./sqlite-web.nix 57 | ]; 58 | 59 | home.packages = [ 60 | guess-the-number-asm 61 | ]; 62 | } 63 | 64 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/delta.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | delta 6 | ]; 7 | 8 | programs.git.delta = { 9 | enable = true; 10 | catppuccin.enable = true; 11 | }; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/dig.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | dig 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/exiftool.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | exiftool 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/ffmpeg.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | ffmpeg 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/fzf.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | fzf 6 | ]; 7 | 8 | programs.fzf = { 9 | enable = true; 10 | catppuccin.enable = true; 11 | }; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/git-lfs.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | git-lfs 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/gitleaks.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | gitleaks 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/guess-the-number-asm.nix: -------------------------------------------------------------------------------- 1 | { stdenv 2 | , lib 3 | , fetchFromGitHub 4 | }: 5 | 6 | stdenv.mkDerivation { 7 | name = "guess-the-number-asm"; 8 | 9 | src = fetchFromGitHub { 10 | owner = "khenziii"; 11 | repo = "guess-the-number-asm"; 12 | rev = "v1.0.0"; 13 | hash = "sha256-jHmPcMpqhb3roNSclNfW4b161JEMaRu9jx6qR9Ip4RA="; 14 | }; 15 | 16 | installPhase = '' 17 | mkdir -p $out/bin 18 | 19 | # Add a debug script if attempted to install on an OS different from Linux. 20 | os_name=$(uname -s) 21 | if [ "$os_name" != "Linux" ]; then 22 | echo " 23 | #!/bin/sh 24 | 25 | echo 'This program uses the Linux kernel! It will NOT work on $os_name.' 26 | exit 1 27 | " > guess-the-number-asm 28 | fi 29 | 30 | # Add a debug script if attempted to install 31 | # on a CPU architecture different than x86_64. 32 | cpu_architecture=$(uname -m) 33 | if [ "$cpu_architecture" != "x86_64" ]; then 34 | echo " 35 | #!/bin/sh 36 | 37 | echo 'This program was made for the x86_64 CPU architecture. You are using: $cpu_architecture.' 38 | exit 1 39 | " > guess-the-number-asm 40 | fi 41 | 42 | if [ -f "guess-the-number-asm" ]; then 43 | chmod +x guess-the-number-asm 44 | mv guess-the-number-asm $out/bin 45 | 46 | exit 0 47 | fi 48 | 49 | as guess-the-number.s -o guess-the-number.o 50 | ld guess-the-number.o -o guess-the-number 51 | 52 | mv guess-the-number guess-the-number-asm 53 | mv guess-the-number-asm $out/bin 54 | ''; 55 | 56 | meta = { 57 | description = "Guess the number game written in assembly"; 58 | homepage = "https://github.com/khenziii/guess-the-number-asm"; 59 | license = lib.licenses.gpl3; 60 | platforms = lib.platforms.linux; 61 | }; 62 | } 63 | 64 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/hashcat.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | hashcat 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/imgcat.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | imgcat 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/imv.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | imv 6 | ]; 7 | 8 | programs.imv = { 9 | enable = true; 10 | catppuccin.enable = true; 11 | }; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/jq.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | jq 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/kittysay.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | kittysay 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/libnotify.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | libnotify 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/lsof.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | lsof 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/minio-client.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | minio-client 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/neofetch.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | neofetch 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/neovim.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | programs.neovim = { 5 | enable = true; 6 | extraLuaPackages = ps: [ ps.magick ]; 7 | extraPackages = with pkgs; [ imagemagick ]; 8 | }; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/nix-init.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | nix-init 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/nmap.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | nmap 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/onefetch.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | onefetch 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/openssl.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | openssl 6 | ]; 7 | 8 | home.sessionVariables = { 9 | PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig"; 10 | }; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/peaclock.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | peaclock 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/pkg-config.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | pkg-config 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/ripgrep.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | ripgrep 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/speedtest-cli.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | speedtest-cli 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/spicetify-cli.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | spicetify-cli 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/sqlite-web.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | sqlite-web 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/svgo.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | nodePackages.svgo 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/thefuck.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | thefuck 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/tmux.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | tmux 6 | ]; 7 | 8 | programs.tmux = { 9 | enable = true; 10 | catppuccin.enable = true; 11 | }; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/tree.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | tree 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/unar.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | unar 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/unzip.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | unzip 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/websocat.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | websocat 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/wget.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | wget 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/whois.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | whois 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/wine.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | wine 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/wl-clipboard.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | wl-clipboard 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/xhost.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | xorg.xhost 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/yt-dlp.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | yt-dlp 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/cli-utilities/zip.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | zip 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./shell 6 | ./development-environment 7 | ./cli-utilities 8 | ./gui-apps 9 | ./misc 10 | ]; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/c-sharp/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./mono.nix 6 | ./dotnet-sdk_8.nix 7 | ]; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/c-sharp/dotnet-sdk_8.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | dotnet-sdk_8 6 | ]; 7 | 8 | home.sessionVariables = { 9 | DOTNET_ROOT = "${pkgs.dotnet-sdk_8}"; 10 | }; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/c-sharp/mono.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | mono 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/c/bear.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | bear 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/c/clang-tools.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | clang-tools 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/c/clang.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | clang 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/c/cmake.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | cmake 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/c/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./gcc.nix 6 | ./clang.nix 7 | ./cmake.nix 8 | ./clang-tools.nix 9 | ./bear.nix 10 | ]; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/c/gcc.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | # See: https://github.com/nix-community/home-manager/issues/1668#issuecomment-1264298055 6 | # for an explanation of why we're using high priority here. 7 | (hiPrio gcc) 8 | ]; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./c 6 | ./c-sharp 7 | ./lua 8 | ./python 9 | ./java 10 | ./javascript 11 | ./typescript 12 | ./rust 13 | ./go 14 | ./misc 15 | ]; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/go/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./go.nix 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/go/go.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | go 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/java/android-studio.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | android-studio 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/java/android-tools.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | android-tools 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/java/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./zulu.nix 6 | ./gradle.nix 7 | ./android-studio.nix 8 | ./maven.nix 9 | ./android-tools.nix 10 | ]; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/java/gradle.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | gradle 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/java/maven.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | maven 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/java/zulu.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | zulu 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/javascript/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./nodejs_22.nix 6 | ./yarn-berry.nix 7 | ]; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/javascript/nodejs_22.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | nodejs_22 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/javascript/yarn-berry.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | yarn-berry 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/lua/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | # ./lua-language-server.nix | every LSP 6 | # is now managed through nvim config. 7 | ./luajit.nix 8 | ./luaformatter.nix 9 | ]; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/lua/lua-language-server.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | lua-language-server 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/lua/luaformatter.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | luaformatter 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/lua/luajit.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | luajit 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/misc/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./gdb.nix 6 | ./google-cloud-sdk.nix 7 | ./gnumake.nix 8 | ]; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/misc/gdb.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | gdb 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/misc/gnumake.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | gnumake 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/misc/google-cloud-sdk.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | google-cloud-sdk 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/python/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./python313.nix 6 | ./pip312.nix 7 | ./poetry.nix 8 | ]; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/python/pip312.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | python312Packages.pip 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/python/poetry.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | poetry 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/python/python313.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | python313 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/rust/cargo.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | cargo 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/rust/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./cargo.nix 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/typescript/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./ts-node.nix 6 | ./typescript.nix 7 | ]; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/typescript/ts-node.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | nodePackages.ts-node 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/development-environment/typescript/typescript.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | typescript 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/atlauncher.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | atlauncher 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/caprine-bin.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | caprine-bin 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/ciscopackettracer8.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | ciscoPacketTracer8 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/clocks.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | gnome.gnome-clocks 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/default.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: let 2 | soundnode = pkgs.callPackage ./soundnode.nix {}; 3 | sherloq = pkgs.callPackage ./sherloq.nix {}; 4 | sowon = pkgs.callPackage ./sowon.nix {}; 5 | in 6 | 7 | { 8 | imports = [ 9 | ./caprine-bin.nix 10 | ./discord.nix 11 | ./firefox.nix 12 | ./kitty.nix 13 | ./mpv.nix 14 | ./networkmanagerapplet.nix 15 | ./nwg-displays.nix 16 | ./obs-studio.nix 17 | ./pavucontrol.nix 18 | # ./spotify.nix | spicetify is being used instead. 19 | # ./steam.nix | steam is enabled system-wide, as it requires 20 | # opening some ports in the firewall for certain features. 21 | ./super-tux-kart.nix 22 | ./super-tux.nix 23 | # ./vesktop.nix | discord is temporarily used. 24 | ./qalculate-gtk.nix 25 | ./godot_4.nix 26 | ./wireshark.nix 27 | ./vscode.nix 28 | ./lutris.nix 29 | ./google-chrome.nix 30 | ./slack.nix 31 | ./gedit.nix 32 | # ./minecraft.nix | minecraft is temporarily marked as broken. 33 | ./gimp.nix 34 | # ./virtualbox.nix | virtualbox is enabled using NixOS' 35 | # `virtualisation.virtualbox` option. 36 | ./whatsapp-for-linux.nix 37 | ./tor-browser.nix 38 | ./protonvpn-gui.nix 39 | ./element-desktop.nix 40 | ./kdenlive.nix 41 | ./fontforge-gtk.nix 42 | ./clocks.nix 43 | ./synfigstudio.nix 44 | ./libreoffice.nix 45 | ./thunar.nix 46 | # ./godot3-mono.nix | godot 4 is being used instead. 47 | # ./atlauncher.nix | lunar client is being used instead. 48 | ./lunar-client.nix 49 | ./via.nix 50 | ./ciscopackettracer8.nix 51 | # ./postman.nix | hoppscotch is used instead. 52 | ./hoppscotch.nix 53 | ./remmina.nix 54 | ./epiphany.nix 55 | ./mnta.nix 56 | ]; 57 | 58 | home.packages = [ 59 | # soundnode 60 | # sherloq 61 | sowon 62 | ]; 63 | } 64 | 65 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/discord.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | discord 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/element-desktop.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | element-desktop 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/epiphany.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | epiphany 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/firefox.nix: -------------------------------------------------------------------------------- 1 | { pkgs, inputs, ... }: 2 | 3 | { 4 | programs.firefox = { 5 | enable = true; 6 | profiles.khenzii = { 7 | name = "Khenzii"; 8 | isDefault = true; 9 | # a list of extensions can be found here: 10 | # https://gitlab.com/rycee/nur-expressions/-/blob/master/pkgs/firefox-addons/addons.json 11 | extensions = with inputs.firefox-addons.packages.${pkgs.system}; [ 12 | bitwarden 13 | duckduckgo-privacy-essentials 14 | return-youtube-dislikes 15 | stylus 16 | firefox-color 17 | violentmonkey 18 | react-devtools 19 | darkreader 20 | polish-dictionary 21 | ]; 22 | settings = { 23 | "extensions.autoDisableScopes" = 0; # auto enable extensions 24 | "privacy.trackingprotection.enabled" = true; 25 | "signon.rememberSignons" = false; 26 | }; 27 | search = { 28 | default = "DuckDuckGo"; 29 | privateDefault = "DuckDuckGo"; 30 | }; 31 | }; 32 | policies = { 33 | BlockAboutConfig = false; 34 | Bookmarks = false; 35 | }; 36 | }; 37 | } 38 | 39 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/fontforge-gtk.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | fontforge-gtk 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/gedit.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | gedit 6 | ]; 7 | 8 | # You can use `dconf watch /` to obtain these settings. 9 | # See: https://determinate.systems/posts/declarative-gnome-configuration-with-nixos/ 10 | dconf.settings = { 11 | "org/gnome/gedit/preferences/editor" = { 12 | display-line-numbers = false; 13 | highlight-current-line = false; 14 | use-default-font = false; 15 | editor-font = "Hack Nerd Font 18"; 16 | }; 17 | }; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/gimp.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | gimp 6 | ]; 7 | } 8 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/godot3-mono.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | godot3-mono 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/godot_4.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | godot_4 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/google-chrome.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | google-chrome 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/hoppscotch.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | hoppscotch 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/kdenlive.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | kdePackages.kdenlive 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/kitty.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | kitty 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/libreoffice.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | libreoffice 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/lunar-client.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | lunar-client 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/lutris.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | lutris 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/minecraft.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | minecraft 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/mnta.nix: -------------------------------------------------------------------------------- 1 | { inputs, ... }: 2 | 3 | { 4 | home.packages = [ 5 | inputs.mnta.packages.${inputs.system}.default 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/mpv.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | programs.mpv = { 5 | enable = true; 6 | catppuccin.enable = true; 7 | config = { 8 | ao = "alsa"; 9 | audio-device = "auto"; 10 | }; 11 | }; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/networkmanagerapplet.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | networkmanagerapplet 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/nwg-displays.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | nwg-displays 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/obs-studio.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | obs-studio 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/pavucontrol.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | pavucontrol 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/postman.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | postman 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/protonvpn-gui.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | protonvpn-gui 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/qalculate-gtk.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | qalculate-gtk 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/remmina.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | remmina 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/sherloq.nix: -------------------------------------------------------------------------------- 1 | # WIP.. 2 | # Hm.. packaging stuff is harder than I've thought.. 3 | 4 | { lib 5 | , fetchFromGitHub 6 | , python311 7 | , python311Packages 8 | }: let 9 | python-packages = with python311Packages; [ 10 | astor 11 | keras-applications 12 | lxml 13 | matplotlib 14 | pandas 15 | pyside6 16 | python-magic 17 | scikit-learn 18 | tensorflow 19 | xgboost 20 | pillow 21 | pywavelets 22 | ]; 23 | in 24 | 25 | python311Packages.buildPythonApplication { 26 | pname = "sherloq"; 27 | version = "1.0"; # TODO 28 | 29 | pyproject = false; 30 | doCheck = false; # no tests on upstream 31 | 32 | src = fetchFromGitHub { 33 | owner = "GuidoBartoli"; 34 | repo = "sherloq"; 35 | rev = "57b33f73c7d350c3c03e6eed5fd5af38d8d48cbc"; 36 | hash = "sha256-qOsqYB63W3PinMTQcsLaKG9o/acdZBA91Lk4t9XbRyQ="; 37 | }; 38 | 39 | buildInputs = [ 40 | python311 41 | ] ++ python-packages; 42 | 43 | meta = with lib; { 44 | description = "An open-source digital image forensic toolset"; 45 | homepage = "https://github.com/GuidoBartoli/sherloq"; 46 | license = licenses.gpl3; 47 | platforms = platforms.linux; 48 | }; 49 | } 50 | 51 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/slack.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | slack 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/soundnode.nix: -------------------------------------------------------------------------------- 1 | # WIP!!! This package is not ready to be used. 2 | 3 | { lib 4 | , stdenv 5 | , fetchurl 6 | , makeWrapper 7 | , gtk2 8 | , gtk3 9 | , electron 10 | , atk 11 | , glib 12 | , cairo 13 | }: 14 | 15 | stdenv.mkDerivation rec { 16 | pname = "soundnode"; 17 | version = "7.0.0"; 18 | 19 | src = fetchurl { 20 | url = "https://github.com/Soundnode/soundnode-app/releases/download/${version}/Soundnode-linux-x64.tar.xz"; 21 | sha256 = "1g0j9n7bmzdgidrf17n2zwcmhnx2l97y4dd7p4g0xc1xv2d3hpgl"; 22 | }; 23 | 24 | nativeBuildInputs = [ makeWrapper ]; 25 | buildInputs = [ gtk2 gtk3 atk glib cairo electron ]; 26 | 27 | installPhase = '' 28 | mkdir -p $out/bin $out/lib $out/share/soundnode 29 | 30 | cp Soundnode $out/bin 31 | cp -r locales resources $out/share/soundnode 32 | cp *.pak $out/share/soundnode 33 | cp lib*.so natives_blob.bin snapshot_blob.bin icudtl.dat $out/lib 34 | 35 | wrapProgram $out/bin/Soundnode \ 36 | --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}:$out/lib" 37 | ''; 38 | 39 | meta = with lib; { 40 | description = "Soundcloud desktop client"; 41 | homepage = "https://github.com/Soundnode/soundnode-app"; 42 | license = licenses.gpl3Plus; 43 | platforms = platforms.linux; 44 | }; 45 | } 46 | 47 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/sowon.nix: -------------------------------------------------------------------------------- 1 | { stdenv 2 | , lib 3 | , fetchFromGitHub 4 | , pkg-config 5 | , SDL2 6 | }: 7 | 8 | stdenv.mkDerivation { 9 | name = "sowon"; 10 | 11 | src = fetchFromGitHub { 12 | owner = "tsoding"; 13 | repo = "sowon"; 14 | rev = "6fe9c214fcb92062d21a6951ca523d46f27da9d3"; 15 | hash = "sha256-BLhbOwx/VVMG0fnOaLK66l7ryIHt9Q8T1mZsJSjYC0o="; 16 | }; 17 | 18 | buildInputs = [ pkg-config SDL2 ]; 19 | 20 | installPhase = '' 21 | mkdir -p $out/bin 22 | mkdir -p $out/share/applications 23 | 24 | mv ./sowon $out/bin 25 | echo " 26 | [Desktop Entry] 27 | Name=sowon 28 | GenericName=Starting Soon Timer for Tsoding Streams 29 | Keywords=clock;timer;countdown 30 | Exec=sowon 31 | Type=Application 32 | " > $out/share/applications/sowon.desktop 33 | ''; 34 | 35 | meta = { 36 | description = "Starting Soon Timer for Tsoding Streams"; 37 | homepage = "https://github.com/tsoding/sowon"; 38 | license = lib.licenses.mit; 39 | }; 40 | } 41 | 42 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/spotify.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | spotify 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/steam.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | steam 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/super-tux-kart.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | superTuxKart 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/super-tux.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | superTux 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/synfigstudio.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | synfigstudio 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/thunar.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | xfce.thunar 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/tor-browser.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | tor-browser 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/vesktop.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | vesktop 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/via.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | via 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/virtualbox.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | virtualbox 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/vscode.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | vscode 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/whatsapp-for-linux.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | whatsapp-for-linux 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/gui-apps/wireshark.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | wireshark 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/misc/breeze.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | kdePackages.breeze 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/misc/comic-relief.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | comic-relief 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/misc/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./rofi.nix 6 | ./swww.nix 7 | ./swaynotificationcenter.nix 8 | ./hyprshot.nix 9 | ./eww.nix 10 | ./hyprcursor.nix 11 | ./nerdfonts.nix 12 | ./swaylock.nix 13 | ./breeze.nix 14 | ./comic-relief.nix 15 | ]; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /home-manager/modules/packages/misc/eww.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | eww 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/misc/hyprcursor.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | hyprcursor 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/misc/hyprshot.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | hyprshot 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/misc/nerdfonts.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | (nerdfonts.override { 6 | fonts = [ "Hack" ]; 7 | }) 8 | ]; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /home-manager/modules/packages/misc/rofi.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | rofi-wayland 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/misc/swaylock.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | swaylock 6 | ]; 7 | 8 | programs.swaylock = { 9 | enable = true; 10 | catppuccin.enable = true; 11 | }; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /home-manager/modules/packages/misc/swaynotificationcenter.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | swaynotificationcenter 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/misc/swww.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | home.packages = with pkgs; [ 5 | swww 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /home-manager/modules/packages/shell/bash.nix: -------------------------------------------------------------------------------- 1 | { shared-config, ... }: 2 | 3 | { 4 | programs.bash = { 5 | enable = true; 6 | shellAliases = shared-config.aliases; 7 | bashrcExtra = shared-config.init-extra; 8 | }; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /home-manager/modules/packages/shell/default.nix: -------------------------------------------------------------------------------- 1 | { pkgs, inputs, ... }: let 2 | shared-config = { 3 | aliases = { 4 | rebuild = "rebuild-system && rebuild-home"; 5 | rebuild-home = "home-manager switch --flake '.#${inputs.username}' -b backup"; 6 | rebuild-system = "sudo nixos-rebuild switch --flake '.#${inputs.hostname}' --impure"; 7 | trewa = "tree"; 8 | fuck = "thefuck"; 9 | bruh = "thefuck"; 10 | ripgrep = "rg"; 11 | history = "history 1"; # show the whole history 12 | is-alias = "type"; 13 | # If the bar will ever become unresponsive, you can use this command to restart it. 14 | fix-eww = "pkill eww && eww daemon && eww open bar"; 15 | # Godot is configured to use an external editor listening on this port. 16 | nvim = "nvim --listen 127.0.0.1:55432"; 17 | godot = "godot4"; 18 | kill-port = "killport"; 19 | make-bootable-dev = "makebootabledev"; 20 | }; 21 | init-extra = '' 22 | killport() { 23 | if [ -z "$1" ]; then 24 | echo "Usage: killport " 25 | return 1 26 | fi 27 | kill $(lsof -t -i :"$1") 28 | } 29 | 30 | makebootabledev() { 31 | if [[ -z "$1" || -z "$2" ]]; then 32 | echo "Usage: makebootabledev " 33 | return 1 34 | fi 35 | 36 | input_file="$1" 37 | dev="$2" 38 | 39 | sudo umount $dev 40 | sudo dd if=$input_file of=$dev bs=4M status=progress 41 | sync 42 | sudo eject $dev 43 | } 44 | ''; 45 | }; 46 | 47 | zsh-config = import ./zsh.nix { inherit shared-config; inherit pkgs; }; 48 | bash-config = import ./bash.nix { inherit shared-config; }; 49 | in 50 | 51 | { 52 | imports = [ 53 | zsh-config 54 | bash-config 55 | ]; 56 | } 57 | 58 | -------------------------------------------------------------------------------- /home-manager/modules/packages/shell/zsh.nix: -------------------------------------------------------------------------------- 1 | { shared-config, pkgs, ... }: 2 | 3 | { 4 | programs.zsh = { 5 | enable = true; 6 | syntaxHighlighting = { 7 | enable = true; 8 | catppuccin.enable = true; 9 | }; 10 | shellAliases = shared-config.aliases; 11 | autosuggestion.enable = true; 12 | enableCompletion = true; 13 | defaultKeymap = "viins"; 14 | history = { 15 | extended = true; 16 | ignoreDups = false; 17 | save = 1000000; 18 | size = 1000000; 19 | share = true; 20 | }; 21 | plugins = [{ 22 | name = "zsh-nix-shell"; 23 | file = "nix-shell.plugin.zsh"; 24 | src = pkgs.fetchFromGitHub { 25 | owner = "chisui"; 26 | repo = "zsh-nix-shell"; 27 | rev = "v0.8.0"; 28 | sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7"; 29 | }; 30 | }]; 31 | initExtra = '' 32 | # Prompt 33 | PS1='%F{#cba6f7}%n%F{#b4befe}@%F{#cba6f7}%m %F{#b4befe}%~ %F{#a6e3a1}$ ' 34 | 35 | # Bind "'j" to exiting insert mode 36 | bindkey -M viins "'j" vi-cmd-mode 37 | # Bind "'a" to accepting autosuggestion 38 | bindkey "'a" autosuggest-accept 39 | 40 | # Auto-run `nix-shell` if `shell.nix` is available after a directory change 41 | function auto_nix_shell { 42 | if [[ -f ./shell.nix ]]; then 43 | echo '"shell.nix" spotted, running `nix-shell`..' 44 | nix-shell 45 | fi 46 | } 47 | 48 | chpwd_functions+=("auto_nix_shell") 49 | 50 | # Below code was grabbed from: 51 | # https://gist.github.com/LukeSmithxyz/e62f26e55ea8b0ed41a65912fbebbe52 52 | # Change cursor shape for different vi modes. 53 | function zle-keymap-select { 54 | if [[ $KEYMAP == vicmd ]] || 55 | [[ $1 = 'block' ]]; then 56 | echo -ne '\e[1 q' 57 | elif [[ $KEYMAP == main ]] || 58 | [[ $KEYMAP == viins ]] || 59 | [[ $KEYMAP = "" ]] || 60 | [[ $1 = "beam" ]]; then 61 | echo -ne "\e[5 q" 62 | fi 63 | } 64 | zle -N zle-keymap-select 65 | zle-line-init() { 66 | echo -ne "\e[5 q" 67 | } 68 | zle -N zle-line-init 69 | echo -ne '\e[5 q' # Use beam shape cursor on startup. 70 | preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt. 71 | '' + shared-config.init-extra; 72 | }; 73 | } 74 | 75 | -------------------------------------------------------------------------------- /home-manager/modules/spicetify.nix: -------------------------------------------------------------------------------- 1 | { inputs, pkgs, ... }: 2 | let 3 | spicetify-pkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; 4 | in 5 | { 6 | programs.spicetify = { 7 | enable = true; 8 | theme = spicetify-pkgs.themes.catppuccin; 9 | colorScheme = "mocha"; 10 | enabledExtensions = with spicetify-pkgs.extensions; [ 11 | keyboardShortcut 12 | loopyLoop 13 | trashbin 14 | groupSession 15 | playlistIcons 16 | fullAlbumDate 17 | goToSong 18 | listPlaylistsWithSong 19 | playlistIntersection 20 | skipStats 21 | wikify 22 | songStats 23 | autoVolume 24 | showQueueDuration 25 | copyToClipboard 26 | history 27 | # genre 28 | adblock 29 | savePlaylists 30 | autoSkip 31 | playNext 32 | volumePercentage 33 | ]; 34 | }; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /home-manager/modules/systemd.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | # Nicely reload system units when changing configs 5 | systemd.user.startServices = "sd-switch"; 6 | } 7 | 8 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # In order to suppress this warning, run the script with first parameter set to "y" 4 | startup_warning () { 5 | echo "WARNING: This script was created to setup Khenzii's working environment (NixOS configuration + some dotfiles)" 6 | 7 | echo "" 8 | 9 | echo "It will execute those steps in order to do so:" 10 | echo "1. clone https://github.com/Khenziii/nixos-config [1]" 11 | echo "2. create symlinks using GNU's stow in order to apply settings" 12 | echo "3. run some commands to setup applied settings (for example rebuild the system, if NixOS config got applied)" 13 | 14 | echo "" 15 | 16 | echo "[1] Please make sure, that you're running this script in the directory from which you'd like to manage the config. You won't be able to move this folder later, without breaking all of the symlinks." 17 | 18 | echo "" 19 | 20 | read -p "Do you want to proceed? (Y/n): " response 21 | 22 | # `^^` converts the string to uppercase 23 | if [ "${response^^}" != "Y" ]; then 24 | echo "Exiting.." 25 | exit 26 | fi 27 | 28 | echo "Proceeding.." 29 | } 30 | 31 | # Exits, if the script doesn't have necessary permissions 32 | check_if_executed_by_root() { 33 | if ! [ "$EUID" = "0" ]; then 34 | echo "This script needs to be executed with 'sudo', or by the root user. Exiting.." 35 | exit 36 | fi 37 | } 38 | 39 | # Exits, if $1 is not installed 40 | check_if_installed () { 41 | if ! which $1 > /dev/null 2>&1; then 42 | echo "$1 is not installed. Please install it, and rerun the script." 43 | exit 44 | fi 45 | } 46 | 47 | # Exits, if not running an Unix based OS 48 | check_if_running_unix() { 49 | # This variable will be set to "Darwin" for MacOS and "Linux" for Linux distributions 50 | os_name=$(uname -s) 51 | 52 | if ! ([ "$os_name" = "Darwin" ] || [ "$os_name" = "Linux" ]); then 53 | echo "You're not using an Unix-Like OS. Please stop using Windows (:pray:) and rerun this script, lol." 54 | exit 55 | fi 56 | } 57 | 58 | # Exits, if not running NixOS 59 | check_if_running_nixos() { 60 | if ! cat /etc/os-release | grep -q "NixOS"; then 61 | echo "You're not running NixOS, exiting.." 62 | exit 63 | fi 64 | } 65 | 66 | agreement=$1 67 | if [ "${agreement^^}" != "Y" ]; then 68 | startup_warning 69 | fi 70 | 71 | check_if_running_unix 72 | check_if_executed_by_root 73 | check_if_installed "git" 74 | check_if_installed "stow" 75 | 76 | echo "Running 'git clone'.." 77 | 78 | git clone https://github.com/Khenziii/nixos-config || { echo "Failed to run 'git clone', exiting.."; exit; } 79 | cd nixos-config 80 | 81 | echo "Creating dotfiles symlinks.." 82 | 83 | stow --no-folding --adopt -t "/home/$SUDO_USER" dotfiles 84 | 85 | echo "Creating placeholders.." 86 | 87 | # Those files are written to by `nwg-displays`, and imported from hyprland.conf. 88 | # During the installation phase, we create empty placeholders, so that mentioned 89 | # imports don't throw any "File not found" errors. 90 | touch ~/.config/hypr/monitors.conf 91 | touch ~/.config/hypr/workspaces.conf 92 | 93 | # Ensure, that `/etc/nixos/hardware-configuration.nix` is present. 94 | echo "Generating NixOS config.." 95 | 96 | check_if_running_nixos 97 | sudo nixos-generate-config 98 | 99 | echo "Installing NixOS config.." 100 | 101 | sudo nixos-rebuild switch --flake ".#iusenixosbtw" --impure 102 | home-manager switch --flake ".#khenzii" 103 | 104 | echo "Successfully applied the whole config!" 105 | 106 | -------------------------------------------------------------------------------- /nixos/README.md: -------------------------------------------------------------------------------- 1 | ## nixos 2 | 3 | This directory contains my NixOS configuration. 4 | 5 | ## What's NixOS? 6 | 7 | The NixOS project consists of 3 core parts: 8 | 9 | 1. [Nix](https://github.com/NixOS/nix) - a purely functional package manager. 10 | 2. [NixOS](https://github.com/NixOS/nixpkgs/tree/master/nixos) - a distro specifficaly made to be managed using Nix. 11 | 3. [Nixpkgs](https://github.com/NixOS/nixpkgs) - a collection of official packages that are downloaded using Nix. 12 | 13 | The difference between Nix and other package managers, is the fact that Nix setups are fully reproducible. 14 | 15 | You might be wondering "How?" & the answer is actually rather simple: we store the configuration in a file! (no, really) 16 | 17 | Instead of imperatively installing packages, we basically create a file storing a list of all the packages that we have installed. 18 | 19 | This makes us able to just move this file to another machine, and install every single package that we've had before. 20 | 21 | On top of that, we can also configure our system using Nix. We can, for example, define our hostname, or whether bluetooth should be enabled on boot. 22 | 23 | If you spend a lot of time configuring your machine, Nix ensures that you'll never lose your settings and that you'll be able to manage them from a single place. 24 | 25 | *Keep in mind, that I've presented an simplified description; for more info, see the [official documentation](https://nixos.org/learn).* 26 | 27 | ## Installation 28 | 29 | > [!NOTE] 30 | > You obviously need to use NixOS for this. 31 | 32 | If you want to install my NixOS config in a standalone manner, you can symlink files from this directory to `/etc/nixos` and rebuild your configuration. Here's how to do this: 33 | 34 | > [!IMPORTANT] 35 | > If you have any existing configuration, back it up using this command: 36 | > 37 | > ```shell 38 | > $ sudo mv /etc/nixos /etc/nixos-old 39 | > ``` 40 | 41 | ```shell 42 | $ sudo stow -t /etc/nixos . 43 | ``` 44 | 45 | After that, you can rebuild to apply the config: 46 | 47 | ```shell 48 | $ sudo nixos-rebuild switch --impure 49 | ``` 50 | 51 | -------------------------------------------------------------------------------- /nixos/configuration.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./modules 6 | ../shared/shared.nix 7 | /etc/nixos/hardware-configuration.nix 8 | ]; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /nixos/modules/bluetooth.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | hardware.bluetooth.enable = true; 5 | hardware.bluetooth.powerOnBoot = true; 6 | } 7 | 8 | -------------------------------------------------------------------------------- /nixos/modules/boot.nix: -------------------------------------------------------------------------------- 1 | { config, ... }: 2 | 3 | { 4 | # Allows broadcasting to the virtual camera in OBS studio. 5 | # See: https://wiki.nixos.org/wiki/OBS_Studio#Using_the_Virtual_Camera 6 | boot = { 7 | extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; 8 | kernelModules = [ "v4l2loopback" ]; 9 | extraModprobeConfig = '' 10 | options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1 11 | ''; 12 | }; 13 | 14 | boot.loader = { 15 | efi.canTouchEfiVariables = true; 16 | grub = { 17 | enable = true; 18 | device = "nodev"; 19 | useOSProber = true; 20 | efiSupport = true; 21 | }; 22 | }; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /nixos/modules/catppuccin.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | catppuccin = { 5 | enable = true; 6 | flavor = "mocha"; 7 | accent = "mauve"; 8 | }; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /nixos/modules/core.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | nix.settings.experimental-features = [ 5 | "nix-command" 6 | "flakes" 7 | ]; 8 | 9 | # This probably shouldn't be changed. Please, 10 | # read the wiki before modifying this. 11 | system.stateVersion = "23.11"; 12 | 13 | # Create a 8GB swap file 14 | swapDevices = [{ 15 | device = "/swapfile"; 16 | size = 1024 * 8; # Size is in MB 17 | }]; 18 | boot.kernel.sysctl."vm.swappiness" = 80; 19 | 20 | # Allow access to all hidraw devices. This is necessary for 21 | # keyboard configuration via apps such as VIA. See: 22 | # https://bbs.archlinux.org/viewtopic.php?id=285709 23 | services.udev.extraRules = '' 24 | SUBSYSTEM=="hidraw", MODE="0660", GROUP="input" 25 | ''; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /nixos/modules/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./bluetooth.nix 6 | ./boot.nix 7 | ./catppuccin.nix 8 | ./core.nix 9 | ./desktop-environment.nix 10 | ./location.nix 11 | ./networking.nix 12 | ./printing.nix 13 | ./sound.nix 14 | ./users.nix 15 | ./shell.nix 16 | ./external.nix 17 | ./packages 18 | ]; 19 | } 20 | 21 | -------------------------------------------------------------------------------- /nixos/modules/desktop-environment.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | services.xserver.enable = true; 5 | services.displayManager.sddm = { 6 | enable = true; 7 | package = pkgs.kdePackages.sddm; 8 | }; 9 | programs.hyprland = { 10 | enable = true; 11 | xwayland.enable = true; 12 | }; 13 | 14 | # Configure keymap in X11 15 | services.xserver.xkb.layout = "pl"; 16 | 17 | services.keyd = { 18 | enable = true; 19 | keyboards.default = { 20 | ids = [ "*" ]; 21 | settings.main = { 22 | # Remaps right control to the super key. 23 | # This is useful on some laptops, where 24 | # there is no right-side super. 25 | rightcontrol = "rightmeta"; 26 | }; 27 | }; 28 | }; 29 | 30 | # Wayland doesn't provide a scren sharing API by default. 31 | # According to theirs philosophy, the desktop environment 32 | # should implement this. Thus the portals. 33 | xdg.portal = { 34 | enable = true; 35 | extraPortals = with pkgs; [ 36 | xdg-desktop-portal-hyprland 37 | ]; 38 | }; 39 | 40 | security.polkit.enable = true; 41 | 42 | programs.dconf.enable = true; 43 | } 44 | 45 | -------------------------------------------------------------------------------- /nixos/modules/external.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | services.macos-ventura = { 5 | enable = false; 6 | openFirewall = true; 7 | vncListenAddr = "0.0.0.0"; 8 | }; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /nixos/modules/location.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | # Set your time zone. 5 | time.timeZone = "Europe/Warsaw"; 6 | 7 | # Select internationalisation properties. 8 | i18n.defaultLocale = "en_US.UTF-8"; 9 | 10 | i18n.extraLocaleSettings = { 11 | LC_ADDRESS = "pl_PL.UTF-8"; 12 | LC_IDENTIFICATION = "pl_PL.UTF-8"; 13 | LC_MEASUREMENT = "pl_PL.UTF-8"; 14 | LC_MONETARY = "pl_PL.UTF-8"; 15 | LC_NAME = "pl_PL.UTF-8"; 16 | LC_NUMERIC = "pl_PL.UTF-8"; 17 | LC_PAPER = "pl_PL.UTF-8"; 18 | LC_TELEPHONE = "pl_PL.UTF-8"; 19 | LC_TIME = "pl_PL.UTF-8"; 20 | }; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /nixos/modules/networking.nix: -------------------------------------------------------------------------------- 1 | { inputs, ... }: 2 | 3 | { 4 | networking.hostName = inputs.hostname; 5 | # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. 6 | 7 | # Configure network proxy if necessary 8 | # networking.proxy.default = "http://user:password@proxy:port/"; 9 | # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; 10 | 11 | # Enable networking 12 | networking.networkmanager.enable = true; 13 | 14 | networking.firewall.allowedTCPPorts = [ 8080 8000 ]; 15 | } 16 | 17 | -------------------------------------------------------------------------------- /nixos/modules/packages/cli-utilities/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./git.nix 6 | ./home-manager.nix 7 | ./stow.nix 8 | ./vim.nix 9 | ./docker.nix 10 | ]; 11 | } 12 | 13 | -------------------------------------------------------------------------------- /nixos/modules/packages/cli-utilities/docker.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | virtualisation.docker = { 5 | enable = true; 6 | enableOnBoot = true; 7 | # Necessary to run docker swarms. 8 | liveRestore = false; 9 | }; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /nixos/modules/packages/cli-utilities/git.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | environment.systemPackages = with pkgs; [ 5 | git 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /nixos/modules/packages/cli-utilities/home-manager.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | environment.systemPackages = with pkgs; [ 5 | home-manager 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /nixos/modules/packages/cli-utilities/stow.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | environment.systemPackages = with pkgs; [ 5 | stow 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /nixos/modules/packages/cli-utilities/vim.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | environment.systemPackages = with pkgs; [ 5 | vim 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /nixos/modules/packages/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./gui-apps 6 | ./cli-utilities 7 | ./misc 8 | ./development-environment 9 | ]; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /nixos/modules/packages/development-environment/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./shared 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /nixos/modules/packages/development-environment/shared/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./nix-ld.nix 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /nixos/modules/packages/development-environment/shared/nix-ld.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | programs.nix-ld = { 5 | enable = true; 6 | libraries = with pkgs; [ 7 | aapt 8 | ]; 9 | }; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /nixos/modules/packages/gui-apps/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./konsole.nix 6 | ./steam.nix 7 | ./gparted.nix 8 | ./virtualbox.nix 9 | ]; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /nixos/modules/packages/gui-apps/gparted.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | environment.systemPackages = with pkgs; [ 5 | gparted 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /nixos/modules/packages/gui-apps/konsole.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | environment.systemPackages = with pkgs; [ 5 | konsole 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /nixos/modules/packages/gui-apps/steam.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | programs.steam = { 5 | enable = true; 6 | remotePlay.openFirewall = true; 7 | dedicatedServer.openFirewall = true; 8 | }; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /nixos/modules/packages/gui-apps/virtualbox.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | virtualisation.virtualbox = { 5 | host.enable = true; 6 | guest = { 7 | enable = true; 8 | dragAndDrop = true; 9 | clipboard = true; 10 | }; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /nixos/modules/packages/misc/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | imports = [ 5 | ./gnupg.nix 6 | ./os-prober.nix 7 | ./ntfs3g.nix 8 | ./lxsession.nix 9 | ]; 10 | } 11 | 12 | -------------------------------------------------------------------------------- /nixos/modules/packages/misc/gnupg.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | programs.gnupg.agent = { 5 | enable = true; 6 | enableSSHSupport = true; 7 | }; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /nixos/modules/packages/misc/lxsession.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | environment.systemPackages = with pkgs; [ 5 | lxde.lxsession 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /nixos/modules/packages/misc/ntfs3g.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | environment.systemPackages = with pkgs; [ 5 | ntfs3g 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /nixos/modules/packages/misc/os-prober.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | { 4 | environment.systemPackages = with pkgs; [ 5 | os-prober 6 | ]; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /nixos/modules/printing.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | services.printing.enable = true; 5 | } 6 | 7 | -------------------------------------------------------------------------------- /nixos/modules/shell.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | # shells should be enabled system wide, even 5 | # if they're managed by home-manager, in order 6 | # to grant them necessary context. See: 7 | # https://nixos.wiki/wiki/Command_Shell 8 | programs.zsh.enable = true; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /nixos/modules/sound.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | # Enable sound with pipewire. 5 | # sound.enable = true; 6 | hardware.pulseaudio.enable = false; 7 | security.rtkit.enable = true; 8 | services.pipewire = { 9 | enable = true; 10 | alsa.enable = true; 11 | alsa.support32Bit = true; 12 | pulse.enable = true; 13 | # If you want to use JACK applications, uncomment this 14 | #jack.enable = true; 15 | 16 | # use the example session manager (no others are packaged yet so this is enabled by default, 17 | # no need to redefine it in your config for now) 18 | #media-session.enable = true; 19 | }; 20 | } 21 | 22 | -------------------------------------------------------------------------------- /nixos/modules/users.nix: -------------------------------------------------------------------------------- 1 | { inputs, pkgs, ... }: 2 | 3 | { 4 | users.defaultUserShell = pkgs.zsh; 5 | users.users.${inputs.username} = { 6 | isNormalUser = true; 7 | description = "Khenzii"; 8 | extraGroups = [ 9 | "networkmanager" 10 | "wheel" 11 | "docker" 12 | "input" 13 | ]; 14 | }; 15 | } 16 | 17 | -------------------------------------------------------------------------------- /shared/README.md: -------------------------------------------------------------------------------- 1 | ## shared 2 | 3 | This directory contains config that is imported both from `home-manager` & `nixos`. Use it to avoid duplication. 4 | 5 | -------------------------------------------------------------------------------- /shared/shared.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | 3 | { 4 | nixpkgs.config.allowUnfree = true; 5 | } 6 | 7 | --------------------------------------------------------------------------------