From 9aedd27579787ae9b94ffab2db688c3440c1fa70 Mon Sep 17 00:00:00 2001 From: mir Date: Tue, 19 Mar 2024 13:35:09 -0800 Subject: [PATCH] initial commit. working config --- flake.lock | 49 ++++++++++++++ flake.nix | 30 +++++++++ home.nix | 190 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 269 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 home.nix diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..70b89d8 --- /dev/null +++ b/flake.lock @@ -0,0 +1,49 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1706981411, + "narHash": "sha256-cLbLPTL1CDmETVh4p0nQtvoF+FSEjsnJTFpTxhXywhQ=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "652fda4ca6dafeb090943422c34ae9145787af37", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-23.11", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1701282334, + "narHash": "sha256-MxCVrXY6v4QmfTwIysjjaX0XUhqBbxTWWB4HXtDYsdk=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "057f9aecfb71c4437d2b27d3323df7f93c010b7e", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..a820e52 --- /dev/null +++ b/flake.nix @@ -0,0 +1,30 @@ +# copied from https://www.chrisportela.com/posts/home-manager-flake/ +{ + description = "My Home Manager Flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/23.11"; + home-manager = { + url = "github:nix-community/home-manager/release-23.11"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = inputs@{ nixpkgs, home-manager, ...}: { + # For `nix run .` later + defaultPackage.x86_64-linux = home-manager.defaultPackage.x86_64-linux; + defaultPackage.aarch64-linux = home-manager.defaultPackage.aarch64-linux; + + homeConfigurations = { + "mir" = + # let + # specialArgs = { inherit inputs; }; + # in + home-manager.lib.homeManagerConfiguration { + # Note: I am sure this could be done better with flake-utils or something + pkgs = import nixpkgs { system = "aarch64-linux"; }; + modules = [ ./home.nix ]; # Defined later + }; + }; + }; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..395dd31 --- /dev/null +++ b/home.nix @@ -0,0 +1,190 @@ +# { lib, config, pkgs, inputs, ... }: +{ lib, config, pkgs, ... }: + +with lib.hm.gvariant; +{ + # Home Manager needs a bit of information about you and the + # paths it should manage. + home.username = "mir"; + home.homeDirectory = "/home/mir"; + home.packages = [ + pkgs.btop + pkgs.firefox + pkgs.killall + pkgs.gdb + pkgs.neofetch + pkgs.file + pkgs.findutils + pkgs.wget + pkgs.yt-dlp + pkgs.mpv + pkgs.fzf + pkgs.nerdfonts + pkgs.eza + # pkgs.gnupg + # pkgs.python3 + # (pkgs.python3.withPackages( + # ps: with ps; [ + # epc sexpdata six pynput inflect + # pyqt6 + # # pyqt6-qt6 + # pyqt6-sip])) + # (pkgs.emacsWithPackagesFromUsePackage { + # package = pkgs.emacs29-pgtk; + # config = ~/.emacs.d/init.el; + # extraEmacsPackages = epkgs: [ + # epkgs.dash; + # ] + # }) + # pkgs.fetchFromGitHub + ]; + + # 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 can update Home Manager without changing this value. See + # the Home Manager release notes for a list of state version + # changes in each release. + home.stateVersion = "23.05"; + # nix = { + # package = pkgs.nix; + # settings.experimental-features = [ "nix-command" "flakes" ]; + # }; + + # Let Home Manager install and manage itself. + programs.home-manager = { + enable = true; + # version = "23.11"; + }; + # environment.variables = rec { + # EDITOR = "emacs -nw"; + # }; + home.sessionVariables = { + EDITOR = "emacs"; + TERMINAL = "kitty"; + TERM_PROGRAM = "kitty"; + BROWSER = "firefox"; + }; + programs.kitty = { + enable = true; + }; + # environment.systemPackages = with pkgs; [ + # (python3.withPackages( + # ps: with ps; [epc sexpdata six pynput inflect PyQt6 PyQt6-Qt6 PyQt6-sip])) + # ]; + fonts.fontconfig.enable = true; + programs.git = { + enable = true; + package = pkgs.gitFull; + userName = "mir"; + userEmail = "mirmarq428@gmail.com"; + extraConfig = { + credential.helper = "store"; + init.defaultBranch = "main"; + }; + }; + programs.firefox = { + enable = true; + }; + programs.bash = { + enable = true; + initExtra = '' + export EDITOR=emacs\ -nw + ''; + }; + # programs.gdb = { + # enable = true; + # }; + # home.file.".emacs.d" = { + # source = inputs.emacs-config; + # recursive = true; + # }; + home.file.".face".source = builtins.fetchurl { + url = "https://marq42.xyz/rena.webp"; + sha256 = "10x3qvfdp79fmbbi7ljnqx419xmwpiyyr4pfxhynh3xq7fd0laz2"; + }; + # programs.dconf.enable = true; + home.file.".local/share/backgrounds/mojave.jpg".source = builtins.fetchurl { + url = "https://www.teahub.io/photos/full/154-1542362_mac-os-mojave-screenshot.jpg"; + sha256 = "0vrcn44aibdsl1hc6n0jbp0znpwhcb4hyhbzs5690i1nrapcmyka"; + }; + dconf.settings = { + "org/gnome/shell" = { + "favorite-apps" = [ + "org.gnome.Console.desktop" + "firefox.desktop" + "emacs.desktop" + "org.gnome.Settings.desktop" + "org.gnome.Nautilus.desktop" + "btop.desktop" + ]; + }; + "org/gnome/desktop/interface" = { + "color-scheme" = "prefer-dark"; + }; + "org/gnome/mutter" = { + "edge-tiling" = true; + }; + "org/gnome/desktop/background" = { + "picture-uri" = "file:///home/mir/.local/share/backgrounds/mojave.jpg"; + "picture-uri-dark" = "file:///home/mir/.local/share/backgrounds/mojave.jpg"; + }; + "org/gnome/desktop/screensaver" = { + "picture-uri" = "file:///home/mir/.local/share/backgrounds/mojave.jpg"; + "picture-uri-dark" = "file:///home/mir/.local/share/backgrounds/mojave.jpg"; + }; + "org/gnome/desktop/input-sources" = { + "xkb-options" = [ "caps:escape" ]; + }; + "org/gnome/desktop/wm/preferences" = { + "focus-mode" = "sloppy"; + }; + "org/gnome/settings-daemon/plugins/power" = { + "idle-dim" = false; + "sleep-inactive-ac-type" = "nothing"; + }; + "org/gnome/gnome-system-monitor" = { + "current-tab" = "resources"; + }; + "org/gnome/desktop/interface" = { + "show-battery-percentage" = true; + }; + "org/gnome/desktop/session" = { + "idle-delay" = mkUint32 0; + }; + }; + programs.hyfetch = { + enable = true; + settings = { + preset = "genderfluid"; + mode = "rgb"; + color_align = { + mode = "horizontal"; + }; + backend = "neofetch"; + }; + }; + + programs.gpg = { + enable = true; + # package = pkgs.gnupg.overrideAttrs (orig: { + # version = "2.4.0"; + # src = pkgs.fetchurl { + # url = "mirror://gnupg/gnupg/gnupg-2.4.0.tar.bz2"; + # hash = "sha256-HXkVjdAdmSQx3S4/rLif2slxJ/iXhOosthDGAPsMFIM="; + # }; + # }); + # agent = { + # pinentryFlavor = "gnome3"; + # }; + }; + + services.gpg-agent = { + enable = true; + defaultCacheTtl = 1800; + enableSshSupport = true; + }; + +}