First working version

This commit is contained in:
Janne Peltola 2026-02-10 21:38:16 +02:00
parent 08ce8a0ead
commit f502917b6a
5 changed files with 249 additions and 89 deletions

178
flake.lock generated
View file

@ -1,22 +1,43 @@
{ {
"nodes": { "nodes": {
"dms": { "dgop": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs-unstable" "nixpkgs"
], ]
"quickshell": "quickshell"
}, },
"locked": { "locked": {
"lastModified": 1770134613, "lastModified": 1769696720,
"narHash": "sha256-YjwlcLT/Of9MLIlQeWZ5XBHW4GbKRV1nUB5zGcYZznE=", "narHash": "sha256-CxTvTx7WYKj9usa1uZDUmCqS9+W0QoIeTGDlkhHLVho=",
"owner": "AvengeMedia", "owner": "AvengeMedia",
"repo": "DankMaterialShell", "repo": "dgop",
"rev": "3c4749ead0ef30237330cc56437990164b575c76", "rev": "3f96465aacac7f4f304bacf154f57fc0077ad26d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "AvengeMedia", "owner": "AvengeMedia",
"repo": "dgop",
"type": "github"
}
},
"dms": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"quickshell": "quickshell"
},
"locked": {
"lastModified": 1768575133,
"narHash": "sha256-P//moH3z9r4PXirTzXVsccQINsK5AIlF9RWOBwK3vLc=",
"owner": "AvengeMedia",
"repo": "DankMaterialShell",
"rev": "a7cdb39b0b89b9af86160ad4e847a7d14ea44512",
"type": "github"
},
"original": {
"owner": "AvengeMedia",
"ref": "stable",
"repo": "DankMaterialShell", "repo": "DankMaterialShell",
"type": "github" "type": "github"
} }
@ -28,43 +49,84 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1763992789, "lastModified": 1770318660,
"narHash": "sha256-WHkdBlw6oyxXIra/vQPYLtqY+3G8dUVZM8bEXk0t8x4=", "narHash": "sha256-yFVde8QZK7Dc0Xa8eQDsmxLX4NJNfL1NKfctSyiQgMY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "44831a7eaba4360fb81f2acc5ea6de5fde90aaa3", "rev": "471e6a065f9efed51488d7c51a9abbd387df91b8",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-25.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"niri": {
"inputs": {
"niri-stable": "niri-stable",
"niri-unstable": "niri-unstable",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable",
"xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1770571272,
"narHash": "sha256-IUBQMceKisLf1aqo0OWIuEEJLYCQjpvfAJYNZCqu5wE=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "992922f59953b7f55f6b2de7f8bb661e93bc210e",
"type": "github"
},
"original": {
"owner": "sodiboo",
"repo": "niri-flake",
"type": "github"
}
},
"niri-stable": {
"flake": false,
"locked": {
"lastModified": 1756556321,
"narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"ref": "v25.08",
"repo": "niri",
"type": "github"
}
},
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1770394936,
"narHash": "sha256-Pa0fkyLYUR+pZh7phPENDUo4mJIweaAm0uV83iUUlX8=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "549148d27779d024255a84535b42b947f1c2a113",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"repo": "niri",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1767313136, "lastModified": 1770197578,
"narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", "narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1770115704,
"narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e6eae2ee2110f3d31110d5c222cd395303343b08",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -74,6 +136,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-stable": {
"locked": {
"lastModified": 1770464364,
"narHash": "sha256-z5NJPSBwsLf/OfD8WTmh79tlSU8XgIbwmk6qB1/TFzY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "23d72dabcb3b12469f57b37170fcbc1789bd7457",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"quickshell": { "quickshell": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -98,10 +176,44 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"dgop": "dgop",
"dms": "dms", "dms": "dms",
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs", "niri": "niri",
"nixpkgs-unstable": "nixpkgs-unstable" "nixpkgs": "nixpkgs"
}
},
"xwayland-satellite-stable": {
"flake": false,
"locked": {
"lastModified": 1755491097,
"narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "388d291e82ffbc73be18169d39470f340707edaa",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"ref": "v0.7",
"repo": "xwayland-satellite",
"type": "github"
}
},
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1770568598,
"narHash": "sha256-w7XGGbI3cxtJWK/B2n+yuhm1S3Vv21OPtIMFLTwbU20=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "e6dd3c05c098aef4e6a31fa95c04f129e9b52618",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"type": "github"
} }
} }
}, },

View file

@ -3,17 +3,24 @@
inputs = { inputs = {
# Nixpkgs # Nixpkgs
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# Home manager # Home manager
home-manager.url = "github:nix-community/home-manager/release-25.05"; home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
# Dank Linux # Dank Linux
dms = { dms = {
url = "github:AvengeMedia/DankMaterialShell"; url = "github:AvengeMedia/DankMaterialShell/stable";
inputs.nixpkgs.follows = "nixpkgs-unstable"; inputs.nixpkgs.follows = "nixpkgs";
};
dgop = {
url = "github:AvengeMedia/dgop";
inputs.nixpkgs.follows = "nixpkgs";
};
niri = {
url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
@ -21,8 +28,6 @@
self, self,
nixpkgs, nixpkgs,
home-manager, home-manager,
dms,
nixpkgs-unstable,
... ...
} @ inputs: let } @ inputs: let
in { in {
@ -31,26 +36,17 @@
nixosConfigurations = { nixosConfigurations = {
hermes = nixpkgs.lib.nixosSystem { hermes = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;}; specialArgs = {inherit inputs;};
# > Our main nixos configuration file < # > Our main nixos configuration file
modules = [./nixos/configuration.nix]; modules = [
}; ./nixos/configuration.nix
}; home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
# Standalone home-manager configuration entrypoint home-manager.users.janne = ./home-manager/home.nix;
# Available through 'home-manager --flake .#your-username@your-hostname' home-manager.extraSpecialArgs = {
homeConfigurations = {
"janne@hermes" = home-manager.lib.homeManagerConfiguration {
# Home-manager requires 'pkgs' instance
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = {
inherit inputs; inherit inputs;
pkgs-unstable = import nixpkgs-unstable {
system = "x86_64-linux";
config.allowUnfree = true;
}; };
}; }
# > Our main home-manager configuration file < ];
modules = [./home-manager/home.nix];
}; };
}; };
}; };

