Compare commits
10 commits
66fd45b8ad
...
f502917b6a
| Author | SHA1 | Date | |
|---|---|---|---|
| f502917b6a | |||
| 08ce8a0ead | |||
| 18a1e4b2c8 | |||
| 8bca8e9be1 | |||
| 6736ad8d5a | |||
| 11106db021 | |||
| 65d31964eb | |||
| 3de35322f6 | |||
| f1dcd9e194 | |||
| a7072f8b52 |
6 changed files with 486 additions and 82 deletions
189
flake.lock
generated
189
flake.lock
generated
|
|
@ -1,5 +1,47 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"dgop": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1769696720,
|
||||||
|
"narHash": "sha256-CxTvTx7WYKj9usa1uZDUmCqS9+W0QoIeTGDlkhHLVho=",
|
||||||
|
"owner": "AvengeMedia",
|
||||||
|
"repo": "dgop",
|
||||||
|
"rev": "3f96465aacac7f4f304bacf154f57fc0077ad26d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"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",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -7,41 +49,172 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"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"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"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": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"dms",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1766725085,
|
||||||
|
"narHash": "sha256-O2aMFdDUYJazFrlwL7aSIHbUSEm3ADVZjmf41uBJfHs=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff",
|
||||||
|
"revCount": 715,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.outfoxxed.me/quickshell/quickshell"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff",
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.outfoxxed.me/quickshell/quickshell"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"dgop": "dgop",
|
||||||
|
"dms": "dms",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"niri": "niri",
|
||||||
"nixpkgs": "nixpkgs"
|
"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"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
|
||||||
49
flake.nix
49
flake.nix
|
|
@ -3,17 +3,31 @@
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
# Nixpkgs
|
# Nixpkgs
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
nixpkgs.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
|
||||||
|
dms = {
|
||||||
|
url = "github:AvengeMedia/DankMaterialShell/stable";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
dgop = {
|
||||||
|
url = "github:AvengeMedia/dgop";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
niri = {
|
||||||
|
url = "github:sodiboo/niri-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
home-manager,
|
home-manager,
|
||||||
...
|
...
|
||||||
} @ inputs: let
|
} @ inputs: let
|
||||||
in {
|
in {
|
||||||
|
|
@ -22,20 +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 = {
|
inherit inputs;
|
||||||
"janne@hermes" = home-manager.lib.homeManagerConfiguration {
|
};
|
||||||
# Home-manager requires 'pkgs' instance
|
}
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
];
|
||||||
extraSpecialArgs = {inherit inputs;};
|
|
||||||
# > Our main home-manager configuration file <
|
|
||||||
modules = [./home-manager/home.nix];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
65
home-manager/emacs.el
Normal file
65
home-manager/emacs.el
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
; Aesthetics
|
||||||
|
(use-package material-theme)
|
||||||
|
(load-theme 'material t)
|
||||||
|
|
||||||
|
(menu-bar-mode -1)
|
||||||
|
(tool-bar-mode -1)
|
||||||
|
(add-to-list 'default-frame-alist
|
||||||
|
'(vertical-scroll-bars . nil))
|
||||||
|
|
||||||
|
;; Window navigation
|
||||||
|
(windmove-default-keybindings)
|
||||||
|
|
||||||
|
;; Autocompletion with vertico
|
||||||
|
(use-package vertico
|
||||||
|
:custom
|
||||||
|
(vertico-count 20) ;; limit to a fixed size
|
||||||
|
:bind (:map vertico-map
|
||||||
|
;; Use page-up/down to scroll vertico buffer, like ivy does by default.
|
||||||
|
("<prior>" . 'vertico-scroll-down)
|
||||||
|
("<next>" . 'vertico-scroll-up))
|
||||||
|
:init
|
||||||
|
;; Activate vertico
|
||||||
|
(vertico-mode))
|
||||||
|
|
||||||
|
;; Convenient path selection
|
||||||
|
(use-package vertico-directory
|
||||||
|
:after vertico
|
||||||
|
:ensure nil ;; no need to install, it comes with vertico
|
||||||
|
:bind (:map vertico-map
|
||||||
|
("DEL" . vertico-directory-delete-char)))
|
||||||
|
|
||||||
|
(use-package orderless
|
||||||
|
:custom
|
||||||
|
;; Activate orderless completion
|
||||||
|
(completion-styles '(orderless basic))
|
||||||
|
;; Enable partial completion for file wildcard support
|
||||||
|
(completion-category-overrides '((file (styles partial-completion)))))
|
||||||
|
|
||||||
|
(use-package consult
|
||||||
|
:custom
|
||||||
|
;; Disable preview
|
||||||
|
(consult-preview-key nil)
|
||||||
|
:bind
|
||||||
|
(("C-x b" . 'consult-buffer) ;; Switch buffer, including recentf and bookmarks
|
||||||
|
("M-l" . 'consult-git-grep) ;; Search inside a project
|
||||||
|
("M-y" . 'consult-yank-pop) ;; Paste by selecting the kill-ring
|
||||||
|
("M-s" . 'consult-line) ;; Search current buffer, like swiper
|
||||||
|
))
|
||||||
|
|
||||||
|
(use-package embark
|
||||||
|
:bind
|
||||||
|
(("C-." . embark-act) ;; Begin the embark process
|
||||||
|
("C-;" . embark-dwim) ;; good alternative: M-.
|
||||||
|
("C-h B" . embark-bindings)) ;; alternative for `describe-bindings'
|
||||||
|
:config
|
||||||
|
(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
|
||||||
|
(setq org-replace-disputed-keys t)
|
||||||
|
|
@ -1,22 +1,13 @@
|
||||||
{
|
{
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
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";
|
||||||
|
|
@ -28,13 +19,21 @@
|
||||||
pkgs.pdfpc
|
pkgs.pdfpc
|
||||||
pkgs.ktailctl
|
pkgs.ktailctl
|
||||||
pkgs.kitty
|
pkgs.kitty
|
||||||
pkgs.hyprpaper
|
pkgs.alacritty
|
||||||
pkgs.kdeconnect
|
pkgs.clang-tools
|
||||||
|
(pkgs.bottles.override { removeWarningPopup = true; })
|
||||||
|
pkgs.dropbox
|
||||||
|
pkgs.unzip
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.emacs = {
|
programs.dank-material-shell = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.emacs-gtk;
|
};
|
||||||
|
|
||||||
|
programs.emacs = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.emacs-pgtk;
|
||||||
extraPackages = epkgs: [
|
extraPackages = epkgs: [
|
||||||
epkgs.nix-mode
|
epkgs.nix-mode
|
||||||
epkgs.magit
|
epkgs.magit
|
||||||
|
|
@ -51,49 +50,17 @@
|
||||||
extraConfig = builtins.readFile ./emacs.el;
|
extraConfig = builtins.readFile ./emacs.el;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.zsh.enable = true;
|
||||||
programs.kdeconnect.enable = true;
|
|
||||||
|
|
||||||
"$mod, f, exec, ${pkgs.firefox}/bin/firefox"
|
|
||||||
"$mod, e, exec, ${pkgs.emacs}/bin/emacs"
|
|
||||||
"$mod, s, exec, ${pkgs.stean}/bin/steam"
|
|
||||||
];
|
|
||||||
|
|
||||||
env = [
|
|
||||||
"NIXOS_OZONE_WL,1"
|
|
||||||
"_JAVA_AWT_WM_NONREPARENTING,1"
|
|
||||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
|
||||||
"QT_QPA_PLATFORM,wayland"
|
|
||||||
"SDL_VIDEODRIVER,wayland"
|
|
||||||
"GDK_BACKEND,wayland"
|
|
||||||
"XDG_SESSION_TYPE,wayland"
|
|
||||||
"XDG_SESSION_DESKTOP,Hyprland"
|
|
||||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
|
||||||
];
|
|
||||||
|
|
||||||
exec-once = [
|
|
||||||
"${pkgs.hyprpaper}/bin/hyprpaper"
|
|
||||||
"${pkgs.wl-clipboard}/bin/wl-paste --type text --watch cliphist store"
|
|
||||||
"${pkgs.wl-clipboard}/bin/wl-paste --type image --watch cliphist store"
|
|
||||||
"eval $(gnome-keyring-daemon --start --components=secrets,ssh,gpg,pkcs11"
|
|
||||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
|
|
||||||
];
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
|
|
||||||
# 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";
|
||||||
|
|
|
||||||
136
home-manager/wayland.nix
Normal file
136
home-manager/wayland.nix
Normal file
|
|
@ -0,0 +1,136 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
# Hyprland
|
||||||
|
programs.kitty.enable = true;
|
||||||
|
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
xwayland = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
"$terminal" = "kitty";
|
||||||
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
|
monitor = [
|
||||||
|
"eDP-1,1920x1200,0x0,1"
|
||||||
|
];
|
||||||
|
|
||||||
|
general = {
|
||||||
|
gaps_in = 6;
|
||||||
|
gaps_out = 2;
|
||||||
|
border_size = 2;
|
||||||
|
layout = "dwindle";
|
||||||
|
allow_tearing = true;
|
||||||
|
};
|
||||||
|
input = {
|
||||||
|
kb_layout = "fi";
|
||||||
|
follow_mouse = true;
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = true;
|
||||||
|
};
|
||||||
|
accel_profile = "flat";
|
||||||
|
sensitivity = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 15;
|
||||||
|
active_opacity = 0.9;
|
||||||
|
inactive_opacity = 0.8;
|
||||||
|
fullscreen_opacity = 0.9;
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
xray = true;
|
||||||
|
special = false;
|
||||||
|
new_optimizations = true;
|
||||||
|
size = 14;
|
||||||
|
passes = 4;
|
||||||
|
brightness = 1;
|
||||||
|
noise = 0.01;
|
||||||
|
contrast = 1;
|
||||||
|
popups = true;
|
||||||
|
popups_ignorealpha = 0.6;
|
||||||
|
ignore_opacity = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
enabled = true;
|
||||||
|
ignore_window = true;
|
||||||
|
range = 20;
|
||||||
|
offset = "0 2";
|
||||||
|
render_power = 4;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
cursor = {
|
||||||
|
enable_hyprcursor = true;
|
||||||
|
};
|
||||||
|
dwindle = {
|
||||||
|
pseudotile = true;
|
||||||
|
preserve_split = true;
|
||||||
|
smart_split = false;
|
||||||
|
smart_resizing = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
disable_splash_rendering = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
bind = [
|
||||||
|
"$mod, t, exec, ${pkgs.kitty}/bin/kitty"
|
||||||
|
|
||||||
|
"$mod SHIFT, q, killactive"
|
||||||
|
"$mod SHIFT, e, exit"
|
||||||
|
"$mod SHIFT, l, exec, ${pkgs.hyprlock}/bin/hyprlock"
|
||||||
|
|
||||||
|
"$mod, 1, workspace, 1"
|
||||||
|
"$mod, 2, workspace, 2"
|
||||||
|
"$mod, 3, workspace, 3"
|
||||||
|
"$mod, 4, workspace, 4"
|
||||||
|
"$mod, 5, workspace, 5"
|
||||||
|
"$mod, 6, workspace, 6"
|
||||||
|
"$mod, 7, workspace, 7"
|
||||||
|
|
||||||
|
"$mod SHIFT, 1, movetoworkspace, 1"
|
||||||
|
"$mod SHIFT, 2, movetoworkspace, 2"
|
||||||
|
"$mod SHIFT, 3, movetoworkspace, 3"
|
||||||
|
"$mod SHIFT, 4, movetoworkspace, 4"
|
||||||
|
"$mod SHIFT, 5, movetoworkspace, 5"
|
||||||
|
"$mod SHIFT, 6, movetoworkspace, 6"
|
||||||
|
"$mod SHIFT, 7, movetoworkspace, 7"
|
||||||
|
|
||||||
|
"$mod, h, movefocus, l"
|
||||||
|
"$mod, l, movefocus, r"
|
||||||
|
"$mod, k, movefocus, u"
|
||||||
|
"$mod, j, movefocus, d"
|
||||||
|
|
||||||
|
"$mod, f, exec, ${pkgs.firefox}/bin/firefox"
|
||||||
|
"$mod, e, exec, ${pkgs.emacs}/bin/emacs"
|
||||||
|
"$mod, s, exec, ${pkgs.steam}/bin/steam"
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
env = [
|
||||||
|
"NIXOS_OZONE_WL,1"
|
||||||
|
"_JAVA_AWT_WM_NONREPARENTING,1"
|
||||||
|
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||||
|
"QT_QPA_PLATFORM,wayland"
|
||||||
|
"SDL_VIDEODRIVER,wayland"
|
||||||
|
"GDK_BACKEND,wayland"
|
||||||
|
"XDG_SESSION_TYPE,wayland"
|
||||||
|
"XDG_SESSION_DESKTOP,Hyprland"
|
||||||
|
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||||
|
];
|
||||||
|
|
||||||
|
exec-once = [
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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
|
||||||
|
|
@ -126,10 +168,14 @@
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
# TODO: Add your SSH public key(s) here, if you plan on using SSH to connect
|
# TODO: Add your SSH public key(s) here, if you plan on using SSH to connect
|
||||||
];
|
];
|
||||||
extraGroups = ["wheel", "networkmanager"];
|
extraGroups = ["wheel" "networkmanager"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# 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";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue