Compare commits

..

41 commits

Author SHA1 Message Date
Serĉanto de Scio d0939add2f
tasko(ceitidh): malfunkciigi la servilon 2024-11-03 23:10:28 +10:00
Serĉanto de Scio 9fe4fca702
tasko(cosmic): frapiĝis al la kapo de main 2024-11-03 18:35:36 +10:00
Serĉanto de Scio 8bc58b3ebc
tasko(nixpkgsUnstable): frapiĝis al la kapo de master 2024-11-03 18:32:44 +10:00
Serĉanto de Scio 8aa3f0aee2
tasko(nixos): frapiĝis al la kapo de 24.05 2024-11-03 18:30:41 +10:00
Serĉanto de Scio 8027a0e277
tasko(iog): agordi netrc 2024-10-31 12:34:38 +10:00
Serĉanto de Scio 43dc131c50
feature(iog): add blockfrost cache 2024-10-29 11:46:28 +10:00
Serĉanto de Scio eff147ec60
chore(nixos): bumped to HEAD of 24.05 2024-10-27 22:39:40 +10:00
Serĉanto de Scio 549776860d
chore(nixpkgsUnstable): bumped to HEAD of master 2024-10-27 22:38:06 +10:00
Serĉanto de Scio 29c51e7257
chore(cosmic): bumped to HEAD of main 2024-10-27 22:35:09 +10:00
Serĉanto de Scio 0333173ef0
chore(nixos): bumped to HEAD of 24.05 2024-10-21 18:42:41 +10:00
Serĉanto de Scio acefdf98db
chore(cosmic): bumped to HEAD of main 2024-10-21 18:40:21 +10:00
Serĉanto de Scio 64f8ca6d93
chore(nixpkgsUnstable): bumped to HEAD of master 2024-10-21 18:38:35 +10:00
Serĉanto de Scio 894dba1d78
chore(nix): move configurationLimit to desktop role 2024-10-14 19:33:10 +10:00
Serĉanto de Scio 4ef0c78963
chore(nixos): bumped to HEAD of 24.05 2024-10-14 11:03:08 +10:00
Serĉanto de Scio eafaf070a9
chore(nixpkgsUnstable): bumped to HEAD of master 2024-10-14 10:12:48 +10:00
Serĉanto de Scio 69bf4e5a51
chore(cosmic): bumped to HEAD of main 2024-10-14 07:50:22 +10:00
Serĉanto de Scio e45c64358e
feature(desktop): add evince to view documents 2024-10-10 20:43:41 +10:00
Serĉanto de Scio fd6c41176b
chore(nixos): bumped to HEAD of 24.05 2024-10-08 15:15:38 +10:00
Serĉanto de Scio 85edb981a1
chore(nixpkgsUnstable): bumped to HEAD of master 2024-10-08 15:13:25 +10:00
Serĉanto de Scio 514ae436d9
chore(cosmic): bumped to HEAD of main 2024-10-08 15:09:48 +10:00
Serĉanto de Scio 1d6c223a82
feature(cosmic): added cosmic-tweaks 2024-10-03 18:58:50 +10:00
Serĉanto de Scio aac1b4722b
chore(cosmicDesktop: add power-profiles-daemon 2024-10-03 13:31:56 +10:00
Serĉanto de Scio 1ee90732e7
chore(cosmicDesktop: bump to HEAD of main 2024-10-02 12:38:46 +10:00
Serĉanto de Scio 09a0349a18
nixos: bumped to HEAD of 24.05 2024-09-30 17:06:40 +10:00
Serĉanto de Scio 574e51226a
chore(sercanto): switch to Cosmic Desktop 2024-09-30 17:06:18 +10:00
Serĉanto de Scio 6b900749d0
chore(toxvpn): disable intil after re-write 2024-09-30 15:13:00 +10:00
Serĉanto de Scio c3ce25c827
feature(toxvpn): add initial commit 2024-09-30 15:09:30 +10:00
Serĉanto de Scio 9c3858318a
feature(desktopCraige): add kasts 2024-09-27 13:15:57 +10:00
Serĉanto de Scio 2eb1981e6b
chore(desktopCraige): move to a module 2024-09-27 13:13:06 +10:00
Serĉanto de Scio 7091f8756d
bug(console): set correct font 2024-09-27 12:21:34 +10:00
Serĉanto de Scio f5503dfdb0
feature(cosmic): bumped to alpha.2 2024-09-27 11:38:34 +10:00
Serĉanto de Scio 6287bf357d
feature(cosmic): enable cosmic desktop 2024-09-26 00:03:59 +10:00
Serĉanto de Scio 97f5970e76
feature(starship): switch to craige theme 2024-09-24 12:29:59 +10:00
Serĉanto de Scio 870864cf9a
feature(starship): add font and themes 2024-09-24 02:06:17 +10:00
Serĉanto de Scio e3d22e6206
feature(starship): move to a module 2024-09-23 20:38:32 +10:00
Serĉanto de Scio 561fe2f602
chore(nixos): bumped to HEAD of 24.05 2024-09-23 09:48:18 +10:00
Serĉanto de Scio 5f80e62f93
bug(users): correct hashedPasswordFile 2024-09-17 19:22:13 +10:00
Serĉanto de Scio 31439a9782
feature(colmena): add rPi and VPS tags 2024-09-16 18:47:10 +10:00
Serĉanto de Scio f77cdaf467
chore(nixos): bumped to HEAD of 24.05 2024-09-16 18:29:07 +10:00
Serĉanto de Scio 8ff5d308d2
bug(nix): bump to v2.24.6
Fixes unsafe NAR unpacking
2024-09-10 22:17:49 +10:00
Serĉanto de Scio 56622900d3
Merge branch 'colmena' into consensus 2024-09-09 18:38:58 +10:00
33 changed files with 1306 additions and 146 deletions

View file

@ -897,6 +897,29 @@
"type": "github" "type": "github"
} }
}, },
"cosmicDesktop": {
"inputs": {
"flake-compat": "flake-compat_13",
"nixpkgs": [
"nixpkgsUnstable"
],
"nixpkgs-stable": "nixpkgs-stable",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1730597759,
"narHash": "sha256-DStWygV/fV3aU8VWN4wIG4Mjpq7s540gUD4A103u+Zo=",
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"rev": "db3975340480a6c2532398991f3a47f74df17eed",
"type": "github"
},
"original": {
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"type": "github"
}
},
"crane": { "crane": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -998,7 +1021,7 @@
"cardano-playground": "cardano-playground", "cardano-playground": "cardano-playground",
"cardano-shell": "cardano-shell_7", "cardano-shell": "cardano-shell_7",
"cardano-wallet-unpatched": "cardano-wallet-unpatched", "cardano-wallet-unpatched": "cardano-wallet-unpatched",
"flake-compat": "flake-compat_13", "flake-compat": "flake-compat_14",
"nix-bundle-exe": "nix-bundle-exe", "nix-bundle-exe": "nix-bundle-exe",
"nixpkgs": "nixpkgs_30", "nixpkgs": "nixpkgs_30",
"tullia": "tullia_7" "tullia": "tullia_7"
@ -1580,6 +1603,22 @@
} }
}, },
"flake-compat_13": { "flake-compat_13": {
"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_14": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1635892615, "lastModified": 1635892615,
@ -1595,7 +1634,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_14": { "flake-compat_15": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1650374568, "lastModified": 1650374568,
@ -1611,7 +1650,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_15": { "flake-compat_16": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
@ -3923,7 +3962,7 @@
}, },
"nix-nomad_7": { "nix-nomad_7": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_14", "flake-compat": "flake-compat_15",
"flake-utils": [ "flake-utils": [
"daedalus", "daedalus",
"tullia", "tullia",
@ -4216,7 +4255,7 @@
}, },
"nix_4": { "nix_4": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_15", "flake-compat": "flake-compat_16",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"git-hooks-nix": "git-hooks-nix", "git-hooks-nix": "git-hooks-nix",
"libgit2": "libgit2", "libgit2": "libgit2",
@ -4225,16 +4264,16 @@
"nixpkgs-regression": "nixpkgs-regression_4" "nixpkgs-regression": "nixpkgs-regression_4"
}, },
"locked": { "locked": {
"lastModified": 1723879049, "lastModified": 1725964975,
"narHash": "sha256-aBuGXm0UwDekCYLl7xDyw+BAJOg7728i57TbSXzPacc=", "narHash": "sha256-kgq3B+olx62bzGD5C6ighdAoDweLq+AebxVHcDnKH4w=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nix", "repo": "nix",
"rev": "3ac5d736e2c0d229197057841e6dbf6bdbe3560f", "rev": "eb11c1499876cd4c9c188cbda5b1003b36ce2e59",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "2.24.3", "ref": "2.24.6",
"repo": "nix", "repo": "nix",
"type": "github" "type": "github"
} }
@ -4972,6 +5011,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-stable": {
"locked": {
"lastModified": 1730327045,
"narHash": "sha256-xKel5kd1AbExymxoIfQ7pgcX6hjw9jCgbiBjiUfSVJ8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "080166c15633801df010977d9d7474b4a6c549d7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1675758091, "lastModified": 1675758091,
@ -5070,16 +5125,15 @@
}, },
"nixpkgsUnstable": { "nixpkgsUnstable": {
"locked": { "locked": {
"lastModified": 1689679375, "lastModified": 1730620998,
"narHash": "sha256-LHUC52WvyVDi9PwyL1QCpaxYWBqp4ir4iL6zgOkmcb8=", "narHash": "sha256-Psu99MaSjHs0YtVGVGiCNGrP5uXY5gmM3NV3gWYx+aY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "684c17c429c42515bafb3ad775d2a710947f3d67", "rev": "d0d0a083585193d7a5c0bb0a7172b3f7a975beb6",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@ -5536,11 +5590,11 @@
}, },
"nixpkgs_37": { "nixpkgs_37": {
"locked": { "locked": {
"lastModified": 1725407940, "lastModified": 1730327045,
"narHash": "sha256-tiN5Rlg/jiY0tyky+soJZoRzLKbPyIdlQ77xVgREDNM=", "narHash": "sha256-xKel5kd1AbExymxoIfQ7pgcX6hjw9jCgbiBjiUfSVJ8=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6f6c45b5134a8ee2e465164811e451dcb5ad86e3", "rev": "080166c15633801df010977d9d7474b4a6c549d7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -6017,7 +6071,7 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
"lastModified": 1718869541, "lastModified": 1718869541,
@ -6037,6 +6091,7 @@
"inputs": { "inputs": {
"cardano-node": "cardano-node", "cardano-node": "cardano-node",
"colmena": "colmena", "colmena": "colmena",
"cosmicDesktop": "cosmicDesktop",
"daedalus": "daedalus", "daedalus": "daedalus",
"iohkNix": "iohkNix_6", "iohkNix": "iohkNix_6",
"nix": "nix_4", "nix": "nix_4",
@ -6047,6 +6102,27 @@
} }
}, },
"rust-overlay": { "rust-overlay": {
"inputs": {
"nixpkgs": [
"cosmicDesktop",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730514457,
"narHash": "sha256-cjFX208s9pyaOfMvF9xI6WyafyXINqdhMF7b1bMQpLI=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "1ff38ca26eb31858e4dfe7fe738b6b3ce5d74922",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": { "inputs": {
"flake-utils": [ "flake-utils": [
"ragenix", "ragenix",

View file

@ -4,11 +4,15 @@
inputs = { inputs = {
cardano-node.url = "github:input-output-hk/cardano-node/?ref=1.35.7"; cardano-node.url = "github:input-output-hk/cardano-node/?ref=1.35.7";
colmena.url = github:zhaofengli/colmena/?ref=v0.4.0; colmena.url = github:zhaofengli/colmena/?ref=v0.4.0;
cosmicDesktop = {
url = github:lilyinstarlight/nixos-cosmic;
inputs.nixpkgs.follows = "nixpkgsUnstable";
};
daedalus.url = github:input-output-hk/daedalus/?ref=6.0.0; daedalus.url = github:input-output-hk/daedalus/?ref=6.0.0;
iohkNix.url = github:input-output-hk/iohk-nix/?ref=df1da282f996ec46b33379407df99613a1fbafdd; iohkNix.url = github:input-output-hk/iohk-nix/?ref=df1da282f996ec46b33379407df99613a1fbafdd;
nix.url = "github:NixOS/nix/?ref=2.24.3"; nix.url = github:NixOS/nix/?ref=2.24.6;
nixpkgs.url = github:NixOS/nixpkgs/?ref=nixos-24.05; nixpkgs.url = github:NixOS/nixpkgs/?ref=nixos-24.05;
nixpkgsUnstable.url = github:NixOS/nixpkgs/?ref=nixos-unstable; nixpkgsUnstable.url = github:NixOS/nixpkgs;
ragenix = { ragenix = {
url = github:yaxitech/ragenix; url = github:yaxitech/ragenix;
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";

View file

@ -1,20 +0,0 @@
# NixOps configuration for ceitidh
{
config,
pkgs,
lib,
...
}: {
imports = [
../../networks/pi3B_rack.nix
#../../profiles/cyclone-ibis.nix
];
networking.hostName = "ceitidh"; # Define your hostname.
environment.systemPackages = with pkgs; [
gnupg # GPL OpenPGP implementation
];
system.stateVersion = "22.05"; # The version of NixOS originally installed
}

View file

@ -13,7 +13,7 @@
../../profiles/ipv6.nix ../../profiles/ipv6.nix
../../profiles/mastodon.nix ../../profiles/mastodon.nix
../../profiles/matrix.nix ../../profiles/matrix.nix
#../../profiles/mcwhirter.io.nix ../../profiles/mcwhirter.io.nix
#../../profiles/minecraftServer.nix #../../profiles/minecraftServer.nix
../../profiles/nextcloud.nix ../../profiles/nextcloud.nix
../../profiles/nixpkgs-dev.nix ../../profiles/nixpkgs-dev.nix

View file

@ -7,7 +7,6 @@
imports = [ imports = [
../../hardware/system76_thelioMira.nix # Include results of the hardware scan. ../../hardware/system76_thelioMira.nix # Include results of the hardware scan.
../../profiles/cron-craige.nix # Provide Craige's cron jobs ../../profiles/cron-craige.nix # Provide Craige's cron jobs
../../profiles/desktopCraige.nix # Craige's desktop tools and apps
../../profiles/haskell-dev.nix # Haskell dev environment ../../profiles/haskell-dev.nix # Haskell dev environment
../../profiles/host_common.nix # Common host configuration options ../../profiles/host_common.nix # Common host configuration options
../../profiles/iog.nix # IOHK environment ../../profiles/iog.nix # IOHK environment
@ -16,15 +15,12 @@
../../profiles/nix-community.nix # Nix community aarch64 tooling ../../profiles/nix-community.nix # Nix community aarch64 tooling
../../profiles/nixpkgs-dev.nix # Nix pkgs dev tools ../../profiles/nixpkgs-dev.nix # Nix pkgs dev tools
../../profiles/openssh.nix # Enable and configure openssh ../../profiles/openssh.nix # Enable and configure openssh
../../profiles/pantheon.nix # Enable and configure the pantheon desktop
../../profiles/pipewire.nix # Enable and pipewire audio system ../../profiles/pipewire.nix # Enable and pipewire audio system
../../profiles/xmonad.nix # Xmonad desktop environment ../../profiles/xmonad.nix # Xmonad desktop environment
../../profiles/yubikey.nix # Yubikey tooling ../../profiles/yubikey.nix # Yubikey tooling
../../profiles/users-ops.nix # MIO Ops users ../../profiles/users-ops.nix # MIO Ops users
]; ];
deployment.targetHost = "10.42.0.11";
nixpkgs = { nixpkgs = {
config = { config = {
allowUnfree = true; allowUnfree = true;
@ -51,12 +47,13 @@
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
anonymousPro anonymousPro
cascadia-code # onospaced font that includes programming ligatures
dejavu_fonts # A typeface family based on the Bitstream Vera fonts dejavu_fonts # A typeface family based on the Bitstream Vera fonts
fira-code # Monospace font with programming ligaturess fira-code # Monospace font with programming ligaturess
font-awesome font-awesome
hack-font # A typeface designed for source code hack-font # A typeface designed for source code
iosevka # Versatile typeface for code, from code
jetbrains-mono jetbrains-mono
nerdfonts # Iconic font aggregator, collection, & patcher
open-sans # Used in in my polybar configuration open-sans # Used in in my polybar configuration
xkcd-font # Font based handwriting in xkcd comics xkcd-font # Font based handwriting in xkcd comics
]; ];

View file

@ -7,7 +7,6 @@
imports = [ imports = [
../../hardware/system76_lemurPro.nix # Include results of the hardware scan. ../../hardware/system76_lemurPro.nix # Include results of the hardware scan.
../../profiles/cron-craige.nix # Provide Craige's cron jobs ../../profiles/cron-craige.nix # Provide Craige's cron jobs
../../profiles/desktopCraige.nix # Craige's desktop tools and apps
../../profiles/haskell-dev.nix # Haskell dev environment ../../profiles/haskell-dev.nix # Haskell dev environment
../../profiles/host_common.nix # Common host configuration options ../../profiles/host_common.nix # Common host configuration options
../../profiles/iog.nix # IOHK environment ../../profiles/iog.nix # IOHK environment
@ -17,7 +16,6 @@
../../profiles/nix-mio-ops.nix # mio-ops Nix tooling ../../profiles/nix-mio-ops.nix # mio-ops Nix tooling
../../profiles/nixpkgs-dev.nix # Nix pkgs dev tools ../../profiles/nixpkgs-dev.nix # Nix pkgs dev tools
../../profiles/openssh.nix # Enable and configure openssh ../../profiles/openssh.nix # Enable and configure openssh
../../profiles/pantheon.nix # Enable and configure the pantheon desktop
../../profiles/pipewire.nix # Enable and pipewire audio system ../../profiles/pipewire.nix # Enable and pipewire audio system
../../profiles/powerManagement.nix # Power management for laptops ../../profiles/powerManagement.nix # Power management for laptops
../../profiles/xmonad.nix # Xmonad desktop environment ../../profiles/xmonad.nix # Xmonad desktop environment
@ -25,8 +23,6 @@
../../profiles/users-ops.nix # MIO Ops users ../../profiles/users-ops.nix # MIO Ops users
]; ];
deployment.targetHost = "10.42.0.180";
nixpkgs = { nixpkgs = {
config = { config = {
allowUnfree = true; allowUnfree = true;
@ -38,13 +34,7 @@
}; };
boot = { boot = {
loader = { loader.efi.canTouchEfiVariables = true;
systemd-boot = {
enable = true;
configurationLimit = 5;
};
efi.canTouchEfiVariables = true;
};
kernel.sysctl."net.ipv4.ip_forward" = "1"; kernel.sysctl."net.ipv4.ip_forward" = "1";
extraModprobeConfig = "options kvm_intel nested=1"; extraModprobeConfig = "options kvm_intel nested=1";
}; };
@ -61,7 +51,6 @@
font-awesome font-awesome
hack-font # A typeface designed for source code hack-font # A typeface designed for source code
jetbrains-mono jetbrains-mono
nerdfonts # Iconic font aggregator, collection, & patcher
open-sans # Used in in my polybar configuration open-sans # Used in in my polybar configuration
xkcd-font # Font based handwriting in xkcd comics xkcd-font # Font based handwriting in xkcd comics
]; ];

28
modules/default.nix Normal file
View file

@ -0,0 +1,28 @@
{
self,
inputs,
nixpkgs,
ragenix,
...
}: let
nixosSystem = nixpkgs.lib.makeOverridable nixpkgs.lib.nixosSystem;
customModules = import ./module-list.nix;
baseModules = [
{
imports = [
({pkgs, ...}: {
nix.nixPath = [
"nixpkgs=${pkgs.path}"
];
nix.extraOptions = ''
experimental-features = nix-command flakes
'';
documentation.info.enable = false;
})
];
}
];
defaultModules = baseModules ++ customModules;
in {
imports = defaultModules;
}

7
modules/module-list.nix Normal file
View file

@ -0,0 +1,7 @@
[
./profiles/cosmicDesktop
./profiles/starship
./profiles/toxvpn
./roles/desktop
./roles/desktopCraige
]

View file

@ -0,0 +1,31 @@
# Cosmic is a software platform for designing beautiful user experiences
{
config,
inputs,
lib,
pkgs,
...
}:
with lib; let
cfg = config.profiles.cosmicDesktop;
cosmicDesktop = inputs.cosmicDesktop;
cosmic-tweaks = cosmicDesktop.packages."${pkgs.system}".cosmic-tweaks;
in {
options.profiles.cosmicDesktop = {
enable = mkEnableOption "to enable the Cosmic desktop.";
};
config = mkIf (cfg.enable) {
nix.settings = {
substituters = ["https://cosmic.cachix.org/"];
trusted-public-keys = ["cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="];
};
environment.systemPackages = with pkgs; [
cosmic-tweaks
];
services = {
desktopManager.cosmic.enable = true;
displayManager.cosmic-greeter.enable = true;
power-profiles-daemon.enable = true;
};
};
}

View file

@ -0,0 +1,134 @@
# Get editor completions based on the config schema
"$schema" = 'https://starship.rs/config-schema.json'
# Sets user-defined palette
# Palettes must be defined _after_ this line
palette = "catppuccin_mocha"
# Starship modules
[character]
# Note the use of Catppuccin color 'peach'
success_symbol = "[[󰄛](green) ](peach)"
error_symbol = "[[󰄛](red) ](peach)"
vimcmd_symbol = "[󰄛 ](subtext1)" # For use with zsh-vi-mode
[git_branch]
style = "bold mauve"
[directory]
truncation_length = 4
style = "bold lavender"
# Palette definitions
[palettes.catppuccin_latte]
rosewater = "#dc8a78"
flamingo = "#dd7878"
pink = "#ea76cb"
mauve = "#8839ef"
red = "#d20f39"
maroon = "#e64553"
peach = "#fe640b"
yellow = "#df8e1d"
green = "#40a02b"
teal = "#179299"
sky = "#04a5e5"
sapphire = "#209fb5"
blue = "#1e66f5"
lavender = "#7287fd"
text = "#4c4f69"
subtext1 = "#5c5f77"
subtext0 = "#6c6f85"
overlay2 = "#7c7f93"
overlay1 = "#8c8fa1"
overlay0 = "#9ca0b0"
surface2 = "#acb0be"
surface1 = "#bcc0cc"
surface0 = "#ccd0da"
base = "#eff1f5"
mantle = "#e6e9ef"
crust = "#dce0e8"
[palettes.catppuccin_frappe]
rosewater = "#f2d5cf"
flamingo = "#eebebe"
pink = "#f4b8e4"
mauve = "#ca9ee6"
red = "#e78284"
maroon = "#ea999c"
peach = "#ef9f76"
yellow = "#e5c890"
green = "#a6d189"
teal = "#81c8be"
sky = "#99d1db"
sapphire = "#85c1dc"
blue = "#8caaee"
lavender = "#babbf1"
text = "#c6d0f5"
subtext1 = "#b5bfe2"
subtext0 = "#a5adce"
overlay2 = "#949cbb"
overlay1 = "#838ba7"
overlay0 = "#737994"
surface2 = "#626880"
surface1 = "#51576d"
surface0 = "#414559"
base = "#303446"
mantle = "#292c3c"
crust = "#232634"
[palettes.catppuccin_macchiato]
rosewater = "#f4dbd6"
flamingo = "#f0c6c6"
pink = "#f5bde6"
mauve = "#c6a0f6"
red = "#ed8796"
maroon = "#ee99a0"
peach = "#f5a97f"
yellow = "#eed49f"
green = "#a6da95"
teal = "#8bd5ca"
sky = "#91d7e3"
sapphire = "#7dc4e4"
blue = "#8aadf4"
lavender = "#b7bdf8"
text = "#cad3f5"
subtext1 = "#b8c0e0"
subtext0 = "#a5adcb"
overlay2 = "#939ab7"
overlay1 = "#8087a2"
overlay0 = "#6e738d"
surface2 = "#5b6078"
surface1 = "#494d64"
surface0 = "#363a4f"
base = "#24273a"
mantle = "#1e2030"
crust = "#181926"
[palettes.catppuccin_mocha]
rosewater = "#f5e0dc"
flamingo = "#f2cdcd"
pink = "#f5c2e7"
mauve = "#cba6f7"
red = "#f38ba8"
maroon = "#eba0ac"
peach = "#fab387"
yellow = "#f9e2af"
green = "#a6e3a1"
teal = "#94e2d5"
sky = "#89dceb"
sapphire = "#74c7ec"
blue = "#89b4fa"
lavender = "#b4befe"
text = "#cdd6f4"
subtext1 = "#bac2de"
subtext0 = "#a6adc8"
overlay2 = "#9399b2"
overlay1 = "#7f849c"
overlay0 = "#6c7086"
surface2 = "#585b70"
surface1 = "#45475a"
surface0 = "#313244"
base = "#1e1e2e"
mantle = "#181825"
crust = "#11111b"

View file

@ -0,0 +1,129 @@
format = """
[](#3B4252)\
$python\
$username\
[](bg:#434C5E fg:#3B4252)\
$directory\
[](fg:#434C5E bg:#4C566A)\
$git_branch\
$git_status\
[](fg:#4C566A bg:#86BBD8)\
$c\
$elixir\
$elm\
$golang\
$haskell\
$java\
$julia\
$nodejs\
$nim\
$rust\
[](fg:#86BBD8 bg:#06969A)\
$docker_context\
[](fg:#06969A bg:#33658A)\
$time\
[ ](fg:#33658A)\
"""
command_timeout = 5000
# Disable the blank line at the start of the prompt
# add_newline = false
# You can also replace your username with a neat symbol like  to save some space
[username]
show_always = true
style_user = "bg:#3B4252"
style_root = "bg:#3B4252"
format = '[$user ]($style)'
[directory]
style = "bg:#434C5E"
format = "[ $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"
# Here is how you can shorten some long paths by text replacement
# similar to mapped_locations in Oh My Posh:
[directory.substitutions]
"Documents" = "󰈙 "
"Downloads" = " "
"Music" = " "
"Pictures" = " "
# Keep in mind that the order matters. For example:
# "Important Documents" = "  "
# will not be replaced, because "Documents" was already substituted before.
# So either put "Important Documents" before "Documents" or use the substituted version:
# "Important  " = "  "
[c]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[docker_context]
symbol = " "
style = "bg:#06969A"
format = '[ $symbol $context ]($style) $path'
[elixir]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[elm]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[git_branch]
symbol = ""
style = "bg:#4C566A"
format = '[ $symbol $branch ]($style)'
[git_status]
style = "bg:#4C566A"
format = '[$all_status$ahead_behind ]($style)'
[golang]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[haskell]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[java]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[julia]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[nodejs]
symbol = ""
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[nim]
symbol = " "
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[python]
style = "bg:#3B4252"
format = '[(\($virtualenv\) )]($style)'
[rust]
symbol = ""
style = "bg:#86BBD8"
format = '[ $symbol ($version) ]($style)'
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "bg:#33658A"
format = '[ $time ]($style)'

View file

@ -0,0 +1,42 @@
# Use the color palette
palette = "dracula"
[aws]
style = "bold orange"
[character]
error_symbol = "[λ:](bold red)"
success_symbol = "[λ:](bold green)"
[cmd_duration]
style = "bold yellow"
[directory]
style = "bold green"
[git_branch]
style = "bold pink"
[git_status]
style = "bold red"
[hostname]
style = "bold purple"
[username]
format = "[$user]($style) on "
style_user = "bold cyan"
# Define Dracula color palette
[palettes.dracula]
background = "#282a36"
current_line = "#44475a"
foreground = "#f8f8f2"
comment = "#6272a4"
cyan = "#8be9fd"
green = "#50fa7b"
orange = "#ffb86c"
pink = "#ff79c6"
purple = "#bd93f9"
red = "#ff5555"
yellow = "#f1fa8c"

View file

@ -0,0 +1,124 @@
# Get editor completions based on the config schema
"$schema" = 'https://starship.rs/config-schema.json'
format = """
[](fg:#003b46 bg:#004f5e)\
[](fg:#004f5e bg:#006374)\
[](fg:#006374 bg:#007a8a)\
[](fg:#007a8a bg:#0093a3)\
[](fg:#0093a3 bg:#003b46)\
[](fg:#003b46 bg:#e6454b)\
$username\
[](fg:#e6454b bg:#ff6a4b)\
$battery\
[](fg:#ff6a4b bg:#ffcc66)\
$directory\
[](fg:#ffcc66 bg:#85b57a)\
$git_branch\
$git_status\
[](fg:#85b57a bg:#4da6a6)\
$cmd_duration\
[](fg:#4da6a6 bg:#3a82e6)\
[](fg:#3a82e6 bg:#8c4de6)\
[](fg:#8c4de6)\
$fill\
[---](fg:#ffcc66)
$character\
"""
right_format = """
[󰇥](bold fg:#ffcc66 )
"""
# scheme: "Deep Oceanic Next"
# author: "spearkkk (https://github.com/spearkkk/deep-oceanic-next)"
# base00: "003b46" # background
# base01: "004f5e" # black
# base02: "006374" # bright black
# base03: "007a8a" # grey
# base04: "0093a3" # light grey
# base05: "dce3e8" # foreground
# base06: "e6ebf0" # white
# base07: "f0f5f5" # bright white
# base08: "e6454b" # red
# base09: "ff6a4b" # orange
# base0A: "ffcc66" # yellow
# base0B: "85b57a" # green
# base0C: "4da6a6" # cyan/aqua
# base0D: "3a82e6" # blue
# base0E: "8c4de6" # magenta/purple
# base0F: "e673a3" # pink
# base10: "001114" # darker black
# base11: "000a0d" # darkest black
# base12: "ff5a61" # bright red
# base13: "ffdd80" # bright yellow
# base14: "99d8a0" # bright green
# base15: "66cccc" # bright cyan
# base16: "4da6ff" # bright blue
# base17: "a366ff" # bright purple
palette = "deep_oceanic_next"
[palettes.deep_oceanic_next]
black = "#003b46"
red = "#e6454b"
green = "#85b57a"
blue = "#3a82e6"
yellow = "#ffcc66"
purple = "#8c4de6"
cyan = "#4da6a6"
white = "#dce3e8"
bright-black = "#004f5e"
bright-red = "#ff9999"
bright-green = "#c7e6c7"
bright-blue = "#99ccff"
bright-yellow = "#ffb380"
bright-purple = "#d4a1ff"
bright-cyan = "#99e6e6"
bright-white = "#e6ebf0"
[os]
disabled = true
[username]
show_always = true
style_user = "bg:#f99157 bold fg:#003b46"
style_root = "bg:#f99157 bold fg:#003b46"
format = "[ 󰀄 $user ](bold fg:#003b46 bg:#e6454b)"
# Battery configuration
[battery]
format = "[ $symbol$percentage ](bold fg:#003b46 bg:#ff6a4b)"
[[battery.display]]
threshold = 100
[directory]
truncation_symbol = "…/"
truncation_length = 6
format = "[ $path ](bold fg:#003b46 bg:#ffcc66)"
[git_branch]
symbol = ""
format = "[ $symbol $branch ](bold fg:#003b46 bg:#85b57a)"
[git_status]
format = "[$all_status$ahead_behind ](bold fg:#003b46 bg:#85b57a)"
[package]
disabled = true
[time]
disabled = false
time_format = "%r"
style = "bg:#003b46 fg:white"
format = "[ $time ](bold fg:#003b46 bg:#b26cff)"
[cmd_duration]
format = "[ $duration ](bold fg:#003b46 bg:#4da6a6)"
[fill]
symbol = " "
[character]
error_symbol = "[✗](bold red)"

View file

@ -0,0 +1,21 @@
# A minimal, blazing fast, and extremely customizable prompt for any shell
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.profiles.starship;
in {
options.profiles.starship = {
enable = mkEnableOption "to enable the starship prompt.";
};
config = mkIf (cfg.enable) {
programs.starship = {
enable = true;
presets = ["nerd-font-symbols"];
settings = pkgs.lib.importTOML ./craige.toml;
};
};
}

View file

@ -0,0 +1,137 @@
# code ~/.config/starship.toml
format = """
[ ](bg:#303030 fg:#c7c7c7)\
$username\
[](bg:#303030 fg:#707070)\
$directory\
$git_branch\
$git_status\
[](#303030)\
\n$character
"""
# Disable the blank line at the start of the prompt
add_newline = false
# You can also replace your username with a neat symbol like  or disable this
# and use the os module below
[username]
show_always = true
style_user = "fg:#b69676 bg:#303030"
style_root = "fg:white bg:#303030"
format = '[$user]($style)'
disabled = false
[status]
style = 'bg:#303030'
symbol = '[✘ ](fg:red bg:#303030)'
success_symbol = '[✔ ](fg:green bg:#303030)'
format = '[[$signal_name ](fg:red bg:#303030)$symbol]($style)'
map_symbol = false
disabled = false
[character]
success_symbol = '[](bold green)'
error_symbol = '[✘](fg:red)'
[cmd_duration]
min_time = 1
style = 'bg:#303030 fg:#909090'
format = '[ took [$duration](bold fg:#909090 bg:#303030)  ]($style)'
[hostname]
ssh_only = false
style = 'fg:white bg:#303030'
format = '[@$hostname ]($style)'
disabled = false
# An alternative to the username module which displays a symbol that
# represents the current operating system
[os]
style = "bg:#303030"
disabled = true # Disabled by default
[directory]
style = "fg:white bg:#303030"
format = "[  $path ]($style)"
truncation_length = 9
truncation_symbol = "~/…/"
truncate_to_repo = true
home_symbol = '~'
# Here is how you can shorten some long paths by text replacement
# similar to mapped_locations in Oh My Posh:
[directory.substitutions]
#"~/" = "~./"
"~" = " ~"
[fill]
symbol = ' '
#symbol = '・'
[c]
symbol = ""
style = "bg:#303030"
format = '[ $symbol ]($style)'
[docker_context]
symbol = " "
style = "bg:#303030"
format = '[ $symbol $context ]($style) $path'
[git_branch]
style = "fg:white bg:#303030"
format = '[](fg:#707070 bg:#303030)[  ](fg:#D6D5CB bg:#303030)[](fg:#FFC0CB bg:#303030)[ $branch ](bold $style)'
truncation_length = 15
[git_status]
style = "fg:#0a96d6 bg:#303030"
conflicted = "~"
up_to_date = " "
untracked = "?"
ahead = "⇡${count}"
diverged = "⇕⇡${ahead_count}⇣${behind_count}"
behind = "⇣${count}"
stashed = "*"
modified = " "
staged = '[++\($count\)](fg:#56b60a bg:#303030)'
renamed = " "
deleted = " "
format = '[$all_status$ahead_behind ]($style)'
[golang]
symbol = "go"
style = "fg:#FFFFFF bg:#303030"
format = '[ $symbol ](bold $style)'
[java]
symbol = ""
style = "fg:#0a96d6 bg:#303030"
format = '[ $symbol ]($style)'
[nodejs]
symbol = ""
style = "fg:#0a96d6 bg:#303030"
format = '[ $symbol ]($style)'
[python]
# Display the version of python from inside a local venv.
#
# Note this will only work when the venv is inside the project and it will only
# work in the directory that contains the venv dir but maybe this is ok?
symbol = ' '
style = "fg:#0a96d6 bg:#303030"
format = '[ $symbol ]($style)'
[rust]
symbol = ""
style = "fg:#0a96d6 bg:#303030"
format = '[ $symbol ]($style)'
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "bg:#303030 fg:#567676"
format = '[$time ]($style)'

View file

@ -0,0 +1,42 @@
# Use the color palette
palette = "dracula"
[aws]
style = "bold orange"
[character]
error_symbol = "[λ](bold red)"
success_symbol = "[λ](bold green)"
[cmd_duration]
style = "bold yellow"
[directory]
style = "bold green"
[git_branch]
style = "bold pink"
[git_status]
style = "bold red"
[hostname]
style = "bold purple"
[username]
format = "[$user]($style) on "
style_user = "bold cyan"
# Define Dracula color palette
[palettes.dracula]
background = "#282a36"
current_line = "#44475a"
foreground = "#f8f8f2"
comment = "#6272a4"
cyan = "#8be9fd"
green = "#50fa7b"
orange = "#ffb86c"
pink = "#ff79c6"
purple = "#bd93f9"
red = "#ff5555"
yellow = "#f1fa8c"

View file

@ -0,0 +1,212 @@
format = """
$os\
[\uE0B0](fg:bar_one bg:bar_two)\
$custom$directory\
[\uE0B0](fg:bar_two bg:bar_three)\
$git_branch\
$git_status\
[\uE0B0](fg:bar_three bg:bar_four)\
$c\
$dart\
$elixir\
$elm\
$golang\
$haskell\
$java\
$julia\
$lua\
$nodejs\
$nim\
$php\
$python\
$rlang\
$ruby\
$rust\
$scala\
[\uE0B0](fg:bar_four)\
"""
right_format = """
[\uE0B2](fg:bar_three)\
$time\
"""
palette = 'theme'
# Defines the colour palette for the theme
[palettes.theme]
bar_one = '#C0CAF5'
bar_two = '#6992D7'
bar_three = '#394260'
bar_four = '#212736'
bar_five = '#1D2230'
text_one = '#090C0C'
text_two = '#EEEEEE'
text_three = '#A3AED2'
[os]
style = 'bg:bar_one fg:text_one'
format = '[ $symbol ]($style)'
disabled = false
[os.symbols]
Alpine = ''
Amazon = ''
Android = ''
Arch = ''
CentOS = ''
Debian = ''
DragonFly = ''
Emscripten = ''
EndeavourOS = ''
Fedora = ''
FreeBSD = ''
Garuda = '󰛓'
Gentoo = ''
HardenedBSD = '󰞌'
Illumos = '󰈸'
Linux = ''
Macos = ''
Manjaro = ''
Mariner = ''
MidnightBSD = ''
Mint = ''
NetBSD = ''
NixOS = ''
OpenBSD = '󰈺'
SUSE = ''
OracleLinux = '󰌷'
Pop = ''
Raspbian = ''
Redhat = ''
RedHatEnterprise = ''
Redox = '󰀘'
Solus = '󰠳'
openSUSE = ''
Ubuntu = ''
Unknown = ''
Windows = '󰍲'
[directory]
truncation_length = 0
truncation_symbol = '.../'
truncate_to_repo = false
fish_style_pwd_dir_length = 1
style = 'bold fg:text_two bg:bar_two'
format = '[ $path ]($style)'
[custom.home]
when = ' test "$HOME" = "$PWD" '
style = 'bold fg:text_two bg:bar_two'
symbol = ' '
[custom.folder]
when = ' test "$HOME" != "$PWD" '
style = 'bold fg:text_two bg:bar_two'
symbol = ' '
[directory.substitutions]
'Documents' = ' '
'Downloads' = ' '
'Music' = ' '
'Pictures' = ' '
[git_branch]
symbol = ' '
style = 'fg:text_three bg:bar_three'
format = '[ $symbol $branch ]($style)'
[git_status]
style = 'fg:text_three bg:bar_three'
format = '[$all_status$ahead_behind ]($style)'
[c]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[dart]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[elixir]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[elm]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[golang]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[haskell]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[java]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[julia]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[lua]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[nodejs]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[nim]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[php]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[python]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) (\($virtualenv\) )]($style)'
[rlang]
symbol = 'ﳒ '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[ruby]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[rust]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[scala]
symbol = ' '
style = 'fg:text_three bg:bar_four'
format = '[ $symbol ($version) ]($style)'
[time]
disabled = false
time_format = '%R' # Hour:Minute Format
style = 'fg:text_three bg:bar_three'
format = '[  $time ]($style)'

View file

@ -0,0 +1,41 @@
format = """
$directory\
[](fg:#769ff0 bg:#394260)\
$git_branch\
$git_status\
[](fg:#394260)\
"""
right_format = """
[](fg:#292E42)\
$character\
[](fg:#1d2230 bg:#292E42)\
$time
"""
add_newline = false
[character]
format = "$symbol"
success_symbol = "[✔ ](fg:#c3e88d bg:#292E42)"
error_symbol = "[✘ ](fg:#c53b53 bg:#292E42)"
[directory]
truncation_length = 6
style = "fg:#1a1b26 bg:#769ff0"
format = "[ $path ]($style)"
[git_branch]
symbol = ""
style = "bg:#394260"
format = '[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)'
[git_status]
style = "bg:#394260"
format = '[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)'
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "bg:#1d2230"
format = '[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)'

View file

@ -0,0 +1,35 @@
# ~/.config/starship.toml
# Inserts a blank line between shell prompts
add_newline = true
# Change the default prompt format
format = """\
[](238)$env_var\
$all[](238)$character"""
# Change the default prompt characters
[character]
success_symbol = "[](238)"
error_symbol = "[](238)"
# Shows the username
[username]
style_user = "white bold"
style_root = "black bold"
format = "者 [$user]($style) "
disabled = false # disable in powershell
show_always = true
[hostname]
ssh_only = false
format = "on [$hostname](bold yellow) "
disabled = false
[directory]
truncation_length = 3
truncation_symbol = "…/"
home_symbol = " ~"
read_only_style = "197"
read_only = "  "
format = "at [$path]($style)[$read_only]($read_only_style) "

View file

@ -0,0 +1,23 @@
# VPN configuration for MIO.
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.profiles.toxvpn;
in {
options.profiles.toxvpn = {
enable = mkEnableOption "to enable toxvpn.";
};
config = mkIf (cfg.enable) {
services.toxvpn = {
enable = true;
auto_add_peers = [
"4b921c107cd25b9bc62dfa4a040a9409f51d3aa001d4f12e15f01b4eba9e2f7f8ecc3b68cd13" # sanganto
"a18dfff426f5a752eb1bdc90ea307850982c1dff1444caf72b75f73483e358213b60281235a4" # eamhair
];
};
};
}

View file

@ -0,0 +1,118 @@
# Desktop role
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.roles.desktop;
in {
options.roles.desktop = {
enable = mkEnableOption "to enable the desktop role.";
};
config = mkIf (cfg.enable) {
boot.loader.systemd-boot = {
enable = true;
configurationLimit = 5;
};
environment.systemPackages = with pkgs; [
brave # Privacy-oriented browser
chromium
cosmic-tweaks
element-desktop # A feature-rich client for Matrix.org
evince # document viewer
firefox # A web browser built from Firefox source tree
gnome.gnome-tweaks # A tool to customize advanced GNOME 3 options
krita # A free and open source painting application
libreoffice-fresh # Comprehensive, professional-quality productivity suite
librewolf # Firefox fork, focused on privacy, security and freedom
mplayer # A movie player that supports many video formats
nextcloud-client # Nextcloud desktop client
pavucontrol # PulseAudio Volume Control
pwgen # Password generator
rsync
shotwell # Photo organizer
signal-desktop # Private, simple, and secure messenger
usbutils # Tools for working with USB devices, such as lsusb
xorg.libxcb # X C binding
];
fonts.packages = with pkgs; [
nerdfonts # Iconic font aggregator, collection, & patcher
];
networking = {
networkmanager.enable = true; # Enables network support via NetworkManager.
firewall.enable = true;
};
nix.settings = {
substituters = ["https://cosmic.cachix.org/"];
trusted-public-keys = ["cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="];
};
services = {
acpid.enable = true; # A daemon for delivering ACPI events to userspace programs
blueman.enable = true; # GTK-based Bluetooth Manager
devmon.enable = true; # Enable external device automounting.`
displayManager = {
defaultSession = "cosmic"; # Set GNOME as the default session
};
libinput = {
enable = true; # Enable touchpad support.
touchpad = {
tapping = true;
tappingButtonMap = "lrm"; # Set the touchpad button mappeing
};
};
pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse.enable = true;
};
udev.packages = [
pkgs.android-udev-rules # Android udev rules list
];
udisks2.enable = true; # Enable udisks2
};
sound.enable = true; # Enable sound.
security.rtkit.enable = true; # realtime scheduling for sound
# Configure common hardware settings
hardware = {
pulseaudio = {
enable = false;
};
bluetooth = {
enable = true; # Enable bluetooth
settings = {
General = {
Enable = "Source,Sink,Media,Socket";
NoPlugin = "sap";
};
Policy = {AutoEnable = "true";};
};
};
opengl.enable = true;
};
# Configure libreWolf and Chromium
nixpkgs.config = {allowUnfree = true;};
profiles.cosmicDesktop.enable = true;
programs = {
chromium = {
enable = true;
homepageLocation = "https://start.duckduckgo.com/";
};
};
# Groups to add
users.groups = {
audio.members = ["craige" "fiona" "hamish" "logan" "xander"];
libvirtd.members = ["craige" "fiona" "hamish" "logan" "xander"];
networkmanager.members = ["craige" "fiona" "hamish" "logan" "xander"];
};
};
}

View file

@ -0,0 +1,39 @@
# Craige's addiotnal desktop requirements
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.roles.desktopCraige;
in {
options.roles.desktopCraige = {
enable = mkEnableOption "to enable Craige's desktop role.";
};
config = mkIf (cfg.enable) {
environment.systemPackages = with pkgs; [
ffmpeg-full # record, convert and stream audio and video
gimp # The GNU Image Manipulation Program
kdePackages.kasts # Kirigami-based podcast player
mpd # A flexible, powerful daemon for playing music
ncmpcpp # A featureful ncurses based MPD client inspired by ncmpc
nvme-cli # NVM-Express user space tooling for Linux
pandoc # Conversion between documentation formats
pavucontrol # PulseAudio Volume Control
siji # An iconic bitmap font based on Stlarch with additional glyphs
shared-mime-info # A database of common MIME types
shotwell # Photo organizer
sshfs # allows remote filesystems to be mounted over SSH
taskwarrior # Highly flexible command-line tool to manage TODO lists
termonad # Terminal emulator configurable in Haskell
texliveFull # TeX Live environment
tmate # Instant Terminal Sharing
tor-browser-bundle-bin # Tor Browser Bundle built by torproject.org
tuba # Fediverse client
unzip # An extraction utility for archives compressed in .zip format
vcsh # Version Control System for $HOME
yt-dlp # Command-line tool to download videos
];
};
}

View file

@ -2,6 +2,7 @@
self, self,
cardano-node, cardano-node,
colmena, colmena,
cosmicDesktop,
daedalus, daedalus,
nix, nix,
nixpkgs, nixpkgs,
@ -35,8 +36,20 @@ in {
overlays = []; overlays = [];
}; };
}; };
defaults = { defaults = {pkgs, ...}: {
imports = [
./modules
cosmicDesktop.nixosModules.default
];
# make flake inputs accessible in NixOS
_module.args.inputs = inputs; _module.args.inputs = inputs;
nixpkgs.overlays = [
(super: self: {
inherit (nixpkgsUnstable.legacyPackages."${pkgs.system}") toxvpn;
})
];
profiles.starship.enable = true;
profiles.toxvpn.enable = false;
}; };
# Comment out deployment line when building the SD Image. # Comment out deployment line when building the SD Image.
airgead = { airgead = {
@ -46,7 +59,7 @@ in {
ragenix.nixosModules.default ragenix.nixosModules.default
]; ];
deployment = { deployment = {
tags = ["active"]; tags = ["active" "vps"];
targetHost = "172.105.187.96"; targetHost = "172.105.187.96";
}; };
}; };
@ -66,23 +79,13 @@ in {
ragenix.nixosModules.default ragenix.nixosModules.default
]; ];
}; };
ceitidh = {
imports = [
hosts/ceitidh
ragenix.nixosModules.default
];
deployment = {
tags = ["active"];
targetHost = "10.42.0.203";
};
};
cuallaidh = { cuallaidh = {
imports = [ imports = [
hosts/cuallaidh hosts/cuallaidh
ragenix.nixosModules.default ragenix.nixosModules.default
]; ];
deployment = { deployment = {
tags = ["active"]; tags = ["active" "vps"];
targetHost = "172.105.171.16"; targetHost = "172.105.171.16";
}; };
}; };
@ -108,7 +111,7 @@ in {
ragenix.nixosModules.default ragenix.nixosModules.default
]; ];
deployment = { deployment = {
tags = ["active"]; tags = ["active" "rPi"];
targetHost = "10.42.0.204"; targetHost = "10.42.0.204";
}; };
}; };
@ -118,9 +121,10 @@ in {
ragenix.nixosModules.default ragenix.nixosModules.default
]; ];
deployment = { deployment = {
tags = ["active"]; tags = ["active" "rPi"];
targetHost = "10.42.0.205"; targetHost = "10.42.0.205";
}; };
services.toxvpn.localip = "10.37.0.205";
}; };
iolear-beag = { iolear-beag = {
imports = [ imports = [
@ -143,12 +147,19 @@ in {
hosts/sanganto hosts/sanganto
ragenix.nixosModules.default ragenix.nixosModules.default
]; ];
deployment.targetHost = "10.42.0.11";
roles.desktop.enable = true;
roles.desktopCraige.enable = true;
services.toxvpn.localip = "10.37.0.11";
}; };
sercanto = { sercanto = {
imports = [ imports = [
hosts/sercanto hosts/sercanto
ragenix.nixosModules.default ragenix.nixosModules.default
]; ];
deployment.targetHost = "10.42.0.180";
roles.desktop.enable = true;
roles.desktopCraige.enable = true;
}; };
sithlainnir = { sithlainnir = {
imports = [ imports = [

View file

@ -6,9 +6,6 @@
export TERM="xterm-256color" export TERM="xterm-256color"
test -r ~/.dir_colors && eval $(dircolors ~/.dir_colors) test -r ~/.dir_colors && eval $(dircolors ~/.dir_colors)
''; '';
promptInit = ''
eval "$(starship init bash)"
'';
vteIntegration = true; vteIntegration = true;
}; };
} }

View file

@ -1,47 +0,0 @@
# Craige's NixOS desktop requirements
{
config,
pkgs,
...
}: {
# Craige's Desktop Packages
imports = [
../profiles/ebooks.nix
../profiles/minecraftClient.nix
../profiles/spotify.nix # Spotify settings
];
environment.systemPackages = with pkgs; [
byobu # text-based window manager and terminal multiplexer.
caprine-bin # an elegant Facebook Messenger desktop app
element-desktop # A feature-rich client for Matrix.org
enlightenment.terminology # Powerful terminal emulator based on EFL
firefox # A web browser built from Firefox source tree
ffmpeg-full # record, convert and stream audio and video
gimp # The GNU Image Manipulation Program
gopass # password file manager
libreoffice # Comprehensive, professional-quality productivity suite
mpd # A flexible, powerful daemon for playing music
ncmpcpp # A featureful ncurses based MPD client inspired by ncmpc
nextcloud-client # Nextcloud themed desktop client
nvme-cli # NVM-Express user space tooling for Linux
pandoc # Conversion between documentation formats
pavucontrol # PulseAudio Volume Control
pwgen # Password generator
siji # An iconic bitmap font based on Stlarch with additional glyphs
shared-mime-info # A database of common MIME types
shotwell # Photo organizer
signal-desktop # Private, simple, and secure messenger
sshfs # allows remote filesystems to be mounted over SSH
sweethome3d.application # design and visualise homes
taskwarrior # Highly flexible command-line tool to manage TODO lists
termonad # Terminal emulator configurable in Haskell
texliveFull # TeX Live environment
tmate # Instant Terminal Sharing
tor-browser-bundle-bin # Tor Browser Bundle built by torproject.org
tuba # Fediverse client
unzip # An extraction utility for archives compressed in .zip format
vcsh # Version Control System for $HOME
yt-dlp # Command-line tool to download videos
];
}

View file

@ -10,7 +10,6 @@
./chrony.nix ./chrony.nix
../profiles/neovim.nix ../profiles/neovim.nix
../profiles/logrotate.nix ../profiles/logrotate.nix
../profiles/starship.nix
./tmux.nix ./tmux.nix
./zsh.nix ./zsh.nix
]; ];
@ -27,6 +26,7 @@
console = { console = {
keyMap = "us"; # Set the default console key map keyMap = "us"; # Set the default console key map
font = "ter-powerline-v32n"; # Set the default console font font = "ter-powerline-v32n"; # Set the default console font
packages = with pkgs; [powerline-fonts];
}; };
time.timeZone = "Australia/Brisbane"; # Set your preferred timezone: time.timeZone = "Australia/Brisbane"; # Set your preferred timezone:

View file

@ -13,7 +13,9 @@ in {
nix = { nix = {
package = nix; package = nix;
settings = { settings = {
netrc-file = "/home/craige/.netrc";
substituters = [ substituters = [
"https://runner.blockfrost.io/bin-cache"
"https://cache.nixos.org" "https://cache.nixos.org"
"https://cache.iog.io" "https://cache.iog.io"
]; ];
@ -21,12 +23,10 @@ in {
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
"iohk.cachix.org-1:DpRUyj7h7V830dp/i6Nti+NEO2/nhblbov/8MW7Rqoo=" "iohk.cachix.org-1:DpRUyj7h7V830dp/i6Nti+NEO2/nhblbov/8MW7Rqoo="
"runner1:W6f2fUzWauzS9ruoN0WHFGtPJnqngUbqgD5oqCMsoJg=" # runner.blockfrost.io
]; ];
experimental-features = ["nix-command" "flakes"];
}; };
extraOptions = ''
#repeat = 1 # Ensure reproducibility of builds
experimental-features = nix-command flakes
'';
}; };
# Set the system-wide environment # Set the system-wide environment

View file

@ -4,8 +4,8 @@
pkgs, pkgs,
... ...
}: let }: let
sources = import ../nix/sources.nix; #sources = import ../nix/sources.nix;
mcwhirter-io = import sources.mcwhirter-io {}; #mcwhirter-io = import sources.mcwhirter-io {};
webdomain = "mcwhirter.io"; webdomain = "mcwhirter.io";
in { in {
environment.sessionVariables = { environment.sessionVariables = {
@ -23,7 +23,7 @@ in {
# website hostname # website hostname
enableACME = true; # Use ACME certs enableACME = true; # Use ACME certs
forceSSL = true; # Force SSL forceSSL = true; # Force SSL
root = "${mcwhirter-io}"; # Wesbite root #root = "${mcwhirter-io}"; # Wesbite root
}; };
"www.${webdomain}" = { "www.${webdomain}" = {
# Respect our elders :-) # Respect our elders :-)

View file

@ -1,5 +0,0 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
starship # A minimal, blazing fast, and extremely customizable prompt for any shell
];
}

View file

@ -27,7 +27,7 @@
uid = 1004; uid = 1004;
group = "fiona"; group = "fiona";
extraGroups = ["networkmanager"]; extraGroups = ["networkmanager"];
hashedPassword = config.age.secrets.fiona.path; hashedPasswordFile = config.age.secrets.fiona.path;
}; };
hamish = { hamish = {
isNormalUser = true; isNormalUser = true;
@ -35,7 +35,7 @@
uid = 1001; uid = 1001;
group = "hamish"; group = "hamish";
extraGroups = ["networkmanager"]; extraGroups = ["networkmanager"];
hashedPassword = config.age.secrets.hamish.path; hashedPasswordFile = config.age.secrets.hamish.path;
}; };
logan = { logan = {
isNormalUser = true; isNormalUser = true;
@ -43,7 +43,7 @@
uid = 1002; uid = 1002;
group = "logan"; group = "logan";
extraGroups = ["networkmanager"]; extraGroups = ["networkmanager"];
hashedPassword = config.age.secrets.logan.path; hashedPasswordFile = config.age.secrets.logan.path;
}; };
xander = { xander = {
isNormalUser = true; isNormalUser = true;
@ -51,7 +51,7 @@
uid = 1003; uid = 1003;
group = "xander"; group = "xander";
extraGroups = ["networkmanager"]; extraGroups = ["networkmanager"];
hashedPassword = config.age.secrets.logan.path; hashedPasswordFile = config.age.secrets.logan.path;
}; };
}; };
} }

