From 8f4a1a085d634d6c615088d877beab59b0985acb Mon Sep 17 00:00:00 2001 From: janis Date: Wed, 30 Jul 2025 23:28:32 +0200 Subject: [PATCH] ummmm.. icon themes, emacs yippie --- flake.nix | 17 +++++++++++++++- home/default.nix | 39 +++++++++++++++++++++++++++++++++++- home/development/default.nix | 6 ++++++ home/development/nix.nix | 5 +++++ home/development/rust.nix | 4 ++++ home/emacs.nix | 24 +++++++++++++++++++--- home/sway.nix | 7 +++++++ system/default.nix | 2 ++ 8 files changed, 99 insertions(+), 5 deletions(-) create mode 100644 home/development/default.nix create mode 100644 home/development/nix.nix create mode 100644 home/development/rust.nix diff --git a/flake.nix b/flake.nix index 5f0dfbf..81bc85b 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,7 @@ { inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; + nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -10,11 +11,22 @@ inputs.nixpkgs.follows = "nixpkgs"; }; nur.url = "github:nix-community/nur"; + emacs-overlay = { + url = "github:nix-community/emacs-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = inputs @ { self, disko, nixpkgs, home-manager, ... }: + outputs = inputs @ { self, disko, nixpkgs, nixpkgs-unstable, home-manager, emacs-overlay, ... }: let system = "x86_64-linux"; + overlay-unstable = final: prev: { + unstable = import nixpkgs-unstable { + inherit system; + config.allowUnfree = true; # Allow unfree packages globally + }; + }; + in rec { mkSystem = {host, ...}: nixpkgs.lib.nixosSystem { inherit system; @@ -46,8 +58,11 @@ overlays = [ inputs.nur.overlays.default + emacs-overlay.overlays.default + overlay-unstable ]; }; + }; nixosConfigurations = { diff --git a/home/default.nix b/home/default.nix index 78e0a8b..31cb84e 100644 --- a/home/default.nix +++ b/home/default.nix @@ -12,6 +12,7 @@ in { ./libinput.nix ./git-ssh.nix ./emacs.nix + ./development ]; programs.nh = { @@ -19,6 +20,28 @@ in { # flake = "/etc/nixos/config#laptop" }; + gtk = { + enable = true; + theme = { + name = "Breeze-Dark"; + package = pkgs.kdePackages.breeze-gtk; + }; + iconTheme = { + name = "Papirus-Dark"; + package = pkgs.papirus-icon-theme; + }; + cursorTheme = { + name = "WhiteSur-cursors"; + package = pkgs.whitesur-cursors; + size = 24; + }; + }; + + dconf.settings = { + "org/gnome/desktop/interface" = { + }; + }; + fonts.fontconfig.enable = true; home = { stateVersion = "25.05"; @@ -28,8 +51,19 @@ in { sessionVariables = { EDITOR = "nvim"; VISUAL = "nvim"; + GTK_THEME = "Breeze-Dark"; }; + pointerCursor = { + gtk.enable = true; + x11.enable = true; + x11.defaultCursor = "WhiteSur-cursors"; + name = "WhiteSur-cursors"; + package = pkgs.whitesur-cursors; + size = 32; + }; + + packages = with pkgs; [ # Add your global packages here neovim @@ -41,9 +75,12 @@ in { htop pavucontrol ripgrep + vanilla-dmz + + # file manager + nemo-with-extensions screenshot - # nur.repos.LuisChDev.nordvpn ]; }; } diff --git a/home/development/default.nix b/home/development/default.nix new file mode 100644 index 0000000..ae771fa --- /dev/null +++ b/home/development/default.nix @@ -0,0 +1,6 @@ +{...}: { + imports = [ + ./nix.nix + ./rust.nix + ]; +} diff --git a/home/development/nix.nix b/home/development/nix.nix new file mode 100644 index 0000000..941e3d3 --- /dev/null +++ b/home/development/nix.nix @@ -0,0 +1,5 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + nixd + ]; +} diff --git a/home/development/rust.nix b/home/development/rust.nix new file mode 100644 index 0000000..d228581 --- /dev/null +++ b/home/development/rust.nix @@ -0,0 +1,4 @@ +{pkgs, ...}: { + # home.packages = with pkgs; [ + # ]; +} diff --git a/home/emacs.nix b/home/emacs.nix index 80ac8e1..852d807 100644 --- a/home/emacs.nix +++ b/home/emacs.nix @@ -10,12 +10,14 @@ in { # TODO: turn this into a FHS or package so these dependencies don't have to be # accessible from the global namespace. home.packages = with pkgs; [ - emacs python3 - enchant # spell checking + enchant2 # spell checking + enchant2.dev # for building jinx + pkg-config ripgrep # for Emacs' ripgrep integration libvterm-neovim # vterm support for Emacs nodejs_24 + copilot-node-server copilot-language-server-fhs cmake libtool @@ -35,10 +37,26 @@ in { tree-sitter-markdown pkgs.tree-sitter-slang ])) - ]; + + # spelling + (hunspellWithDicts [ + hunspellDicts.en-gb-ise + hunspellDicts.en-gb-large + hunspellDicts.de-de + hunspellDicts.da-dk + ]) + +# language servers + pkgs.unstable.rust-analyzer + nixd]; + # xdg.configFile = { # "emacs" = { # source = emacs-config; # }; # }; + programs.emacs = { + enable = true; + package = pkgs.emacs-git-pgtk; + }; } diff --git a/home/sway.nix b/home/sway.nix index 6052fea..74c1ab0 100644 --- a/home/sway.nix +++ b/home/sway.nix @@ -17,6 +17,7 @@ in { alacritty waybar sway + whitesur-cursors rofi-wayland ]; wayland = { @@ -30,6 +31,12 @@ in { config = { modifier = "${mod}"; + seat = { + "*" = { + xcursor_theme = "\"WhiteSur-cursors\" 32"; + }; + }; + output = { "*".scale = "${lib.strings.floatToString super-config.desktop_scale}"; }; diff --git a/system/default.nix b/system/default.nix index f0d6006..66464fb 100644 --- a/system/default.nix +++ b/system/default.nix @@ -47,6 +47,8 @@ sudo.wheelNeedsPassword = false; # Allow sudo without password }; + programs.dconf.enable = true; + fonts = { enableDefaultPackages = true; packages = with pkgs; [