Compare commits
No commits in common. "b5b50630651a36f028d81d7bd68b2a35f5b5ec94" and "c6cd3018db6adf017dd7516d270fb5ae20eeeed8" have entirely different histories.
b5b5063065
...
c6cd3018db
85
flake.lock
85
flake.lock
|
@ -121,22 +121,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1717312683,
|
|
||||||
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat_3": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733328505,
|
"lastModified": 1733328505,
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
|
@ -150,7 +134,7 @@
|
||||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_4": {
|
"flake-compat_3": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733328505,
|
"lastModified": 1733328505,
|
||||||
|
@ -526,59 +510,7 @@
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-cosmic": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_2",
|
|
||||||
"nixpkgs": "nixpkgs",
|
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1740267801,
|
|
||||||
"narHash": "sha256-ckbjP4UON7juVdSsYDpu9vFGRtdS2JvUDRHKq0SQwuA=",
|
|
||||||
"owner": "lilyinstarlight",
|
|
||||||
"repo": "nixos-cosmic",
|
|
||||||
"rev": "80952def5b97be37f69a9774163911b47980623a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "lilyinstarlight",
|
|
||||||
"repo": "nixos-cosmic",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1739866667,
|
|
||||||
"narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-stable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1739923778,
|
|
||||||
"narHash": "sha256-BqUY8tz0AQ4to2Z4+uaKczh81zsGZSYxjgvtw+fvIfM=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "36864ed72f234b9540da4cf7a0c49e351d30d3f1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-24.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739698114,
|
"lastModified": 1739698114,
|
||||||
"narHash": "sha256-8S9n69Dnpg8DhfFlP0YvMGmSOY2X4kImGSPWXYNpaHM=",
|
"narHash": "sha256-8S9n69Dnpg8DhfFlP0YvMGmSOY2X4kImGSPWXYNpaHM=",
|
||||||
|
@ -594,7 +526,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738797219,
|
"lastModified": 1738797219,
|
||||||
"narHash": "sha256-KRwX9Z1XavpgeSDVM/THdFd6uH8rNm/6R+7kIbGa+2s=",
|
"narHash": "sha256-KRwX9Z1XavpgeSDVM/THdFd6uH8rNm/6R+7kIbGa+2s=",
|
||||||
|
@ -610,7 +542,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736798957,
|
"lastModified": 1736798957,
|
||||||
"narHash": "sha256-qwpCtZhSsSNQtK4xYGzMiyEDhkNzOCz/Vfu4oL2ETsQ=",
|
"narHash": "sha256-qwpCtZhSsSNQtK4xYGzMiyEDhkNzOCz/Vfu4oL2ETsQ=",
|
||||||
|
@ -629,12 +561,12 @@
|
||||||
"nixvim": {
|
"nixvim": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"devshell": "devshell",
|
"devshell": "devshell",
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_2",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"git-hooks": "git-hooks",
|
"git-hooks": "git-hooks",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"nix-darwin": "nix-darwin",
|
"nix-darwin": "nix-darwin",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nuschtosSearch": "nuschtosSearch",
|
"nuschtosSearch": "nuschtosSearch",
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
|
@ -702,8 +634,7 @@
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nix-matlab": "nix-matlab",
|
"nix-matlab": "nix-matlab",
|
||||||
"nixos-cosmic": "nixos-cosmic",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs": "nixpkgs_2",
|
|
||||||
"nixvim": "nixvim",
|
"nixvim": "nixvim",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"stylix": "stylix"
|
"stylix": "stylix"
|
||||||
|
@ -716,12 +647,12 @@
|
||||||
"base16-helix": "base16-helix",
|
"base16-helix": "base16-helix",
|
||||||
"base16-vim": "base16-vim",
|
"base16-vim": "base16-vim",
|
||||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
"flake-compat": "flake-compat_4",
|
"flake-compat": "flake-compat_3",
|
||||||
"flake-utils": "flake-utils_3",
|
"flake-utils": "flake-utils_3",
|
||||||
"git-hooks": "git-hooks_2",
|
"git-hooks": "git-hooks_2",
|
||||||
"gnome-shell": "gnome-shell",
|
"gnome-shell": "gnome-shell",
|
||||||
"home-manager": "home-manager_3",
|
"home-manager": "home-manager_3",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"systems": "systems_3",
|
"systems": "systems_3",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
|
@ -30,7 +29,6 @@
|
||||||
nixvim,
|
nixvim,
|
||||||
nur,
|
nur,
|
||||||
nix-matlab,
|
nix-matlab,
|
||||||
nixos-cosmic,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
@ -43,10 +41,6 @@
|
||||||
machineConfig
|
machineConfig
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
nix.settings = {
|
|
||||||
substituters = [ "https://cosmic.cachix.org/" ];
|
|
||||||
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
|
|
||||||
};
|
|
||||||
machine.users = userConfig;
|
machine.users = userConfig;
|
||||||
home-manager.extraSpecialArgs = { inherit system; };
|
home-manager.extraSpecialArgs = { inherit system; };
|
||||||
home-manager.sharedModules = [
|
home-manager.sharedModules = [
|
||||||
|
@ -56,7 +50,6 @@
|
||||||
{
|
{
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
nix-matlab.overlay
|
nix-matlab.overlay
|
||||||
nixos-cosmic.overlays.default
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
base.enable = true;
|
base.enable = true;
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
power-saving.enable = false;
|
power-saving.enable = false;
|
||||||
|
pipewire.enable = true;
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
# wpa_supplicant.enable = true;
|
# wpa_supplicant.enable = true;
|
||||||
};
|
};
|
||||||
|
@ -34,6 +35,7 @@
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
swapDevices = [ ];
|
||||||
hardware.cpu.intel.updateMicrocode = true;
|
hardware.cpu.intel.updateMicrocode = true;
|
||||||
|
|
||||||
# Filesystems
|
# Filesystems
|
||||||
|
@ -50,13 +52,5 @@
|
||||||
"dmask=0077"
|
"dmask=0077"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Swapfile
|
|
||||||
swapDevices = [
|
|
||||||
{
|
|
||||||
device = "/var/lib/swapfile";
|
|
||||||
size = 16 * 1024;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,8 +61,7 @@ in
|
||||||
fontconfig.enable = true;
|
fontconfig.enable = true;
|
||||||
neovim.enable = true;
|
neovim.enable = true;
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
nixgreety.enable = true;
|
ly.enable = true;
|
||||||
pipewire.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
||||||
|
|
|
@ -18,7 +18,6 @@ with lib;
|
||||||
./fontconfig/default.nix
|
./fontconfig/default.nix
|
||||||
./graphics/default.nix
|
./graphics/default.nix
|
||||||
./greeter/greetd/default.nix
|
./greeter/greetd/default.nix
|
||||||
./greeter/greetd/nixgreety.nix
|
|
||||||
./greeter/greetd/tuigreet.nix
|
./greeter/greetd/tuigreet.nix
|
||||||
./greeter/ly/default.nix
|
./greeter/ly/default.nix
|
||||||
./locale/default.nix
|
./locale/default.nix
|
||||||
|
|
|
@ -24,7 +24,7 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.default_session = {
|
settings.default_session = {
|
||||||
command = cfg.command;
|
command = cfg.command;
|
||||||
user = mkDefault "greeter";
|
user = "greeter";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.modules.nixgreety;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.nixgreety = {
|
|
||||||
enable = mkEnableOption "nixgreety";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
# Enable greetd
|
|
||||||
modules.greetd = {
|
|
||||||
enable = true;
|
|
||||||
command = "${pkgs.nixgreety}/bin/nixgreety";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.greetd.settings.default_session.user = "root";
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
nixgreety
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -21,17 +21,9 @@ let
|
||||||
name: moduleConfig:
|
name: moduleConfig:
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
config =
|
config = mkIf (any (user: user.modules.${name}.enable) (attrValues config.home-manager.users)) (
|
||||||
mkIf
|
if (isAttrs moduleConfig) then moduleConfig else (moduleConfig { inherit config pkgs; })
|
||||||
(any (
|
);
|
||||||
user:
|
|
||||||
(user.modules.${name}.enable
|
|
||||||
or (any (specialisation: specialisation.configuration.modules.${name}.enable) (
|
|
||||||
attrValues user.modules.${name}.specialisations
|
|
||||||
))
|
|
||||||
)
|
|
||||||
) (attrValues config.home-manager.users))
|
|
||||||
(if (isAttrs moduleConfig) then moduleConfig else (moduleConfig { inherit config pkgs; }));
|
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = map (name: mkModule name moduleConfig."${name}") moduleNames;
|
imports = map (name: mkModule name moduleConfig."${name}") moduleNames;
|
||||||
|
|
|
@ -10,7 +10,6 @@ let
|
||||||
wqy-microhei = prev.callPackage ./fonts/wqy-microhei.nix { };
|
wqy-microhei = prev.callPackage ./fonts/wqy-microhei.nix { };
|
||||||
wqy-bitmapsong = prev.callPackage ./fonts/wqy-bitmapsong.nix { };
|
wqy-bitmapsong = prev.callPackage ./fonts/wqy-bitmapsong.nix { };
|
||||||
|
|
||||||
nixgreety = prev.callPackage ./programs/nixgreety.nix { };
|
|
||||||
# ly = prev.callPackage ./programs/ly/default.nix { };
|
# ly = prev.callPackage ./programs/ly/default.nix { };
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
|
|
@ -68,6 +68,8 @@ pkgs.stdenv.mkDerivation {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
install -Dm644 -t $out/debug ./*.*
|
||||||
|
install -Dm644 -t $out/debug/BDF ./BDF/*.*
|
||||||
install -Dm644 -t $out/share/consolefonts dina.psfu
|
install -Dm644 -t $out/share/consolefonts dina.psfu
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
with pkgs;
|
|
||||||
rustPlatform.buildRustPackage {
|
|
||||||
pname = "nixgreety";
|
|
||||||
version = "master";
|
|
||||||
|
|
||||||
src = fetchFromGitea {
|
|
||||||
domain = "git.bulthuis.dev";
|
|
||||||
owner = "Jan";
|
|
||||||
repo = "nixgreety";
|
|
||||||
rev = "4b5f812e95f6359ce61aef685005dc4013f0fb5f";
|
|
||||||
hash = "sha256-/eikqX/2byDi04v1XvsBVva1Vs7OGLl/cC/Vrq+QF9A=";
|
|
||||||
};
|
|
||||||
|
|
||||||
cargoHash = "sha256-pklKVzYoChRqPZ/D3BsMGnaBFd615TKbvoAy7iU8UtA=";
|
|
||||||
|
|
||||||
useFetchCargoVendor = true;
|
|
||||||
}
|
|
|
@ -50,14 +50,14 @@ in
|
||||||
|
|
||||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
ublock-origin
|
ublock-origin
|
||||||
# tridactyl # TODO: Add toggle for this extension?
|
tridactyl # TODO: Add toggle for this extension?
|
||||||
];
|
];
|
||||||
|
|
||||||
# Theming
|
# Theming
|
||||||
userChrome = readFile (
|
userChrome = readFile (
|
||||||
pkgs.substituteAll {
|
pkgs.substituteAll {
|
||||||
src = ./userChrome.css;
|
src = ./userChrome.css;
|
||||||
colors = config.desktop.theming.colorsCSS;
|
colors = config.theming.colorsCSS;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.modules.qutebrowser;
|
cfg = config.modules.qutebrowser;
|
||||||
theme = config.desktop.theming;
|
theme = config.theming;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.qutebrowser = {
|
options.modules.qutebrowser = {
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.modules.btop;
|
cfg = config.modules.btop;
|
||||||
colors = config.desktop.theming.schemeColors;
|
colors = config.theming.schemeColors;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.btop = {
|
options.modules.btop = {
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
./spotify/default.nix
|
./spotify/default.nix
|
||||||
./terminal/default.nix
|
./terminal/default.nix
|
||||||
./terminal/foot/default.nix
|
./terminal/foot/default.nix
|
||||||
|
./theming/default.nix
|
||||||
./vscode/default.nix
|
./vscode/default.nix
|
||||||
./whatsapp/default.nix
|
./whatsapp/default.nix
|
||||||
./winbox/default.nix
|
./winbox/default.nix
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.modules.waybar;
|
cfg = config.modules.waybar;
|
||||||
theme = config.desktop.theming;
|
theme = config.theming;
|
||||||
colors = theme.colors;
|
colors = theme.colors;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -32,7 +32,6 @@ in
|
||||||
|
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd.enable = false;
|
|
||||||
settings = {
|
settings = {
|
||||||
mainBar = {
|
mainBar = {
|
||||||
layer = "top";
|
layer = "top";
|
||||||
|
|
|
@ -20,6 +20,12 @@ in
|
||||||
|
|
||||||
options.modules.desktop = {
|
options.modules.desktop = {
|
||||||
wayland = mkEnableOption "wayland";
|
wayland = mkEnableOption "wayland";
|
||||||
|
# TODO: Remove, not needed with session/display manager
|
||||||
|
initScript = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "${pkgs.bash}/bin/bash";
|
||||||
|
description = "Bash script to execute after logging in.";
|
||||||
|
};
|
||||||
# TODO: Find a nicer way to do this as this is also executed on startup
|
# TODO: Find a nicer way to do this as this is also executed on startup
|
||||||
reloadScript = mkOption {
|
reloadScript = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
|
@ -63,16 +69,16 @@ in
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
# home.file.".initrc" = {
|
home.file.".initrc" = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# executable = true;
|
executable = true;
|
||||||
# text =
|
text =
|
||||||
# ''
|
''
|
||||||
# #!${pkgs.bash}/bin/bash
|
#!${pkgs.bash}/bin/bash
|
||||||
|
|
||||||
# ''
|
''
|
||||||
# + cfg.initScript;
|
+ cfg.initScript;
|
||||||
# };
|
};
|
||||||
}
|
}
|
||||||
(
|
(
|
||||||
# TODO: Move to dedicated module within desktop or maybe theming?
|
# TODO: Move to dedicated module within desktop or maybe theming?
|
||||||
|
|
|
@ -16,7 +16,7 @@ in
|
||||||
# modules.desktop.x11 = true;
|
# modules.desktop.x11 = true;
|
||||||
modules.rofi.enable = true;
|
modules.rofi.enable = true;
|
||||||
|
|
||||||
desktop.initScript = ''
|
modules.desktop.initScript = ''
|
||||||
i3
|
i3
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -32,13 +32,10 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
# Change desktop to execute river
|
# Change desktop to execute river
|
||||||
desktop.initScript = ''
|
modules.desktop.initScript = ''
|
||||||
${pkgs.dbus}/bin/dbus-run-session ${pkgs.river}/bin/river
|
river
|
||||||
'';
|
'';
|
||||||
|
|
||||||
desktop.session.type = "wayland";
|
|
||||||
desktop.session.desktop = "river";
|
|
||||||
|
|
||||||
# TODO: Fix this
|
# TODO: Fix this
|
||||||
# modules.desktop.reloadScript = ''
|
# modules.desktop.reloadScript = ''
|
||||||
# ${pkgs.river}/bin/riverctl background-color 0x${config.theming.colors.bg}
|
# ${pkgs.river}/bin/riverctl background-color 0x${config.theming.colors.bg}
|
||||||
|
@ -65,11 +62,10 @@ in
|
||||||
wayland.windowManager.river = {
|
wayland.windowManager.river = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xwayland.enable = false;
|
xwayland.enable = false;
|
||||||
systemd.enable = false;
|
|
||||||
settings =
|
settings =
|
||||||
let
|
let
|
||||||
layout = "filtile";
|
layout = "filtile";
|
||||||
layoutOptions = "-outer-padding ${toString config.desktop.theming.layout.windowPadding} -view-padding ${toString config.desktop.theming.layout.windowPadding} -main-ratio 0.5";
|
layoutOptions = "-outer-padding ${toString config.theming.layout.windowPadding} -view-padding ${toString config.theming.layout.windowPadding} -main-ratio 0.5";
|
||||||
modes = [
|
modes = [
|
||||||
"normal"
|
"normal"
|
||||||
"locked"
|
"locked"
|
||||||
|
@ -87,7 +83,7 @@ in
|
||||||
];
|
];
|
||||||
waylockOptions = "-init-color 0x${colors.bg} -input-color 0x${colors.border-focused} -fail-color 0x${colors.bg}";
|
waylockOptions = "-init-color 0x${colors.bg} -input-color 0x${colors.border-focused} -fail-color 0x${colors.bg}";
|
||||||
|
|
||||||
colors = config.desktop.theming.colors;
|
colors = config.theming.colors;
|
||||||
|
|
||||||
# Quick pow function
|
# Quick pow function
|
||||||
pow2 = power: if power != 0 then 2 * (pow2 (power - 1)) else 1;
|
pow2 = power: if power != 0 then 2 * (pow2 (power - 1)) else 1;
|
||||||
|
@ -107,7 +103,7 @@ in
|
||||||
xcursor-theme = "BreezeX-RosePine-Linux 24";
|
xcursor-theme = "BreezeX-RosePine-Linux 24";
|
||||||
keyboard-layout = "-options \"caps:escape\" us";
|
keyboard-layout = "-options \"caps:escape\" us";
|
||||||
|
|
||||||
border-width = toString config.desktop.theming.layout.borderSize;
|
border-width = toString config.theming.layout.borderSize;
|
||||||
background-color = "0x${colors.bg}";
|
background-color = "0x${colors.bg}";
|
||||||
border-color-focused = "0x${colors.fg}";
|
border-color-focused = "0x${colors.fg}";
|
||||||
border-color-unfocused = "0x${colors.border-unfocused}"; # TODO: Change to use named color;
|
border-color-unfocused = "0x${colors.border-unfocused}"; # TODO: Change to use named color;
|
||||||
|
|
|
@ -1,124 +1,5 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
lib,
|
imports = [ ./custom/default.nix ];
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
# Desktop configuration module
|
|
||||||
desktopConfigurationModule = types.submodule {
|
|
||||||
options = {
|
|
||||||
name = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
description = "Desktop environment name.";
|
|
||||||
};
|
|
||||||
type = mkOption {
|
|
||||||
type = types.enum [
|
|
||||||
"custom"
|
|
||||||
"gnome"
|
|
||||||
];
|
|
||||||
description = "Desktop environment type.";
|
|
||||||
};
|
|
||||||
config = mkOption {
|
|
||||||
type = types.attrs;
|
|
||||||
default = { };
|
|
||||||
description = "Desktop environment configuration";
|
|
||||||
};
|
|
||||||
extraConfig = mkOption {
|
|
||||||
type = types.attrs;
|
|
||||||
default = { };
|
|
||||||
description = "Extra configuration for the configured desktop environment";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
customBuilder = config: {
|
|
||||||
configuration = recursiveUpdate { desktop.name = config.name; } config.extraConfig;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Environment builders
|
|
||||||
environmentBuilders = {
|
|
||||||
custom = customBuilder;
|
|
||||||
};
|
|
||||||
|
|
||||||
cfg = config.desktop;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./custom/default.nix
|
|
||||||
./theming/default.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
options.desktop = {
|
|
||||||
name = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "Shell";
|
|
||||||
description = "Desktop configuration name.";
|
|
||||||
};
|
|
||||||
initScript = mkOption {
|
|
||||||
type = types.lines;
|
|
||||||
default = ''
|
|
||||||
${pkgs.ncurses}/bin/clear
|
|
||||||
${pkgs.bashInteractive}/bin/bash
|
|
||||||
'';
|
|
||||||
description = "Bash script to execute after logging in.";
|
|
||||||
};
|
|
||||||
session = {
|
|
||||||
type = mkOption {
|
|
||||||
type = types.enum [
|
|
||||||
"wayland"
|
|
||||||
"x11"
|
|
||||||
"tty"
|
|
||||||
];
|
|
||||||
default = "tty";
|
|
||||||
description = "Session type.";
|
|
||||||
};
|
|
||||||
desktop = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "tty";
|
|
||||||
description = "Desktop environment name.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
environments = mkOption {
|
|
||||||
type = types.attrsOf desktopConfigurationModule;
|
|
||||||
default = { };
|
|
||||||
description = "Desktop environments. Every environment will be built as a specialization.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
specialisation = mapAttrs (
|
|
||||||
name: value: (environmentBuilders."${value.type}" value)
|
|
||||||
) cfg.environments;
|
|
||||||
|
|
||||||
# Create session files
|
|
||||||
home.extraBuilderCommands = ''
|
|
||||||
mkdir $out/session
|
|
||||||
echo "${cfg.name}" > $out/session/name
|
|
||||||
ln -s ${
|
|
||||||
pkgs.writeTextFile {
|
|
||||||
name = "desktop-init";
|
|
||||||
text =
|
|
||||||
''
|
|
||||||
#!${pkgs.bash}/bin/bash
|
|
||||||
|
|
||||||
''
|
|
||||||
+ cfg.initScript;
|
|
||||||
executable = true;
|
|
||||||
}
|
|
||||||
} $out/session/init
|
|
||||||
ln -s ${
|
|
||||||
pkgs.writeTextFile {
|
|
||||||
name = "session-env";
|
|
||||||
text = ''
|
|
||||||
XDG_SESSION_TYPE=${cfg.session.type}
|
|
||||||
XDG_CURRENT_DESKTOP=${cfg.session.desktop}
|
|
||||||
XDG_SESSION_DESKTOP=${cfg.session.desktop}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
} $out/session/env
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
layout = "us";
|
layout = "us";
|
||||||
xkbVariant = "";
|
xkbVariant = "";
|
||||||
enable = true;
|
enable = true;
|
||||||
|
windowManager.i3.enable = true;
|
||||||
desktopManager = {
|
desktopManager = {
|
||||||
xterm.enable = true;
|
xterm.enable = true;
|
||||||
xfce = {
|
xfce = {
|
||||||
|
|
|
@ -21,9 +21,7 @@ let
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configContent = concatStrings (
|
configContent = concatStrings (
|
||||||
map (
|
map (font: aliasConfig config.theming.fonts.pkgs.${font}) config.theming.fonts.installed
|
||||||
font: aliasConfig config.desktop.theming.fonts.pkgs.${font}
|
|
||||||
) config.desktop.theming.fonts.installed
|
|
||||||
);
|
);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
@ -36,10 +34,10 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
defaultFonts = {
|
defaultFonts = {
|
||||||
serif = [ config.desktop.theming.fonts.serif.name ];
|
serif = [ config.theming.fonts.serif.name ];
|
||||||
sansSerif = [ config.desktop.theming.fonts.sansSerif.name ];
|
sansSerif = [ config.theming.fonts.sansSerif.name ];
|
||||||
monospace = [ config.desktop.theming.fonts.monospace.name ];
|
monospace = [ config.theming.fonts.monospace.name ];
|
||||||
emoji = [ config.desktop.theming.fonts.emoji.name ];
|
emoji = [ config.theming.fonts.emoji.name ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -30,12 +30,11 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
# TODO: Remove once emulationstation-de fixes the issue
|
# TODO: Remove once emulationstation-de fixes the issue
|
||||||
# TODO: If not fixed, at least pin the specific commit properly
|
|
||||||
nixpkgs.overlays =
|
nixpkgs.overlays =
|
||||||
let
|
let
|
||||||
pkgs-stable = import (fetchTarball {
|
pkgs-stable = import (fetchTarball {
|
||||||
url = "https://github.com/NixOS/nixpkgs/archive/nixos-24.11.tar.gz";
|
url = "https://github.com/NixOS/nixpkgs/archive/nixos-24.11.tar.gz";
|
||||||
sha256 = "1wr1xzkw7v8biqqjcr867gbpqf3kibkgly36lcnhw0glvkr1i986";
|
sha256 = "0pbvwix9vjkdan1nxxzqfg2yap28afqf8m2nlw1xkqp5c832bkkz";
|
||||||
}) { inherit system; };
|
}) { inherit system; };
|
||||||
in
|
in
|
||||||
[
|
[
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.modules.mako;
|
cfg = config.modules.mako;
|
||||||
theme = config.desktop.theming;
|
theme = config.theming;
|
||||||
colors = theme.colors;
|
colors = theme.colors;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.modules.neovim;
|
cfg = config.modules.neovim;
|
||||||
theme = config.desktop.theming;
|
theme = config.theming;
|
||||||
colors = theme.colors;
|
colors = theme.colors;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.modules.rofi;
|
cfg = config.modules.rofi;
|
||||||
theme = config.desktop.theming;
|
theme = config.theming;
|
||||||
colors = theme.colors;
|
colors = theme.colors;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,6 @@ with lib;
|
||||||
{
|
{
|
||||||
options.default.terminal = mkOption {
|
options.default.terminal = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
# TODO: Make sure everything works even without a default value here
|
|
||||||
# Maybe make sure most gui applications do not exist in the default specialisation
|
|
||||||
default = "foot";
|
|
||||||
description = "Default terminal application";
|
description = "Default terminal application";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,8 +20,8 @@ in
|
||||||
settings = {
|
settings = {
|
||||||
main =
|
main =
|
||||||
let
|
let
|
||||||
font = config.desktop.theming.fonts.monospace.name;
|
font = config.theming.fonts.monospace.name;
|
||||||
size = toString config.desktop.theming.fonts.monospace.recommendedSize;
|
size = toString config.theming.fonts.monospace.recommendedSize;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
font = mkForce "${font}:style=Regular:size=${size}";
|
font = mkForce "${font}:style=Regular:size=${size}";
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.desktop.theming;
|
cfg = config.theming;
|
||||||
|
|
||||||
# Font module type
|
# Font module type
|
||||||
fontModule = types.submodule {
|
fontModule = types.submodule {
|
||||||
|
@ -99,9 +99,11 @@ in
|
||||||
./themes/nord.nix
|
./themes/nord.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
options.desktop.theming =
|
options.modules.theming.enable = mkEnableOption "theming";
|
||||||
|
|
||||||
|
options.theming =
|
||||||
let
|
let
|
||||||
colors = config.desktop.theming.schemeColors;
|
colors = config.theming.schemeColors;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
darkMode = mkOption {
|
darkMode = mkOption {
|
||||||
|
@ -248,7 +250,7 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = mkIf config.modules.theming.enable {
|
||||||
# Enable fontconfig
|
# Enable fontconfig
|
||||||
modules.fontconfig.enable = true;
|
modules.fontconfig.enable = true;
|
||||||
|
|
|
@ -7,11 +7,11 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.desktop.theming.themes.catppuccin;
|
cfg = config.theming.themes.catppuccin;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
desktop.theming.themes.catppuccin = {
|
theming.themes.catppuccin = {
|
||||||
enable = mkEnableOption "catppuccin";
|
enable = mkEnableOption "catppuccin";
|
||||||
flavor = mkOption {
|
flavor = mkOption {
|
||||||
type = types.enum [
|
type = types.enum [
|
||||||
|
@ -26,7 +26,7 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config.desktop.theming = mkIf cfg.enable {
|
config.theming = mkIf cfg.enable {
|
||||||
darkMode = (cfg.flavor != "latte");
|
darkMode = (cfg.flavor != "latte");
|
||||||
colorScheme = "${pkgs.base16-schemes}/share/themes/catppuccin-${cfg.flavor}.yaml";
|
colorScheme = "${pkgs.base16-schemes}/share/themes/catppuccin-${cfg.flavor}.yaml";
|
||||||
};
|
};
|
|
@ -7,12 +7,12 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.desktop.theming.themes.gruvbox;
|
cfg = config.theming.themes.gruvbox;
|
||||||
mode = if cfg.darkMode then "dark" else "light";
|
mode = if cfg.darkMode then "dark" else "light";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
desktop.theming.themes.gruvbox = {
|
theming.themes.gruvbox = {
|
||||||
enable = mkEnableOption "gruvbox-hard";
|
enable = mkEnableOption "gruvbox-hard";
|
||||||
darkMode = mkEnableOption "dark mode";
|
darkMode = mkEnableOption "dark mode";
|
||||||
contrast = mkOption {
|
contrast = mkOption {
|
||||||
|
@ -27,7 +27,7 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config.desktop.theming = mkIf cfg.enable {
|
config.theming = mkIf cfg.enable {
|
||||||
darkMode = cfg.darkMode;
|
darkMode = cfg.darkMode;
|
||||||
colorScheme = "${pkgs.base16-schemes}/share/themes/gruvbox-${mode}-${cfg.contrast}.yaml";
|
colorScheme = "${pkgs.base16-schemes}/share/themes/gruvbox-${mode}-${cfg.contrast}.yaml";
|
||||||
};
|
};
|
|
@ -7,18 +7,18 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.desktop.theming.themes.nord;
|
cfg = config.theming.themes.nord;
|
||||||
mode = if cfg.darkMode then "" else "-light";
|
mode = if cfg.darkMode then "" else "-light";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
desktop.theming.themes.nord = {
|
theming.themes.nord = {
|
||||||
enable = mkEnableOption "nord";
|
enable = mkEnableOption "nord";
|
||||||
darkMode = mkEnableOption "dark mode";
|
darkMode = mkEnableOption "dark mode";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config.desktop.theming = mkIf cfg.enable {
|
config.theming = mkIf cfg.enable {
|
||||||
darkMode = cfg.darkMode;
|
darkMode = cfg.darkMode;
|
||||||
colorScheme = "${pkgs.base16-schemes}/share/themes/nord${mode}.yaml";
|
colorScheme = "${pkgs.base16-schemes}/share/themes/nord${mode}.yaml";
|
||||||
};
|
};
|
|
@ -7,18 +7,18 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.desktop.theming.themes.oxocarbon;
|
cfg = config.theming.themes.oxocarbon;
|
||||||
mode = if cfg.darkMode then "dark" else "light";
|
mode = if cfg.darkMode then "dark" else "light";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
desktop.theming.themes.oxocarbon = {
|
theming.themes.oxocarbon = {
|
||||||
enable = mkEnableOption "oxocarbon";
|
enable = mkEnableOption "oxocarbon";
|
||||||
darkMode = mkEnableOption "dark mode";
|
darkMode = mkEnableOption "dark mode";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config.desktop.theming = mkIf cfg.enable {
|
config.theming = mkIf cfg.enable {
|
||||||
darkMode = cfg.darkMode;
|
darkMode = cfg.darkMode;
|
||||||
colorScheme = "${pkgs.base16-schemes}/share/themes/oxocarbon-${mode}.yaml";
|
colorScheme = "${pkgs.base16-schemes}/share/themes/oxocarbon-${mode}.yaml";
|
||||||
};
|
};
|
|
@ -7,18 +7,18 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.desktop.theming.themes.papercolor;
|
cfg = config.theming.themes.papercolor;
|
||||||
mode = if cfg.darkMode then "dark" else "light";
|
mode = if cfg.darkMode then "dark" else "light";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
desktop.theming.themes.papercolor = {
|
theming.themes.papercolor = {
|
||||||
enable = mkEnableOption "papercolor";
|
enable = mkEnableOption "papercolor";
|
||||||
darkMode = mkEnableOption "dark mode";
|
darkMode = mkEnableOption "dark mode";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config.desktop.theming = mkIf cfg.enable {
|
config.theming = mkIf cfg.enable {
|
||||||
darkMode = cfg.darkMode;
|
darkMode = cfg.darkMode;
|
||||||
colorScheme = "${pkgs.base16-schemes}/share/themes/papercolor-${mode}.yaml";
|
colorScheme = "${pkgs.base16-schemes}/share/themes/papercolor-${mode}.yaml";
|
||||||
};
|
};
|
|
@ -7,16 +7,16 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.desktop.theming.themes.sakura;
|
cfg = config.theming.themes.sakura;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
desktop.theming.themes.sakura = {
|
theming.themes.sakura = {
|
||||||
enable = mkEnableOption "sakura";
|
enable = mkEnableOption "sakura";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config.desktop.theming = mkIf cfg.enable {
|
config.theming = mkIf cfg.enable {
|
||||||
darkMode = false;
|
darkMode = false;
|
||||||
colorScheme = "${pkgs.base16-schemes}/share/themes/sakura.yaml";
|
colorScheme = "${pkgs.base16-schemes}/share/themes/sakura.yaml";
|
||||||
};
|
};
|
|
@ -8,7 +8,7 @@
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.modules.vscode;
|
cfg = config.modules.vscode;
|
||||||
theme = config.desktop.theming;
|
theme = config.theming;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.vscode = {
|
options.modules.vscode = {
|
||||||
|
@ -31,7 +31,7 @@ in
|
||||||
"vscode-extension-ms-vsliveshare-vsliveshare"
|
"vscode-extension-ms-vsliveshare-vsliveshare"
|
||||||
];
|
];
|
||||||
|
|
||||||
desktop.theming.fonts.extraFonts = [ cfg.codeFont ];
|
theming.fonts.extraFonts = [ cfg.codeFont ];
|
||||||
|
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.modules.zathura;
|
cfg = config.modules.zathura;
|
||||||
colors = config.desktop.theming.colors;
|
colors = config.theming.colors;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.zathura.enable = lib.mkEnableOption "zathura";
|
options.modules.zathura.enable = lib.mkEnableOption "zathura";
|
||||||
|
|
287
users/jan.nix
287
users/jan.nix
|
@ -1,11 +1,6 @@
|
||||||
# How Jan likes his linux to be configured
|
# How Jan likes his linux to be configured
|
||||||
|
|
||||||
{
|
{ config, pkgs, ... }:
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
config = {
|
config = {
|
||||||
|
@ -16,266 +11,44 @@
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
libreoffice-still
|
libreoffice-still
|
||||||
remmina
|
remmina
|
||||||
|
# dina-vector
|
||||||
|
# android-studio
|
||||||
|
# jellyfin-tui
|
||||||
pinentry
|
pinentry
|
||||||
thunderbird
|
thunderbird
|
||||||
signal-desktop
|
signal-desktop
|
||||||
prusa-slicer
|
prusa-slicer
|
||||||
freecad-wayland
|
freecad-wayland
|
||||||
inkscape
|
inkscape
|
||||||
|
# appflowy
|
||||||
ente-auth
|
ente-auth
|
||||||
];
|
];
|
||||||
|
|
||||||
desktop.environments = {
|
# TODO: Move to gpg module
|
||||||
river-dark = {
|
# programs.gpg = {
|
||||||
name = "River Dark";
|
# enable = true;
|
||||||
type = "custom";
|
# mutableKeys = true;
|
||||||
config = { };
|
# mutableTrust = true;
|
||||||
extraConfig = {
|
# };
|
||||||
modules = {
|
# services.gpg-agent = {
|
||||||
# Desktop environment
|
# enable = true;
|
||||||
river.enable = true;
|
# enableSshSupport = true;
|
||||||
waylock.enable = true;
|
# };
|
||||||
waybar.enable = true;
|
|
||||||
mako.enable = true;
|
|
||||||
foot.enable = true;
|
|
||||||
rofi-rbw.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
config.common.default = [
|
|
||||||
"wlr"
|
|
||||||
"gtk"
|
|
||||||
];
|
|
||||||
|
|
||||||
extraPortals = with pkgs; [
|
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
xdg-desktop-portal-wlr
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Color scheme
|
|
||||||
desktop.theming.themes.catppuccin = {
|
|
||||||
enable = true;
|
|
||||||
flavor = "mocha";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
river-light = {
|
|
||||||
name = "River Light";
|
|
||||||
type = "custom";
|
|
||||||
config = { };
|
|
||||||
extraConfig = {
|
|
||||||
modules = {
|
|
||||||
# Desktop environment
|
|
||||||
river.enable = true;
|
|
||||||
waylock.enable = true;
|
|
||||||
waybar.enable = true;
|
|
||||||
mako.enable = true;
|
|
||||||
foot.enable = true;
|
|
||||||
rofi-rbw.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
config.common.default = [
|
|
||||||
"wlr"
|
|
||||||
"gtk"
|
|
||||||
];
|
|
||||||
|
|
||||||
extraPortals = with pkgs; [
|
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
xdg-desktop-portal-wlr
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Color scheme
|
|
||||||
desktop.theming.themes.catppuccin = {
|
|
||||||
enable = true;
|
|
||||||
flavor = lib.mkForce "latte";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
cosmic = {
|
|
||||||
name = "Cosmic";
|
|
||||||
type = "custom";
|
|
||||||
config = { };
|
|
||||||
extraConfig = {
|
|
||||||
desktop = {
|
|
||||||
initScript = ''
|
|
||||||
${pkgs.dbus}/bin/dbus-run-session ${pkgs.cosmic-session}/bin/cosmic-session
|
|
||||||
'';
|
|
||||||
session = {
|
|
||||||
type = "wayland";
|
|
||||||
desktop = "cosmic";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
adwaita-icon-theme
|
|
||||||
alsa-utils
|
|
||||||
cosmic-applets
|
|
||||||
cosmic-applibrary
|
|
||||||
cosmic-bg
|
|
||||||
(cosmic-comp.override {
|
|
||||||
useXWayland = false;
|
|
||||||
})
|
|
||||||
cosmic-edit
|
|
||||||
cosmic-files
|
|
||||||
cosmic-greeter
|
|
||||||
cosmic-icons
|
|
||||||
cosmic-idle
|
|
||||||
cosmic-launcher
|
|
||||||
cosmic-notifications
|
|
||||||
cosmic-osd
|
|
||||||
cosmic-panel
|
|
||||||
cosmic-player
|
|
||||||
cosmic-randr
|
|
||||||
cosmic-screenshot
|
|
||||||
cosmic-session
|
|
||||||
cosmic-settings
|
|
||||||
cosmic-settings-daemon
|
|
||||||
cosmic-term
|
|
||||||
cosmic-wallpapers
|
|
||||||
cosmic-workspaces-epoch
|
|
||||||
hicolor-icon-theme
|
|
||||||
playerctl
|
|
||||||
pop-icon-theme
|
|
||||||
pop-launcher
|
|
||||||
xdg-user-dirs
|
|
||||||
xwayland
|
|
||||||
cosmic-store
|
|
||||||
|
|
||||||
# Fonts
|
|
||||||
fira
|
|
||||||
noto-fonts
|
|
||||||
open-sans
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
extraPortals = with pkgs; [
|
|
||||||
xdg-desktop-portal-cosmic
|
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
];
|
|
||||||
configPackages = lib.mkDefault (with pkgs; [ xdg-desktop-portal-cosmic ]);
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
gnome = {
|
|
||||||
name = "Gnome";
|
|
||||||
type = "custom";
|
|
||||||
config = { };
|
|
||||||
extraConfig = {
|
|
||||||
programs = {
|
|
||||||
gnome-shell.enable = true;
|
|
||||||
};
|
|
||||||
desktop = {
|
|
||||||
initScript = ''
|
|
||||||
${pkgs.dbus}/bin/dbus-run-session ${pkgs.gnome-session}/bin/gnome-session
|
|
||||||
'';
|
|
||||||
session = {
|
|
||||||
type = "wayland";
|
|
||||||
desktop = "GNOME";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
home.packages = [
|
|
||||||
# Core utilities
|
|
||||||
pkgs.baobab
|
|
||||||
pkgs.epiphany
|
|
||||||
pkgs.gnome-text-editor
|
|
||||||
pkgs.gnome-calculator
|
|
||||||
pkgs.gnome-calendar
|
|
||||||
pkgs.gnome-characters
|
|
||||||
pkgs.gnome-clocks
|
|
||||||
pkgs.gnome-console
|
|
||||||
pkgs.gnome-contacts
|
|
||||||
pkgs.gnome-font-viewer
|
|
||||||
pkgs.gnome-logs
|
|
||||||
pkgs.gnome-maps
|
|
||||||
pkgs.gnome-music
|
|
||||||
pkgs.gnome-system-monitor
|
|
||||||
pkgs.gnome-weather
|
|
||||||
pkgs.loupe
|
|
||||||
pkgs.nautilus
|
|
||||||
pkgs.gnome-connections
|
|
||||||
pkgs.simple-scan
|
|
||||||
pkgs.snapshot
|
|
||||||
pkgs.totem
|
|
||||||
pkgs.yelp
|
|
||||||
|
|
||||||
# Optional packages
|
|
||||||
pkgs.adwaita-icon-theme
|
|
||||||
pkgs.gnome-backgrounds
|
|
||||||
pkgs.gnome-bluetooth
|
|
||||||
pkgs.gnome-color-manager
|
|
||||||
pkgs.gnome-control-center
|
|
||||||
pkgs.gnome-shell-extensions
|
|
||||||
pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in.
|
|
||||||
pkgs.gnome-user-docs
|
|
||||||
pkgs.glib # for gsettings program
|
|
||||||
pkgs.gnome-menus
|
|
||||||
pkgs.gtk3.out # for gtk-launch program
|
|
||||||
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
|
|
||||||
pkgs.xdg-user-dirs-gtk # Used to create the default bookmarks
|
|
||||||
|
|
||||||
# Games
|
|
||||||
pkgs.aisleriot
|
|
||||||
pkgs.atomix
|
|
||||||
pkgs.five-or-more
|
|
||||||
pkgs.four-in-a-row
|
|
||||||
pkgs.gnome-2048
|
|
||||||
pkgs.gnome-chess
|
|
||||||
pkgs.gnome-klotski
|
|
||||||
pkgs.gnome-mahjongg
|
|
||||||
pkgs.gnome-mines
|
|
||||||
pkgs.gnome-nibbles
|
|
||||||
pkgs.gnome-robots
|
|
||||||
pkgs.gnome-sudoku
|
|
||||||
pkgs.gnome-taquin
|
|
||||||
pkgs.gnome-tetravex
|
|
||||||
pkgs.hitori
|
|
||||||
pkgs.iagno
|
|
||||||
pkgs.lightsoff
|
|
||||||
pkgs.quadrapassel
|
|
||||||
pkgs.swell-foop
|
|
||||||
pkgs.tali
|
|
||||||
|
|
||||||
# Fonts
|
|
||||||
pkgs.cantarell-fonts
|
|
||||||
pkgs.dejavu_fonts
|
|
||||||
pkgs.source-code-pro # Default monospace font in 3.32
|
|
||||||
pkgs.source-sans
|
|
||||||
|
|
||||||
# Other stuff
|
|
||||||
pkgs.gnome-session
|
|
||||||
# pkgs.gnome-session.sessions
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Desktop environments
|
|
||||||
# desktop.environments =
|
|
||||||
# let
|
|
||||||
# in
|
|
||||||
# [
|
|
||||||
# {
|
|
||||||
# name = "river";
|
|
||||||
# type = "custom";
|
|
||||||
# config = { };
|
|
||||||
# extraConfig = {
|
|
||||||
# home.packages = with pkgs; [ cowsay ];
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
# ];
|
|
||||||
|
|
||||||
# Enabled modules
|
# Enabled modules
|
||||||
modules = {
|
modules = {
|
||||||
|
# Theming
|
||||||
|
theming.enable = true;
|
||||||
|
|
||||||
|
# Window manager
|
||||||
|
river.enable = true;
|
||||||
|
waylock.enable = true;
|
||||||
|
waybar.enable = true;
|
||||||
|
|
||||||
|
# Desktop environment
|
||||||
|
mako.enable = true;
|
||||||
|
foot.enable = true;
|
||||||
|
|
||||||
# Communication
|
# Communication
|
||||||
whatsapp.enable = true;
|
whatsapp.enable = true;
|
||||||
discord.enable = true;
|
discord.enable = true;
|
||||||
|
@ -302,6 +75,7 @@
|
||||||
feishin.enable = true;
|
feishin.enable = true;
|
||||||
|
|
||||||
# Tools
|
# Tools
|
||||||
|
rofi-rbw.enable = true;
|
||||||
git = {
|
git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "Jan-Bulthuis";
|
user = "Jan-Bulthuis";
|
||||||
|
@ -346,9 +120,9 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
# Theme configuration
|
# Theme configuration
|
||||||
desktop.theming =
|
theming =
|
||||||
let
|
let
|
||||||
fontpkgs = config.desktop.theming.fonts.pkgs;
|
fontpkgs = config.theming.fonts.pkgs;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# Fonts
|
# Fonts
|
||||||
|
@ -380,6 +154,5 @@
|
||||||
xdg-desktop-portal-wlr
|
xdg-desktop-portal-wlr
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue