/ home.nix
home.nix
  1  { config, pkgs, ... }:
  2  
  3  {
  4    imports = [
  5      ./wm/mako.nix
  6      ./wm/niri/niri.nix
  7      ./wm/waybar/waybar.nix # You might have to change the temperature module
  8      ./wm/wallpaper/wallpaper.nix
  9      ./cli/sh.nix
 10      ./cli/tilix.nix
 11      ./cli/fetch.nix
 12      ./cli/ranger.nix
 13      ./cli/alacritty.nix
 14      ./cli/fzf.nix
 15      ./cli/fd.nix
 16      ./cli/fonts.nix
 17      ./cli/libarchive.nix
 18      ./cli/btop.nix
 19      ./cli/ncspot.nix
 20      ./cli/fortune.nix
 21      ./cli/openvpn.nix
 22      ./cli/xeyes.nix
 23      ./cli/netcat.nix
 24      ./cli/putty.nix
 25      ./cli/screen.nix
 26      ./cli/picocom.nix
 27      ./cli/bluetooth.nix
 28      # ./cli/proton.nix
 29      ./cli/tree.nix
 30      ./cli/autocpufreq.nix
 31      ./cli/kitty/kitty.nix
 32      ./cli/neovim/neovim.nix
 33      ./cli/zathura/zathura.nix
 34      ./applications/browser.nix
 35      ./applications/godot.nix
 36      ./applications/cursor.nix
 37      ./applications/unity.nix
 38      ./applications/zenity.nix
 39      ./applications/zed.nix
 40      ./applications/overskride.nix
 41      ./applications/steam.nix # needed for launching steam in wayland environment
 42      ./applications/immich.nix
 43      # ./applications/vscode.nix
 44      ./applications/vlc.nix
 45      ./applications/qbit.nix
 46      ./applications/bottles.nix
 47      ./applications/saber.nix
 48      # ./applications/lutris.nix
 49      # ./applications/heroic.nix
 50      ./applications/krita.nix
 51      ./applications/xournalpp.nix
 52      ./applications/stremio.nix
 53      ./applications/obs.nix
 54      ./applications/inkscape.nix
 55      ./applications/keepassxc.nix
 56      ./applications/impression.nix
 57      ./applications/aseprite.nix
 58      ./applications/jellyfin.nix
 59      ./applications/onlyoffice.nix
 60      ./applications/flatpak.nix # Put unfree applications here(in you can find it)
 61      ./applications/zen.nix
 62      ./applications/hyprlock/hyprlock.nix
 63      ./applications/rofi/rofi.nix
 64      ./dev/cargo.nix
 65      ./dev/jetbrains.nix # not free obviously
 66      ./dev/npm.nix
 67      ./dev/eclipse.nix
 68      ./dev/insomnia.nix
 69      ./dev/openssl.nix
 70      ./dev/proglang.nix
 71    ];
 72  
 73    # Home Manager needs a bit of information about you and the paths it should
 74    # manage.
 75    home.username = "mrkrebs";
 76    home.homeDirectory = "/home/mrkrebs";
 77  
 78    # This value determines the Home Manager release that your configuration is
 79    # compatible with. This helps avoid breakage when a new Home Manager release
 80    # introduces backwards incompatible changes.
 81    #
 82    # You should not change this value, even if you update Home Manager. If you do
 83    # want to update the value, then make sure to first check the Home Manager
 84    # release notes.
 85    home.stateVersion = "25.05"; # Please read the comment before changing.
 86  
 87    # The home.packages option allows you to install Nix packages into your
 88    # environment.
 89    home.packages = [
 90      # # Adds the 'hello' command to your environment. It prints a friendly
 91      # # "Hello, world!" when run.
 92      # pkgs.hello
 93  
 94      # # It is sometimes useful to fine-tune packages, for example, by applying
 95      # # overrides. You can do that directly here, just don't forget the
 96      # # parentheses. Maybe you want to install Nerd Fonts with a limited number of
 97      # # fonts?
 98      # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
 99  
100      # # You can also create simple shell scripts directly inside your
101      # # configuration. For example, this adds a command 'my-hello' to your
102      # # environment:
103      # (pkgs.writeShellScriptBin "my-hello" ''
104      #   echo "Hello, ${config.home.username}!"
105      # '')
106      pkgs.pulseaudio
107      pkgs.playerctl
108    ];
109  
110    # Home Manager is pretty good at managing dotfiles. The primary way to manage
111    # plain files is through 'home.file'.
112    home.file = {
113      # # Building this configuration will create a copy of 'dotfiles/screenrc' in
114      # # the Nix store. Activating the configuration will then make '~/.screenrc' a
115      # # symlink to the Nix store copy.
116      # ".screenrc".source = dotfiles/screenrc;
117  
118      # # You can also set the file content immediately.
119      # ".gradle/gradle.properties".text = ''
120      #   org.gradle.console=verbose
121      #   org.gradle.daemon.idletimeout=3600000
122      # '';
123    };
124  
125    # Home Manager can also manage your environment variables through
126    # 'home.sessionVariables'. These will be explicitly sourced when using a
127    # shell provided by Home Manager. If you don't want to manage your shell
128    # through Home Manager then you have to manually source 'hm-session-vars.sh'
129    # located at either
130    #
131    #  ~/.nix-profile/etc/profile.d/hm-session-vars.sh
132    #
133    # or
134    #
135    #  ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
136    #
137    # or
138    #
139    #  /etc/profiles/per-user/mrkrebs/etc/profile.d/hm-session-vars.sh
140    #
141    # home.sessionVariables = {
142    #   EDITOR = "vim";
143    # };
144  
145    # Let Home Manager install and manage itself.
146    programs.home-manager.enable = true;
147  
148    # Setting xdg.mime
149    xdg.mimeApps = {
150      enable = true;
151      defaultApplications = {
152        "inode/directory" = "pcmanfm.desktop";
153        "text/x-csharp" = "rider.desktop";
154      };
155    };
156  
157  
158  }