1
0
Fork 0
nix-homemanager-laptop/home.nix

151 lines
4.9 KiB
Nix

{ config, pkgs, inputs, ... }:
# let
# ghidra_pkg = pkgs.ghidra.withExtensions (
# exts:
# builtins.attrValues {
# # inherit (exts) <plugin-name>;
# }
# );
# ghidra_dir = ".config/ghidra/${pkgs.ghidra.distroPrefix}";
# in
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "sudoer777";
home.homeDirectory = "/home/sudoer777";
# 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.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = [
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
# ghidra_pkg
pkgs.nixd
pkgs.nil
pkgs.teams-for-linux
pkgs.vesktop
pkgs.arrpc
# pkgs.simplex-chat-desktop - not available on aarch64
pkgs.freetube
pkgs.signal-desktop-source
pkgs.bitwarden-desktop
pkgs.element-desktop
pkgs.spotube
pkgs.logseq
# pkgs.tidal-hifi - aarch64 build broken
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # 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
# '';
#"${ghidra_dir}/preferences".text = ''
# GhidraShowWhatsNew=false
# SHOW.HELP.NAVIGATION.AID=true
# SHOW_TIPS=false
# TIP_INDEX=0
# G_FILE_CHOOSER.ShowDotFiles=true
# USER_AGREEMENT=ACCEPT
# LastExtensionImportDirectory=${config.home.homeDirectory}/.config/ghidra/scripts/
# LastNewProjectDirectory=${config.home.homeDirectory}/.config/ghidra/repos/
# ViewedProjects=
# RecentProjects=
# '';
# ".config/FreeTube/settings.db".text = ''
# {"_id":"quickBookmarkTargetPlaylistId","value":"favorites"}
# {"_id":"saveWatchedProgress","value":false}
# {"_id":"rememberHistory","value":false}
# {"_id":"useSponsorBlock","value":true}
# '';
};
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. These will be explicitly sourced when using a
# shell provided by Home Manager. If you don't want to manage your shell
# through Home Manager then you have to manually source 'hm-session-vars.sh'
# located at either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/sudoer777/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
# EDITOR = "emacs";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
services.arrpc = {
enable = true;
package = pkgs.arrpc;
};
xdg.desktopEntries = {
# ghidra = {
# name = "Ghidra";
# exec = "env _JAVA_OPTIONS=-Dsun.java2d.uiScale=2 ghidra";
# icon = "ghidra";
# type = "Application";
# comment = "Ghidra Software Reverse Engineering Suite";
# categories = [ "Development" ];
# };
spotube = {
name = "Spotube";
exec = "nixGLMesa spotube";
icon = "spotube";
type = "Application";
comment = "Music Streaming Application";
categories = [ "Music" ];
};
freetube = {
name = "FreeTube";
exec = "nixGLMesa freetube %U";
icon = "freetube";
type = "Application";
comment = "Open Source YouTube app for privacy";
categories = [ "Network" ];
mimeType = [ "x-scheme-handler/freetube" ];
terminal = false;
};
};
}