├── .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 |

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 |
--------------------------------------------------------------------------------