Compare commits
3 Commits
228c57679b
...
a5cd3713e7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a5cd3713e7 | ||
|
|
c62acaa77f | ||
|
|
39cdbaa430 |
@@ -1,3 +1,4 @@
|
|||||||
|
[general]
|
||||||
import = ["~/.config/alacritty/theme.toml"]
|
import = ["~/.config/alacritty/theme.toml"]
|
||||||
|
|
||||||
[font]
|
[font]
|
||||||
|
|||||||
149
flake.lock
generated
149
flake.lock
generated
@@ -45,11 +45,11 @@
|
|||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733043608,
|
"lastModified": 1733127808,
|
||||||
"narHash": "sha256-00uyKJEgix+TuIvEwH18SCXYXU9VDhRh3Kjxf9xrWgA=",
|
"narHash": "sha256-UJUFsa1jmYSgAhrii1HVEl//ggT3Nzaw6kDN6TnkGXM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "4ebaf4d0b6b8ab9bacd57f5db199da2d76eea8da",
|
"rev": "51d6aafb5e3bbf10a29bd8ff417b617e35b14d0e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -86,20 +86,62 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726989464,
|
"lastModified": 1733050161,
|
||||||
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
|
"narHash": "sha256-lYnT+EYE47f5yY3KS/Kd4pJ6CO9fhCqumkYYkQ3TK20=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
|
"rev": "62d536255879be574ebfe9b87c4ac194febf47c5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-24.05",
|
"ref": "release-24.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"hyprcursor-rose-pine": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprlang": "hyprlang",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"utils": "utils"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1718180692,
|
||||||
|
"narHash": "sha256-J5IYvKcdGRL/sBuST5WaoESEIl7KPv8aJK8aLY6C91E=",
|
||||||
|
"owner": "ndom91",
|
||||||
|
"repo": "rose-pine-hyprcursor",
|
||||||
|
"rev": "40ce26cb29206722ff73839ead0d871d94751e90",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ndom91",
|
||||||
|
"repo": "rose-pine-hyprcursor",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprlang": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprcursor-rose-pine",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709914708,
|
||||||
|
"narHash": "sha256-bR4o3mynoTa1Wi4ZTjbnsZ6iqVcPGriXp56bZh5UFTk=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprlang",
|
||||||
|
"rev": "a685493fdbeec01ca8ccdf1f3655c044a8ce2fe2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprlang",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-colors": {
|
"nix-colors": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"base16-schemes": "base16-schemes",
|
"base16-schemes": "base16-schemes",
|
||||||
@@ -121,11 +163,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732837521,
|
"lastModified": 1733015953,
|
||||||
"narHash": "sha256-jNRNr49UiuIwaarqijgdTR2qLPifxsVhlJrKzQ8XUIE=",
|
"narHash": "sha256-t4BBVpwG9B4hLgc6GUBuj3cjU7lP/PJfpTHuSqE+crk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "970e93b9f82e2a0f3675757eb0bfc73297cc6370",
|
"rev": "ac35b104800bff9028425fec3b6e8a41de2bbfff",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -152,11 +194,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732824227,
|
"lastModified": 1732981179,
|
||||||
"narHash": "sha256-fYNXgpu1AEeLyd3fQt4Ym0tcVP7cdJ8wRoqJ+CtTRyY=",
|
"narHash": "sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT+34=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c71ad5c34d51dcbda4c15f44ea4e4aa6bb6ac1e9",
|
"rev": "62c435d93bf046a5396f3016472e8f7c8e2aed65",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -168,27 +210,43 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733016324,
|
"lastModified": 1710272261,
|
||||||
"narHash": "sha256-8qwPSE2g1othR1u4uP86NXxm6i7E9nHPyJX3m3lx7Q4=",
|
"narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "0ad13a6833440b8e238947e47bea7f11071dc2b2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1732981179,
|
||||||
|
"narHash": "sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT+34=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7e1ca67996afd8233d9033edd26e442836cc2ad6",
|
"rev": "62c435d93bf046a5396f3016472e8f7c8e2aed65",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-24.05",
|
"ref": "nixos-24.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733060776,
|
"lastModified": 1733136078,
|
||||||
"narHash": "sha256-fMPYWzojb0rzplG3HnP2eS3fpquu5U58tcKAr2taZxQ=",
|
"narHash": "sha256-F+gLv1YTOfP5BP0kHPEOLtrJWL1s3XGoaBhfwDsndNw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "0cccbcb30ee67c0b28c67ae33486118031a82b09",
|
"rev": "aadc32a2305cd303d1866be1d500ad6f7b344b82",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -202,8 +260,9 @@
|
|||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"emacs-overlay": "emacs-overlay",
|
"emacs-overlay": "emacs-overlay",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
|
"hyprcursor-rose-pine": "hyprcursor-rose-pine",
|
||||||
"nix-colors": "nix-colors",
|
"nix-colors": "nix-colors",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"nur": "nur"
|
"nur": "nur"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -221,6 +280,54 @@
|
|||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689347949,
|
||||||
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
@@ -4,10 +4,10 @@
|
|||||||
inputs = {
|
inputs = {
|
||||||
|
|
||||||
# - Nixpkgs ----------------------------------
|
# - Nixpkgs ----------------------------------
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||||
|
|
||||||
# - Home Manager -----------------------------
|
# - Home Manager -----------------------------
|
||||||
home-manager.url = "github:nix-community/home-manager/release-24.05";
|
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
# - Agenix -----------------------------------
|
# - Agenix -----------------------------------
|
||||||
@@ -24,6 +24,9 @@
|
|||||||
|
|
||||||
# - Themeing ---------------------------------
|
# - Themeing ---------------------------------
|
||||||
nix-colors.url = "github:misterio77/nix-colors";
|
nix-colors.url = "github:misterio77/nix-colors";
|
||||||
|
|
||||||
|
# - Hyprland ---------------------------------
|
||||||
|
hyprcursor-rose-pine.url = "github:ndom91/rose-pine-hyprcursor";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ { self, nixpkgs, home-manager, ... }:
|
outputs = inputs @ { self, nixpkgs, home-manager, ... }:
|
||||||
|
|||||||
@@ -68,10 +68,8 @@ in
|
|||||||
# - Desktop ----------------------------------
|
# - Desktop ----------------------------------
|
||||||
desktop = {
|
desktop = {
|
||||||
inherit wallpaper;
|
inherit wallpaper;
|
||||||
enable = true;
|
env.grapheio.enable = true;
|
||||||
laptop = true;
|
wm.hyprland = {
|
||||||
hyprland = {
|
|
||||||
enable = true;
|
|
||||||
kb_layout = "es,gr";
|
kb_layout = "es,gr";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.samfelag.modules.app.alacritty;
|
cfg = config.samfelag.modules.app.alacritty;
|
||||||
i3Cfg = config.samfelag.modules.desktop.i3;
|
i3Cfg = config.samfelag.modules.desktop.wm.i3;
|
||||||
hyprCfg = config.samfelag.modules.desktop.hyprland;
|
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.samfelag.modules.app.alacritty = {
|
options.samfelag.modules.app.alacritty = {
|
||||||
@@ -57,12 +57,12 @@ in
|
|||||||
white = "0x${config.colorScheme.palette.base07}"
|
white = "0x${config.colorScheme.palette.base07}"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
samfelag.modules.desktop.wm.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
||||||
"${i3Cfg.mod}+Return" = "exec ${pkgs.alacritty}/bin/alacritty";
|
"${i3Cfg.mod}+Return" = "exec ${pkgs.alacritty}/bin/alacritty";
|
||||||
"${i3Cfg.mod}+Shift+Return" = "exec ${pkgs.alacritty}/bin/alacritty -t floating-term";
|
"${i3Cfg.mod}+Shift+Return" = "exec ${pkgs.alacritty}/bin/alacritty -t floating-term";
|
||||||
};
|
};
|
||||||
|
|
||||||
samfelag.modules.desktop.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
|
samfelag.modules.desktop.wm.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
|
||||||
"${hyprCfg.mod}, Return, exec, ${pkgs.alacritty}/bin/alacritty"
|
"${hyprCfg.mod}, Return, exec, ${pkgs.alacritty}/bin/alacritty"
|
||||||
"${hyprCfg.mod} SHIFT, Return, exec, [float] ${pkgs.alacritty}/bin/alacritty"
|
"${hyprCfg.mod} SHIFT, Return, exec, [float] ${pkgs.alacritty}/bin/alacritty"
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.samfelag.modules.app.firefox;
|
cfg = config.samfelag.modules.app.firefox;
|
||||||
i3Cfg = config.samfelag.modules.desktop.i3;
|
i3Cfg = config.samfelag.modules.desktop.wm.i3;
|
||||||
hyprCfg = config.samfelag.modules.desktop.hyprland;
|
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.samfelag.modules.app.firefox = {
|
options.samfelag.modules.app.firefox = {
|
||||||
@@ -27,11 +27,11 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
samfelag.modules.desktop.wm.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
||||||
"${i3Cfg.mod}+Shift+i" = "exec ${pkgs.firefox}/bin/firefox";
|
"${i3Cfg.mod}+Shift+i" = "exec ${pkgs.firefox}/bin/firefox";
|
||||||
};
|
};
|
||||||
|
|
||||||
samfelag.modules.desktop.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
|
samfelag.modules.desktop.wm.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
|
||||||
"${hyprCfg.mod} SHIFT, i, exec, ${pkgs.firefox}/bin/firefox"
|
"${hyprCfg.mod} SHIFT, i, exec, ${pkgs.firefox}/bin/firefox"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.samfelag.modules.app.spotify;
|
cfg = config.samfelag.modules.app.spotify;
|
||||||
i3Cfg = config.samfelag.modules.desktop.i3;
|
i3Cfg = config.samfelag.modules.desktop.wm.i3;
|
||||||
hyprCfg = config.samfelag.modules.desktop.hyprland;
|
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.samfelag.modules.app.spotify = {
|
options.samfelag.modules.app.spotify = {
|
||||||
@@ -14,11 +14,11 @@ in
|
|||||||
spotify
|
spotify
|
||||||
];
|
];
|
||||||
|
|
||||||
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
samfelag.modules.desktop.wm.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
||||||
"${i3Cfg.mod}+Shift+m" = "exec ${pkgs.spotify}/bin/spotify";
|
"${i3Cfg.mod}+Shift+m" = "exec ${pkgs.spotify}/bin/spotify";
|
||||||
};
|
};
|
||||||
|
|
||||||
samfelag.modules.desktop.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
|
samfelag.modules.desktop.wm.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
|
||||||
"${hyprCfg.mod} SHIFT, m, exec, ${pkgs.spotify}/bin/spotify"
|
"${hyprCfg.mod} SHIFT, m, exec, ${pkgs.spotify}/bin/spotify"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -11,9 +11,9 @@
|
|||||||
system.stateVersion = "22.05";
|
system.stateVersion = "22.05";
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
package = pkgs.nixFlakes;
|
package = pkgs.nixVersions.stable;
|
||||||
|
|
||||||
extraOptions = lib.optionalString (config.nix.package == pkgs.nixFlakes)
|
extraOptions = lib.optionalString (config.nix.package == pkgs.nixVersions.stable)
|
||||||
"experimental-features = nix-command flakes";
|
"experimental-features = nix-command flakes";
|
||||||
|
|
||||||
gc = {
|
gc = {
|
||||||
|
|||||||
@@ -3,75 +3,11 @@
|
|||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.samfelag.modules.desktop;
|
cfg = config.samfelag.modules.desktop;
|
||||||
laptopPkgs = with pkgs; [
|
|
||||||
];
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.samfelag.modules.desktop = {
|
options.samfelag.modules.desktop = {
|
||||||
|
# Define generic desktop options to be used by the environments
|
||||||
enable = mkEnableOption "desktop environment";
|
|
||||||
|
|
||||||
laptop = mkOption {
|
|
||||||
description = "Enable features for a laptop (trackpad, battery, etc...)";
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
wallpaper = my.mkOpt' types.path ../../data/wallpaper/flors "Path to wallpaper(s)";
|
wallpaper = my.mkOpt' types.path ../../data/wallpaper/flors "Path to wallpaper(s)";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
|
|
||||||
# - Packages ---------------------------------
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
pamixer
|
|
||||||
i3lock-blur
|
|
||||||
brightnessctl
|
|
||||||
playerctl
|
|
||||||
feh
|
|
||||||
] ++ optionals cfg.laptop laptopPkgs;
|
|
||||||
|
|
||||||
# - Audio ------------------------------------
|
|
||||||
|
|
||||||
sound.enable = true;
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
pulseaudio = {
|
|
||||||
enable = true;
|
|
||||||
support32Bit = true;
|
|
||||||
package = pkgs.pulseaudioFull;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# - Compositor -------------------------------
|
|
||||||
|
|
||||||
services.picom.enable = true;
|
|
||||||
|
|
||||||
# - Modules ----------------------------------
|
|
||||||
|
|
||||||
samfelag.modules = {
|
|
||||||
|
|
||||||
app.alacritty.enable = true;
|
|
||||||
app.firefox.enable = true;
|
|
||||||
|
|
||||||
desktop.rofi.enable = true;
|
|
||||||
desktop.polybar.enable = true;
|
|
||||||
|
|
||||||
desktop.i3 = {
|
|
||||||
laptop = cfg.laptop;
|
|
||||||
|
|
||||||
extraStartup = [
|
|
||||||
{ command = "systemctl --user restart polybar"; always = true; notification = false; }
|
|
||||||
{ command = "feh --bg-fill -B \"#${config.colorScheme.palette.base00}\" -z --no-fehbg ${cfg.wallpaper}"; always = true; notification = false; }
|
|
||||||
];
|
|
||||||
|
|
||||||
extraKeybindings = {
|
|
||||||
"${cfg.i3.mod}+space" = "exec $HOME/.config/rofi/menus/launcher/launcher.sh";
|
|
||||||
"${cfg.i3.mod}+End" = "exec $HOME/.config/rofi/menus/powermenu/powermenu.sh";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
91
modules/desktop/env/grapheio.nix
vendored
Normal file
91
modules/desktop/env/grapheio.nix
vendored
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
{ config, lib, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.samfelag.modules.desktop.env.grapheio;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.samfelag.modules.desktop.env.grapheio = {
|
||||||
|
enable = mkEnableOption "Grapheio desktop environment - hyprland based";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
# - Packages ---------------------------------
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# - System ---------------------------------
|
||||||
|
# - Audio
|
||||||
|
alsa-utils
|
||||||
|
playerctl
|
||||||
|
brightnessctl
|
||||||
|
|
||||||
|
# - Appearance -----------------------------
|
||||||
|
# - Cursor
|
||||||
|
inputs.hyprcursor-rose-pine.packages.${pkgs.system}.default
|
||||||
|
# - Wallpaper
|
||||||
|
hyprpaper
|
||||||
|
];
|
||||||
|
|
||||||
|
# - Audio ------------------------------------
|
||||||
|
|
||||||
|
services = {
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# - Hyprpaper --------------------------------
|
||||||
|
hm.xdg.configFile."hypr/hyprpaper.conf".text = ''
|
||||||
|
preload = ${config.samfelag.modules.desktop.wallpaper}
|
||||||
|
wallpaper = ,${config.samfelag.modules.desktop.wallpaper}
|
||||||
|
'';
|
||||||
|
|
||||||
|
# - Cursor -----------------------------------
|
||||||
|
hm.home.pointerCursor = {
|
||||||
|
gtk.enable = true;
|
||||||
|
package = pkgs.rose-pine-cursor;
|
||||||
|
name = "BreezeX Cursor";
|
||||||
|
size = 24;
|
||||||
|
};
|
||||||
|
|
||||||
|
hm.gtk = {
|
||||||
|
enable = true;
|
||||||
|
cursorTheme = {
|
||||||
|
package = pkgs.rose-pine-cursor;
|
||||||
|
name = "BreezeX Cursor";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# - Modules ----------------------------------
|
||||||
|
|
||||||
|
samfelag.modules = {
|
||||||
|
|
||||||
|
desktop = {
|
||||||
|
# Window Manager
|
||||||
|
wm.hyprland.enable = true;
|
||||||
|
|
||||||
|
# Greeter (login screen)
|
||||||
|
greeter.greetd = {
|
||||||
|
enable = true;
|
||||||
|
wm_cmd = "Hyprland";
|
||||||
|
};
|
||||||
|
|
||||||
|
tools = {
|
||||||
|
# Status bars
|
||||||
|
eww.enable = true;
|
||||||
|
# Launcher
|
||||||
|
rofi.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.kanata.enable = true;
|
||||||
|
|
||||||
|
app = {
|
||||||
|
alacritty.enable = true;
|
||||||
|
firefox.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
50
modules/desktop/greeter/greetd.nix
Normal file
50
modules/desktop/greeter/greetd.nix
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
{ inputs, config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.samfelag.modules.desktop.greeter.greetd;
|
||||||
|
in {
|
||||||
|
|
||||||
|
options.samfelag.modules.desktop.greeter.greetd = with lib; {
|
||||||
|
enable = mkEnableOption "Greetd based greeter";
|
||||||
|
wm_cmd = lib.my.mkOpt' types.str "" "Window manager command";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
greetd.gtkgreet
|
||||||
|
cage
|
||||||
|
];
|
||||||
|
|
||||||
|
services.greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default_session = {
|
||||||
|
command = "${pkgs.cage}/bin/cage -d -s ${pkgs.greetd.gtkgreet}/bin/gtkgreet -- -c ${cfg.wm_cmd} -s /etc/greetd/greetd.css";
|
||||||
|
user = config.user.name;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.etc."greetd/environments".text = ''
|
||||||
|
${cfg.wm_cmd}
|
||||||
|
'';
|
||||||
|
|
||||||
|
environment.etc."greetd/greetd.css".text = ''
|
||||||
|
window {
|
||||||
|
background-image: url("file://${config.samfelag.modules.desktop.wallpaper}");
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
font-family: Iosevka;
|
||||||
|
color: #${config.colorScheme.palette.base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
box#body {
|
||||||
|
background-color: #${config.colorScheme.palette.base06};
|
||||||
|
opacity: 0.75;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 50px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.samfelag.modules.desktop.eww;
|
cfg = config.samfelag.modules.desktop.tools.eww;
|
||||||
hyprCfg = config.samfelag.modules.desktop.hyprland;
|
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
|
||||||
# Paths
|
# Paths
|
||||||
paths = {
|
paths = {
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
|
||||||
options.samfelag.modules.desktop.eww = {
|
options.samfelag.modules.desktop.tools.eww = {
|
||||||
enable = lib.mkEnableOption "eww";
|
enable = lib.mkEnableOption "eww";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -23,11 +23,11 @@ in {
|
|||||||
socat
|
socat
|
||||||
];
|
];
|
||||||
|
|
||||||
hm.xdg.configFile."eww/eww.yuck".source = ../../config/eww/eww.yuck;
|
hm.xdg.configFile."eww/eww.yuck".source = ../../../config/eww/eww.yuck;
|
||||||
hm.xdg.configFile."eww/eww.scss".source = ../../config/eww/eww.scss;
|
hm.xdg.configFile."eww/eww.scss".source = ../../../config/eww/eww.scss;
|
||||||
hm.xdg.configFile."eww/bars".source = ../../config/eww/bars;
|
hm.xdg.configFile."eww/bars".source = ../../../config/eww/bars;
|
||||||
hm.xdg.configFile."eww/widgets".source = ../../config/eww/widgets;
|
hm.xdg.configFile."eww/widgets".source = ../../../config/eww/widgets;
|
||||||
hm.xdg.configFile."eww/scripts".source = ../../config/eww/scripts;
|
hm.xdg.configFile."eww/scripts".source = ../../../config/eww/scripts;
|
||||||
|
|
||||||
# - Themeing ---------------------------------
|
# - Themeing ---------------------------------
|
||||||
hm.xdg.configFile."eww/colour-scheme.scss".text = ''
|
hm.xdg.configFile."eww/colour-scheme.scss".text = ''
|
||||||
@@ -50,7 +50,7 @@ in {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
# - Dependencies -----------------------------
|
# - Dependencies -----------------------------
|
||||||
samfelag.modules.desktop.rofi.enable = true;
|
samfelag.modules.desktop.tools.rofi.enable = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.samfelag.modules.desktop.polybar;
|
cfg = config.samfelag.modules.desktop.tools.polybar;
|
||||||
i3Cfg = config.samfelag.modules.desktop.i3;
|
i3Cfg = config.samfelag.modules.desktop.wm.i3;
|
||||||
polybar_pkg = pkgs.polybar.override {
|
polybar_pkg = pkgs.polybar.override {
|
||||||
i3Support = true;
|
i3Support = true;
|
||||||
pulseSupport = true;
|
pulseSupport = true;
|
||||||
@@ -13,13 +13,13 @@ let
|
|||||||
'';
|
'';
|
||||||
# Paths
|
# Paths
|
||||||
paths = {
|
paths = {
|
||||||
config = ../../config/polybar/config.ini;
|
config = ../../../config/polybar/config.ini;
|
||||||
bars = ../../config/polybar/bars;
|
bars = ../../../config/polybar/bars;
|
||||||
scripts = ../../config/polybar/scripts;
|
scripts = ../../../config/polybar/scripts;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
|
||||||
options.samfelag.modules.desktop.polybar = {
|
options.samfelag.modules.desktop.tools.polybar = {
|
||||||
enable = lib.mkEnableOption "polybar";
|
enable = lib.mkEnableOption "polybar";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -59,10 +59,14 @@ in {
|
|||||||
# - Dependencies -----------------------------
|
# - Dependencies -----------------------------
|
||||||
|
|
||||||
# The polybar modules use rofi
|
# The polybar modules use rofi
|
||||||
samfelag.modules.desktop.rofi.enable = true;
|
samfelag.modules.desktop.tools.rofi.enable = true;
|
||||||
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
samfelag.modules.desktop.wm.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
||||||
"${i3Cfg.mod}+Shift+w" = "exec $HOME/.config/rofi/menus/wifi/wifi.sh";
|
"${i3Cfg.mod}+Shift+w" = "exec $HOME/.config/rofi/menus/wifi/wifi.sh";
|
||||||
};
|
};
|
||||||
|
samfelag.modules.desktop.wm.i3.extraStartup = lib.mkIf i3Cfg.enable [
|
||||||
|
{ command = "systemctl --user restart polybar"; always = true; notification = false; }
|
||||||
|
{ command = "feh --bg-fill -B \"#${config.colorScheme.palette.base00}\" -z --no-fehbg ${cfg.wallpaper}"; always = true; notification = false; }
|
||||||
|
];
|
||||||
|
|
||||||
# - Services ---------------------------------
|
# - Services ---------------------------------
|
||||||
|
|
||||||
@@ -1,12 +1,13 @@
|
|||||||
{ config, lib, pkgs, inputs, ... }:
|
{ config, lib, pkgs, inputs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.samfelag.modules.desktop.rofi;
|
cfg = config.samfelag.modules.desktop.tools.rofi;
|
||||||
hyprCfg = config.samfelag.modules.desktop.hyprland;
|
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
|
||||||
|
i3Cfg = config.samfelag.modules.desktop.wm.i3;
|
||||||
nix-colors-lib = inputs.nix-colors.lib-contrib { inherit pkgs; };
|
nix-colors-lib = inputs.nix-colors.lib-contrib { inherit pkgs; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.samfelag.modules.desktop.rofi = {
|
options.samfelag.modules.desktop.tools.rofi = {
|
||||||
enable = lib.mkEnableOption "rofi";
|
enable = lib.mkEnableOption "rofi";
|
||||||
};
|
};
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
@@ -17,7 +18,7 @@ in
|
|||||||
rofi
|
rofi
|
||||||
];
|
];
|
||||||
|
|
||||||
hm.xdg.configFile."rofi/menus".source = ../../config/rofi/menus;
|
hm.xdg.configFile."rofi/menus".source = ../../../config/rofi/menus;
|
||||||
hm.xdg.configFile."rofi/nix.png".source = nix-colors-lib.nixWallpaperFromScheme {
|
hm.xdg.configFile."rofi/nix.png".source = nix-colors-lib.nixWallpaperFromScheme {
|
||||||
scheme = config.colorScheme;
|
scheme = config.colorScheme;
|
||||||
width = 600;
|
width = 600;
|
||||||
@@ -38,11 +39,17 @@ in
|
|||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
samfelag.modules.desktop.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
|
samfelag.modules.desktop.wm.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
|
||||||
"${hyprCfg.mod}, SPACE, exec, $HOME/.config/rofi/menus/launcher/launcher.sh"
|
"${hyprCfg.mod}, SPACE, exec, $HOME/.config/rofi/menus/launcher/launcher.sh"
|
||||||
"${hyprCfg.mod}, END, exec, $HOME/.config/rofi/menus/powermenu/powermenu.sh"
|
"${hyprCfg.mod}, END, exec, $HOME/.config/rofi/menus/powermenu/powermenu.sh"
|
||||||
"${hyprCfg.mod} SHIFT, W, exec, $HOME/.config/rofi/menus/wifi/wifi.sh"
|
"${hyprCfg.mod} SHIFT, W, exec, $HOME/.config/rofi/menus/wifi/wifi.sh"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
samfelag.modules.desktop.wm.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
||||||
|
"${i3Cfg.mod}+space" = "exec $HOME/.config/rofi/menus/launcher/launcher.sh";
|
||||||
|
"${i3Cfg.mod}+End" = "exec $HOME/.config/rofi/menus/powermenu/powermenu.sh";
|
||||||
|
"${i3Cfg.mod}+Shift+w" = "exec $HOME/.config/rofi/menus/wifi/wifi.sh";
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ inputs, config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.samfelag.modules.desktop.hyprland;
|
cfg = config.samfelag.modules.desktop.wm.hyprland;
|
||||||
mod = "Mod4";
|
mod = "Mod4";
|
||||||
in {
|
in {
|
||||||
|
|
||||||
options.samfelag.modules.desktop.hyprland = with lib; {
|
options.samfelag.modules.desktop.wm.hyprland = with lib; {
|
||||||
enable = mkEnableOption "hyprland window manager";
|
enable = mkEnableOption "hyprland window manager";
|
||||||
|
|
||||||
mod = my.mkOpt' types.str "Mod4" "Main modifier key for hyprland";
|
mod = my.mkOpt' types.str "Mod4" "Main modifier key for hyprland";
|
||||||
@@ -19,57 +19,11 @@ in {
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# Wallpaper
|
|
||||||
hyprpaper
|
|
||||||
greetd.gtkgreet
|
|
||||||
cage
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# - Login screen -----------------------------
|
|
||||||
services.greetd = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
default_session = {
|
|
||||||
command = "${pkgs.cage}/bin/cage -d -s ${pkgs.greetd.gtkgreet}/bin/gtkgreet -- -c Hyprland -s /etc/greetd/greetd.css";
|
|
||||||
user = config.user.name;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.etc."greetd/environments".text = ''
|
|
||||||
Hyprland
|
|
||||||
'';
|
|
||||||
|
|
||||||
environment.etc."greetd/greetd.css".text = ''
|
|
||||||
window {
|
|
||||||
background-image: url("file://${config.samfelag.modules.desktop.wallpaper}");
|
|
||||||
background-size: cover;
|
|
||||||
background-position: center;
|
|
||||||
font-family: Iosevka;
|
|
||||||
color: #${config.colorScheme.palette.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
box#body {
|
|
||||||
background-color: #${config.colorScheme.palette.base06};
|
|
||||||
opacity: 0.75;
|
|
||||||
border-radius: 10px;
|
|
||||||
padding: 50px;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
# - Dependencies -----------------------------
|
|
||||||
samfelag.modules.desktop.rofi.enable = true;
|
|
||||||
samfelag.modules.desktop.eww.enable = true;
|
|
||||||
samfelag.modules.system.kanata.enable = true;
|
|
||||||
|
|
||||||
# - Configuration -----------------------------
|
# - Configuration -----------------------------
|
||||||
|
|
||||||
# Hyprpaper
|
# Hyprland config
|
||||||
hm.xdg.configFile."hypr/hyprpaper.conf".text = ''
|
|
||||||
preload = ${config.samfelag.modules.desktop.wallpaper}
|
|
||||||
wallpaper = ,${config.samfelag.modules.desktop.wallpaper}
|
|
||||||
'';
|
|
||||||
|
|
||||||
programs.hyprland = {
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
@@ -84,7 +38,21 @@ in {
|
|||||||
# Whether to enable hyprland-session.target on hyprland startup
|
# Whether to enable hyprland-session.target on hyprland startup
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
|
|
||||||
|
plugins = [
|
||||||
|
pkgs.hyprlandPlugins.hy3
|
||||||
|
];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
|
||||||
|
general = {
|
||||||
|
layout = "hy3";
|
||||||
|
};
|
||||||
|
|
||||||
|
env = [
|
||||||
|
"HYPRCURSOR_THEME,rose-pine-hyprcursor"
|
||||||
|
"HYPRCURSOR_SIZE,24"
|
||||||
|
];
|
||||||
|
|
||||||
input = {
|
input = {
|
||||||
kb_layout = cfg.kb_layout;
|
kb_layout = cfg.kb_layout;
|
||||||
};
|
};
|
||||||
@@ -115,26 +83,26 @@ in {
|
|||||||
"${cfg.mod} SHIFT, SPACE, togglefloating"
|
"${cfg.mod} SHIFT, SPACE, togglefloating"
|
||||||
|
|
||||||
# Move focus
|
# Move focus
|
||||||
"${cfg.mod}, left, movefocus, l"
|
"${cfg.mod}, left, hy3:movefocus, l"
|
||||||
"${cfg.mod}, right, movefocus, r"
|
"${cfg.mod}, right, hy3:movefocus, r"
|
||||||
"${cfg.mod}, up, movefocus, u"
|
"${cfg.mod}, up, hy3:movefocus, u"
|
||||||
"${cfg.mod}, down, movefocus, d"
|
"${cfg.mod}, down, hy3:movefocus, d"
|
||||||
|
|
||||||
"${cfg.mod}, h, movefocus, l"
|
"${cfg.mod}, h, hy3:movefocus, l"
|
||||||
"${cfg.mod}, l, movefocus, r"
|
"${cfg.mod}, l, hy3:movefocus, r"
|
||||||
"${cfg.mod}, k, movefocus, u"
|
"${cfg.mod}, k, hy3:movefocus, u"
|
||||||
"${cfg.mod}, j, movefocus, d"
|
"${cfg.mod}, j, hy3:movefocus, d"
|
||||||
|
|
||||||
# Move focus
|
# Move focus
|
||||||
"${cfg.mod} SHIFT, left, movewindow, l"
|
"${cfg.mod} SHIFT, left, hy3:movewindow, l"
|
||||||
"${cfg.mod} SHIFT, right, movewindow, r"
|
"${cfg.mod} SHIFT, right, hy3:movewindow, r"
|
||||||
"${cfg.mod} SHIFT, up, movewindow, u"
|
"${cfg.mod} SHIFT, up, hy3:movewindow, u"
|
||||||
"${cfg.mod} SHIFT, down, movewindow, d"
|
"${cfg.mod} SHIFT, down, hy3:movewindow, d"
|
||||||
|
|
||||||
"${cfg.mod} SHIFT, h, movewindow, l"
|
"${cfg.mod} SHIFT, h, hy3:movewindow, l"
|
||||||
"${cfg.mod} SHIFT, l, movewindow, r"
|
"${cfg.mod} SHIFT, l, hy3:movewindow, r"
|
||||||
"${cfg.mod} SHIFT, k, movewindow, u"
|
"${cfg.mod} SHIFT, k, hy3:movewindow, u"
|
||||||
"${cfg.mod} SHIFT, j, movewindow, d"
|
"${cfg.mod} SHIFT, j, hy3:movewindow, d"
|
||||||
|
|
||||||
# Switch workspace
|
# Switch workspace
|
||||||
"${cfg.mod}, 1, workspace, 1"
|
"${cfg.mod}, 1, workspace, 1"
|
||||||
@@ -165,7 +133,7 @@ in {
|
|||||||
", XF86AudioStop, exec, playerctl stop"
|
", XF86AudioStop, exec, playerctl stop"
|
||||||
|
|
||||||
# - Keyboard ---------------------------
|
# - Keyboard ---------------------------
|
||||||
"${cfg.mod} SHIFT, K, exec, hyprctl switchxkblayout kanata next"
|
"${cfg.mod}, Escape, exec, hyprctl switchxkblayout current next"
|
||||||
|
|
||||||
] ++ cfg.extraKeybindings;
|
] ++ cfg.extraKeybindings;
|
||||||
|
|
||||||
@@ -176,7 +144,7 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
bindm = [
|
bindm = [
|
||||||
"${cfg.mod}, mouse:272, movewindow"
|
"${cfg.mod}, mouse:272, hy3:movewindow"
|
||||||
"${cfg.mod} SHIFT, mouse:272, resizewindow 1"
|
"${cfg.mod} SHIFT, mouse:272, resizewindow 1"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.samfelag.modules.desktop.i3;
|
cfg = config.samfelag.modules.desktop.wm.i3;
|
||||||
mod = "Mod4";
|
mod = "Mod4";
|
||||||
in {
|
in {
|
||||||
|
|
||||||
options.samfelag.modules.desktop.i3 = with lib; {
|
options.samfelag.modules.desktop.wm.i3 = with lib; {
|
||||||
enable = mkEnableOption "i3 window manager";
|
enable = mkEnableOption "i3 window manager";
|
||||||
|
|
||||||
mod = my.mkOpt' types.str "Mod4" "Main modifier key for i3";
|
mod = my.mkOpt' types.str "Mod4" "Main modifier key for i3";
|
||||||
@@ -23,8 +23,12 @@ in {
|
|||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
playerctl
|
playerctl
|
||||||
|
i3lock-blur
|
||||||
|
feh
|
||||||
];
|
];
|
||||||
|
|
||||||
|
samfelag.modules.desktop.tools.polybar.enable = true;
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
iosevka
|
iosevka
|
||||||
(nerdfonts.override { fonts = [ "Iosevka" ]; })
|
(nerdfonts.override { fonts = [ "Iosevka" ]; })
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.samfelag.modules.dev.devenv;
|
cfg = config.samfelag.modules.dev.devenv;
|
||||||
i3Cfg = config.samfelag.modules.desktop.i3;
|
i3Cfg = config.samfelag.modules.desktop.wm.i3;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.samfelag.modules.dev.devenv = {
|
options.samfelag.modules.dev.devenv = {
|
||||||
@@ -21,7 +21,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
# TODO: This assumes we have alacritty and a python311 devenv set up (may want to fix this at some point)
|
# TODO: This assumes we have alacritty and a python311 devenv set up (may want to fix this at some point)
|
||||||
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
samfelag.modules.desktop.wm.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
||||||
"${i3Cfg.mod}+Shift+P" = "exec ${pkgs.alacritty}/bin/alacritty -t floating-term -e zsh -c \"direnv exec ~/sandbox/python311 ipython\"";
|
"${i3Cfg.mod}+Shift+P" = "exec ${pkgs.alacritty}/bin/alacritty -t floating-term -e zsh -c \"direnv exec ~/sandbox/python311 ipython\"";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.samfelag.modules.editors.emacs;
|
cfg = config.samfelag.modules.editors.emacs;
|
||||||
i3Cfg = config.samfelag.modules.desktop.i3;
|
i3Cfg = config.samfelag.modules.desktop.wm.i3;
|
||||||
hyprCfg = config.samfelag.modules.desktop.hyprland;
|
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
|
||||||
emacsPackages = epkgs: [
|
emacsPackages = epkgs: [
|
||||||
epkgs.vterm
|
epkgs.vterm
|
||||||
];
|
];
|
||||||
@@ -103,11 +103,11 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
samfelag.modules.desktop.wm.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
||||||
"${i3Cfg.mod}+Shift+e" = "exec ${emacsWithPackages}/bin/emacs";
|
"${i3Cfg.mod}+Shift+e" = "exec ${emacsWithPackages}/bin/emacs";
|
||||||
};
|
};
|
||||||
|
|
||||||
samfelag.modules.desktop.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
|
samfelag.modules.desktop.wm.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
|
||||||
"${hyprCfg.mod} SHIFT, e, exec, ${emacsWithPackages}/bin/emacs"
|
"${hyprCfg.mod} SHIFT, e, exec, ${emacsWithPackages}/bin/emacs"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ in
|
|||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
|
|
||||||
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf desktopCfg.enable {
|
samfelag.modules.desktop.wm.i3.extraKeybindings = lib.mkIf desktopCfg.enable {
|
||||||
"${desktopCfg.i3.mod}+b" = "exec $HOME/.config/rofi/menus/bluetooth/bluetooth.sh";
|
"${desktopCfg.i3.mod}+b" = "exec $HOME/.config/rofi/menus/bluetooth/bluetooth.sh";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -23,10 +23,12 @@ in
|
|||||||
|
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
hardware.opengl.enable = true;
|
hardware = {
|
||||||
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
|
graphics.enable = true;
|
||||||
|
nvidia = {
|
||||||
hardware.nvidia.prime = {
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
|
open = true;
|
||||||
|
prime = {
|
||||||
offload.enable = true;
|
offload.enable = true;
|
||||||
|
|
||||||
# Bus ID of the Intel GPU. You can find it using lspci, either under 3D or VGA
|
# Bus ID of the Intel GPU. You can find it using lspci, either under 3D or VGA
|
||||||
@@ -36,4 +38,6 @@ in
|
|||||||
nvidiaBusId = cfg.nvidiaBusId;
|
nvidiaBusId = cfg.nvidiaBusId;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.samfelag.modules.system.pass;
|
cfg = config.samfelag.modules.system.pass;
|
||||||
i3Cfg = config.samfelag.modules.desktop.i3;
|
i3Cfg = config.samfelag.modules.desktop.wm.i3;
|
||||||
hyprCfg = config.samfelag.modules.desktop.hyprland;
|
hyprCfg = config.samfelag.modules.desktop.wm.hyprland;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.samfelag.modules.system.pass = {
|
options.samfelag.modules.system.pass = {
|
||||||
@@ -36,11 +36,11 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
samfelag.modules.desktop.wm.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
|
||||||
"${i3Cfg.mod}+p" = "exec rofi-pass";
|
"${i3Cfg.mod}+p" = "exec rofi-pass";
|
||||||
};
|
};
|
||||||
|
|
||||||
samfelag.modules.desktop.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
|
samfelag.modules.desktop.wm.hyprland.extraKeybindings = lib.mkIf hyprCfg.enable [
|
||||||
"${hyprCfg.mod}, P, exec, rofi-pass"
|
"${hyprCfg.mod}, P, exec, rofi-pass"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user