diff --git a/flake.lock b/flake.lock index 5099713..9b51e5e 100644 --- a/flake.lock +++ b/flake.lock @@ -81,6 +81,27 @@ "type": "github" } }, + "distro-grub-themes": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1734806114, + "narHash": "sha256-FWkDtoLMTTk2Lz4d4LkFjtV/xYyIlpwZlX5Np1QhXls=", + "owner": "AdisonCavani", + "repo": "distro-grub-themes", + "rev": "ebbd17419890059e371a6f2dbf2a7e76190327d4", + "type": "github" + }, + "original": { + "owner": "AdisonCavani", + "repo": "distro-grub-themes", + "type": "github" + } + }, "emacs": { "inputs": { "nixpkgs": [ @@ -134,6 +155,24 @@ "type": "github" } }, + "flake-utils": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -457,6 +496,7 @@ "inputs": { "agenix": "agenix", "disko": "disko", + "distro-grub-themes": "distro-grub-themes", "emacs": "emacs", "home-manager": "home-manager_2", "nix-on-droid": "nix-on-droid", @@ -536,6 +576,21 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "utils": { "locked": { "lastModified": 1659877975, diff --git a/flake.nix b/flake.nix index ab35182..e2ab79a 100644 --- a/flake.nix +++ b/flake.nix @@ -4,6 +4,11 @@ stable.url = "github:NixOS/nixpkgs/nixos-24.11"; nixpkgs-droid.url = "github:NixOS/nixpkgs/nixos-24.05"; + distro-grub-themes = { + url = "github:AdisonCavani/distro-grub-themes"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs"; @@ -75,10 +80,11 @@ }; }; - nixosConfigurations."thrall" = nixpkgs.lib.nixosSystem { + nixosConfigurations."thrall" = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = { inherit inputs; + inherit system; }; modules = [ ( @@ -105,10 +111,11 @@ ]; }; - nixosConfigurations."dregil" = nixpkgs.lib.nixosSystem { + nixosConfigurations."dregil" = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = { inherit inputs; + inherit system; stable = import inputs.stable { system = "x86_64-linux"; }; }; modules = [ ./hosts/dregil ]; @@ -125,7 +132,7 @@ nixOnDroidConfigurations.default = with inputs; nix-on-droid.lib.nixOnDroidConfiguration { - pkgs = import nixpkgs-droid {}; + pkgs = import nixpkgs-droid { }; modules = [ ./hosts/redmi { nix.registry.nixpkgs.flake = nixpkgs-droid; } @@ -138,29 +145,12 @@ system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; }; in - pkgs.haskellPackages.shellFor { + pkgs.mkShell { inherit (self.checks.${system}.pre-commit-check) shellHook; - packages = p: [ - p.xmonad - p.xmonad-contrib - ]; - - withHoogle = true; - - buildInputs = with pkgs; [ - haskellPackages.haskell-language-server - haskellPackages.fourmolu - haskellPackages.hspec-discover - haskellPackages.doctest - haskellPackages.xmonad - haskellPackages.xmonad-contrib - cabal-install - ghcid + packages = with pkgs; [ nixfmt-rfc-style nil - hpack - hlint ]; }; }; diff --git a/home/alex/home.nix b/home/alex/home.nix index 46c4160..59d08a6 100644 --- a/home/alex/home.nix +++ b/home/alex/home.nix @@ -10,6 +10,7 @@ ./cli.nix ./programs/rofi ./programs/xmonad + #./programs/i3 ./programs/jitsi-meet ./programs/simplex-chat ./programs/zathura @@ -17,7 +18,7 @@ ./services/polybar ./services/dunst ./services/udiskie - ./services/picom + # ./services/picom ./services/screen-locker ./services/blueman-applet ./services/network-manager @@ -49,9 +50,10 @@ uhk-agent # my keyboard mosh # ssh via udp rclone + parallel-disk-usage + gdu # gaming support - lutris stable.bottles wine64Packages.stagingFull scummvm @@ -67,7 +69,6 @@ programs = { alacritty.enable = true; - # autorandr.enable = true; browserpass = { enable = true; @@ -111,7 +112,5 @@ ''; }; - # services.autorandr = { enable = true; }; - xsession.enable = true; } diff --git a/home/alex/programs/emacs/doom/config.el b/home/alex/programs/emacs/doom/config.el index 6724ac0..284c64f 100644 --- a/home/alex/programs/emacs/doom/config.el +++ b/home/alex/programs/emacs/doom/config.el @@ -74,6 +74,8 @@ (setq! undo-limit 80000000 ; Raise undo-limit to 80Mb auto-save-default t ; Nobody likes to loose work, I certainly don't + switch-to-buffer-in-dedicated-window 'pop + switch-to-buffer-obey-display-actions t ) ;; tweak some VI defaults diff --git a/home/alex/programs/i3/default.nix b/home/alex/programs/i3/default.nix new file mode 100644 index 0000000..e31b1cf --- /dev/null +++ b/home/alex/programs/i3/default.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + config.xsession.windowManager.i3 = { + enable = true; + config = { + modifier = "Mod4"; + }; + }; +} diff --git a/home/alex/services/screen-locker/default.nix b/home/alex/services/screen-locker/default.nix index 5f88146..144c11a 100644 --- a/home/alex/services/screen-locker/default.nix +++ b/home/alex/services/screen-locker/default.nix @@ -7,7 +7,7 @@ { config.services.screen-locker = { - enable = true; + enable = false; inactiveInterval = 30; lockCmd = "${pkgs.i3lock}/bin/i3lock -n -c 000000"; xautolock.extraOptions = [ "-detectsleep" ]; diff --git a/hosts/dregil/default.nix b/hosts/dregil/default.nix index 2880cb7..6077d33 100644 --- a/hosts/dregil/default.nix +++ b/hosts/dregil/default.nix @@ -1,9 +1,7 @@ { - lib, - config, - pkgs, inputs, stable, + system, ... }: { @@ -24,9 +22,13 @@ ../../modules/common-system.nix ./configuration.nix inputs.home-manager.nixosModules.home-manager + inputs.distro-grub-themes.nixosModules.${system}.default ../../home/anne/default.nix ../../home/alex/default.nix + ../../modules/grub-themes + ../../modules/hyprland ../../modules/podman ../../modules/tailscale + ../../modules/flatpak.nix ]; } diff --git a/modules/flatpak.nix b/modules/flatpak.nix new file mode 100644 index 0000000..65daef2 --- /dev/null +++ b/modules/flatpak.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + services.flatpak.enable = true; + + systemd.services.flatpak-repo = { + wantedBy = [ "multi-user.target" ]; + path = [ pkgs.flatpak ]; + script = '' + flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + ''; + }; +} diff --git a/modules/grub-themes/default.nix b/modules/grub-themes/default.nix new file mode 100644 index 0000000..100b81a --- /dev/null +++ b/modules/grub-themes/default.nix @@ -0,0 +1,7 @@ +{ ... }: +{ + config.distro-grub-themes = { + enable = true; + theme = "nixos"; + }; +} diff --git a/modules/hyprland/default.nix b/modules/hyprland/default.nix new file mode 100644 index 0000000..300af18 --- /dev/null +++ b/modules/hyprland/default.nix @@ -0,0 +1,10 @@ +{ + pkgs, + ... +}: + +{ + config.programs.hyprland.enable = true; + config.environment.systemPackages = [ pkgs.kitty ]; + config.environment.sessionVariables.NIXOS_OZONE_WL = "1"; +} diff --git a/modules/wm/greetd.nix b/modules/wm/greetd.nix new file mode 100644 index 0000000..816601e --- /dev/null +++ b/modules/wm/greetd.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd sway"; + user = "greeter"; + }; + }; + }; +} diff --git a/modules/wm/sway.nix b/modules/wm/sway.nix new file mode 100644 index 0000000..58b9bbb --- /dev/null +++ b/modules/wm/sway.nix @@ -0,0 +1,24 @@ +{ + config, + pkgs, + lib, + ... +}: +{ + environment.systemPackages = with pkgs; [ + grim # screenshot functionality + slurp # screenshot functionality + wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout + mako # notification system developed by swaywm maintainer + ]; + + # Enable the gnome-keyring secrets vault. + # Will be exposed through DBus to programs willing to store secrets. + services.gnome.gnome-keyring.enable = true; + + # enable Sway window manager + programs.sway = { + enable = true; + wrapperFeatures.gtk = true; + }; +}