summaryrefslogtreecommitdiff
path: root/hosts/laptop-nixos/home.nix
blob: 13719663a1481144b1812619710f6b9af5c4e02e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
{ config, pkgs, ... }:

{
  home.username = "kyren";
  home.homeDirectory = "/home/kyren";

  # This value determines the Home Manager release that your configuration is
  # compatible with. This helps avoid breakage when a new Home Manager release
  # introduces backwards incompatible changes.
  #
  # You should not change this value, even if you update Home Manager. If you do
  # want to update the value, then make sure to first check the Home Manager
  # release notes.
  home.stateVersion = "24.05"; # Please read the comment before changing.

  home.packages = with pkgs; [
    (nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
    keepassxc
    discord
    git
    gh
    delta
    nh
    stow
    eza
    oh-my-posh
    gcc
    gnumake
    neovim
    fzf
    zoxide
    tmux
    bc
    keychain
    bat
    sqlite
    fd
    ripgrep
    wakatime-cli
    fastfetch
    btop
    protonvpn-gui
    unzip
    go
    pnpm
    nodejs_23
    (python312.withPackages (pypkgs: [
      pypkgs.matplotlib
      pypkgs.pandas
    ]))
    watchexec
    golangci-lint
    libnotify
    wl-clipboard
    whatsie
    libratbag
    piper
    goose
    sqlc
    jetbrains.idea-community
    jdk
    maven
    gradle
    kdePackages.filelight
    kotlin
    (minecraft.overrideAttrs (finalAttrs: previousAttrs: {
      meta.lib.broken = false;
    }))
    rustup
    tokei
    graphviz
    kdePackages.kmines # Minesweeper for fun lol
    kdePackages.kpat # Solitaire 
    # btw missing the card/brick thing with weird symbols, not sure what that game was called
    gimp
    kdePackages.korganizer
    kdePackages.kaddressbook
    gitleaks
    rar
    gomodifytags
  ];

  # Home Manager is pretty good at managing dotfiles. The primary way to manage
  # plain files is through 'home.file'.
  home.file = {
    ".jdks/openjdk17".source = pkgs.openjdk17;
    # # Building this configuration will create a copy of 'dotfiles/screenrc' in
    # # the Nix store. Activating the configuration will then make '~/.screenrc' a
    # # symlink to the Nix store copy.
    # ".screenrc".source = dotfiles/screenrc;

    # # You can also set the file content immediately.
    # ".gradle/gradle.properties".text = ''
    #   org.gradle.console=verbose
    #   org.gradle.daemon.idletimeout=3600000
    # '';
  };

  home.sessionPath = [
    "$HOME/.local/bin"
  ];

  xdg.desktopEntries = {
    "com.ktechpit.whatsie" = {
      name = "WhatsApp";
      genericName = "Watsie, unofficial WhatsApp client";
      exec = "whatsie %U";
      terminal = false;
      icon = "com.github.eneshecan.WhatsAppForLinux";
      categories = [ "Application" "Network" "WebBrowser" ];
      settings = {
        Keywords = "chat;im;messaging;messenger;sms;whatsapp;whatsapp-desktop;whatsie;";
      };
    };
  };


  # Let Home Manager install and manage itself.
  programs.home-manager.enable = true;
}