View file

@ -4,6 +4,8 @@
(menu-bar-mode -1) (menu-bar-mode -1)
(tool-bar-mode -1) (tool-bar-mode -1)
(add-to-list 'default-frame-alist
'(vertical-scroll-bars . nil))
;; Window navigation ;; Window navigation
(windmove-default-keybindings) (windmove-default-keybindings)
@ -53,5 +55,11 @@
:config :config
(use-package embark-consult)) (use-package embark-consult))
;; eglot
(require 'eglot)
(add-hook 'c-mode-hook 'eglot-ensure)
(add-hook 'c++-mode-hook 'eglot-ensure)
(add-hook 'c-or-c++-mode-hook 'eglot-ensure)
;; ORG-MODE ;; ORG-MODE
(setq org-replace-disputed-keys t) (setq org-replace-disputed-keys t)

View file

@ -1,25 +1,13 @@
{ {
inputs,
lib,
config, config,
pkgs, pkgs,
pkgs-unstable, inputs,
... ...
}: { }: {
imports = [ imports = [
./wayland.nix
inputs.dms.homeModules.dank-material-shell inputs.dms.homeModules.dank-material-shell
]; ];
nixpkgs = {
overlays = [
];
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
};
home = { home = {
username = "janne"; username = "janne";
homeDirectory = "/home/janne"; homeDirectory = "/home/janne";
@ -31,12 +19,21 @@
pkgs.pdfpc pkgs.pdfpc
pkgs.ktailctl pkgs.ktailctl
pkgs.kitty pkgs.kitty
pkgs.hyprpaper pkgs.alacritty
pkgs.clang-tools
(pkgs.bottles.override { removeWarningPopup = true; })
pkgs.dropbox
pkgs.unzip
]; ];
programs.dank-material-shell = {
enable = true;
};
programs.emacs = { programs.emacs = {
enable = true; enable = true;
package = pkgs.emacs-gtk; package = pkgs.emacs-pgtk;
extraPackages = epkgs: [ extraPackages = epkgs: [
epkgs.nix-mode epkgs.nix-mode
epkgs.magit epkgs.magit
@ -55,20 +52,15 @@
programs.zsh.enable = true; programs.zsh.enable = true;
programs.dankMaterialShell = {
enable = true;
quickshell.package = pkgs-unstable.quickshell;
};
# Enable home-manager and git # Enable home-manager and git
programs.home-manager.enable = true;
programs.git = { programs.git = {
enable = true; enable = true;
userName = "Janne Peltola"; settings.user.name = "Janne Peltola";
userEmail = "git@jannepeltola.net"; settings.user.email = "git@jannepeltola.net";
}; };
services.kdeconnect.enable = true;
# Nicely reload system units when changing configs # Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch"; systemd.user.startServices = "sd-switch";

View file

@ -9,6 +9,7 @@
}: { }: {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
inputs.dms.nixosModules.dank-material-shell
]; ];
nixpkgs = { nixpkgs = {
@ -95,10 +96,49 @@
#jack.enable = true; #jack.enable = true;
}; };
# Additional packages
environment.systemPackages = [
pkgs.xwayland-satellite
];
# Enable the KDE Plasma Desktop Environment.
services.displayManager.sddm.enable = true; # Use DMS and niri
services.desktopManager.plasma6.enable = true; programs.dank-material-shell = {
enable = true;
systemd = {
enable = true;
restartIfChanged = true;
};
enableSystemMonitoring = true;
enableVPN = true;
enableDynamicTheming = true;
enableAudioWavelength = true;
enableCalendarEvents = true;
};
programs.niri = {
enable = true;
};
services.displayManager.dms-greeter = {
enable = true;
compositor.name = "niri"; # Or "hyprland" or "sway"
configHome = "/home/janne";
};
programs.dsearch = {
enable = true;
systemd = {
enable = true; # Enable systemd user service
target = "default.target"; # Start with user session
};
};
#services.displayManager.sddm = {
# enable = true;
# wayland = {
# enable = true;
# };
#};
# services.desktopManager.plasma6.enable = true;
# Activate global programs # Activate global programs
programs.firefox.enable = true; programs.firefox.enable = true;
@ -109,6 +149,8 @@
noto-fonts-color-emoji noto-fonts-color-emoji
fira-code fira-code
fira-code-symbols fira-code-symbols
vista-fonts
corefonts
] ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); ] ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts);
# Set up 1password # Set up 1password
@ -130,6 +172,10 @@
}; };
}; };
# ssh-agent; do not use the Gnome agent
services.gnome.gcr-ssh-agent.enable = false;
programs.ssh.startAgent = true;
# This setups a SSH server. Very important if you're setting up a headless system. # This setups a SSH server. Very important if you're setting up a headless system.
# Feel free to remove if you don't need it. # Feel free to remove if you don't need it.
services.openssh = { services.openssh = {
@ -140,6 +186,12 @@
}; };
}; };
networking.firewall = rec {
allowedTCPPortRanges = [{ from = 1714; to = 1764; } ];
allowedUDPPortRanges = allowedTCPPortRanges;
};
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "25.05"; system.stateVersion = "25.05";
} }