View file

@ -26,11 +26,11 @@
desktopManager = { desktopManager = {
xterm.enable = false; # Disable NixOS default desktop manager. xterm.enable = false; # Disable NixOS default desktop manager.
gnome.enable = false; # Enable GNOME desktop environment gnome.enable = false; # Enable GNOME desktop environment
plasma5.enable = true; # Enable Plasma desktop environment plasma5.enable = false; # Enable Plasma desktop environment
}; };
displayManager = { displayManager = {
gdm.enable = false; # Enable the GNOME display manager gdm.enable = false; # Enable the GNOME display manager
lightdm.greeters.pantheon.enable = true; lightdm.greeters.pantheon.enable = false;
}; };
windowManager = { windowManager = {
# Open configuration for the window manager. # Open configuration for the window manager.

View file

@ -25,9 +25,6 @@
enable = true; enable = true;
plugins = ["fzf" "git"]; plugins = ["fzf" "git"];
}; };
promptInit = ''
eval "$(starship init zsh)"
'';
vteIntegration = true; vteIntegration = true;
}; };

View file

@ -12,7 +12,6 @@ let
airgead = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBanX/MOfoTT8Y/2x24yusGQzfxBqlaKxVbpNiqnAmKp"; airgead = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBanX/MOfoTT8Y/2x24yusGQzfxBqlaKxVbpNiqnAmKp";
brighde = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOxma18HaXAQlD33jR5iIolSI9p2hTDAMkw6rlQXHnl7"; brighde = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOxma18HaXAQlD33jR5iIolSI9p2hTDAMkw6rlQXHnl7";
ceitidh = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEGB8EUbqoarM4GmPgE2DBF4z/L6wVNc+lF27Z83XDUz";
cuallaidh = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKfELhpKAIDCTFYrO4wXP9BrXsUlafcD5vELQwtF4LCl"; cuallaidh = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKfELhpKAIDCTFYrO4wXP9BrXsUlafcD5vELQwtF4LCl";
dionach = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPcLVq/vaqNz+SzTKHd2mlw+jEYG+JYdYP/1mwK6lF0J"; dionach = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPcLVq/vaqNz+SzTKHd2mlw+jEYG+JYdYP/1mwK6lF0J";
doilidh = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIVqs/F41PYoOPtThVRhLFjl+g/sH4aKRxki0CkZxj/7"; doilidh = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIVqs/F41PYoOPtThVRhLFjl+g/sH4aKRxki0CkZxj/7";
@ -24,7 +23,6 @@ let
systems = [ systems = [
airgead airgead
brighde brighde
ceitidh
cuallaidh cuallaidh
dionach dionach
doilidh doilidh