mirror of
https://github.com/callumio/nixfiles.git
synced 2025-12-17 03:29:20 +00:00
Merge branch 'main' into dependabot/github_actions/main/DeterminateSystems/magic-nix-cache-action-7
This commit is contained in:
commit
906f01a73c
14 changed files with 212 additions and 48 deletions
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
|
@ -14,7 +14,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
tool-cache: true
|
tool-cache: true
|
||||||
- uses: DeterminateSystems/magic-nix-cache-action@v7
|
- uses: DeterminateSystems/magic-nix-cache-action@v7
|
||||||
- uses: cachix/cachix-action@v14
|
- uses: cachix/cachix-action@v15
|
||||||
with:
|
with:
|
||||||
name: callumio-public
|
name: callumio-public
|
||||||
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
||||||
|
|
|
||||||
22
.github/workflows/update-flake.yml
vendored
Normal file
22
.github/workflows/update-flake.yml
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
name: Update flake inputs
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
# Sunday and Wednesday
|
||||||
|
- cron: "51 3 * * 0,3"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install Nix
|
||||||
|
uses: cachix/install-nix-action@v27
|
||||||
|
- name: Update flake.lock
|
||||||
|
uses: DeterminateSystems/update-flake-lock@v23
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
|
||||||
|
pr-labels: |
|
||||||
|
dependencies
|
||||||
|
automated
|
||||||
|
|
@ -73,7 +73,7 @@
|
||||||
with mods.nixosModules;
|
with mods.nixosModules;
|
||||||
utils.lib.mkFlake {
|
utils.lib.mkFlake {
|
||||||
inherit self inputs;
|
inherit self inputs;
|
||||||
inherit (mods) nixosModules;
|
inherit (mods) homeManagerModules nixosModules;
|
||||||
inherit (hosts) hosts;
|
inherit (hosts) hosts;
|
||||||
supportedSystems = ["x86_64-linux" "aarch64-linux"];
|
supportedSystems = ["x86_64-linux" "aarch64-linux"];
|
||||||
channelsConfig.allowUnfree = true;
|
channelsConfig.allowUnfree = true;
|
||||||
|
|
|
||||||
|
|
@ -7,20 +7,26 @@
|
||||||
imports = [./programs ./services];
|
imports = [./programs ./services];
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
services.trayscale.enable = true;
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
username = "c";
|
username = "c";
|
||||||
homeDirectory = "/home/c";
|
homeDirectory = "/home/c";
|
||||||
};
|
};
|
||||||
|
gtk.enable = true;
|
||||||
|
gtk.iconTheme = {
|
||||||
|
package = pkgs.gnome.adwaita-icon-theme;
|
||||||
|
name = "Adwaita";
|
||||||
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
gnome.adwaita-icon-theme
|
||||||
|
networkmanagerapplet
|
||||||
libsecret
|
libsecret
|
||||||
bitwarden
|
bitwarden
|
||||||
betterbird
|
betterbird
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
(discord.override {
|
discord
|
||||||
withOpenASAR = true;
|
|
||||||
})
|
|
||||||
brightnessctl
|
brightnessctl
|
||||||
playerctl
|
playerctl
|
||||||
pwvucontrol
|
pwvucontrol
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,67 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
|
services = {
|
||||||
|
blueman-applet.enable = true;
|
||||||
|
network-manager-applet.enable = true;
|
||||||
|
udiskie = {
|
||||||
|
enable = true;
|
||||||
|
tray = "auto";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
programs.hyprlock = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
background = [
|
||||||
|
{
|
||||||
|
path = "screenshot";
|
||||||
|
blur_passes = 3;
|
||||||
|
blur_size = 8;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
label = [
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "$TIME";
|
||||||
|
text_align = "center";
|
||||||
|
color = "rgba(200, 200, 200, 1.0)";
|
||||||
|
font_size = 40;
|
||||||
|
font_family = "Noto Sans";
|
||||||
|
rotate = 0;
|
||||||
|
position = "0, 200";
|
||||||
|
halign = "center";
|
||||||
|
valign = "center";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "Hi there, $USER";
|
||||||
|
text_align = "center";
|
||||||
|
color = "rgba(200, 200, 200, 1.0)";
|
||||||
|
font_size = 25;
|
||||||
|
font_family = "Noto Sans";
|
||||||
|
rotate = 0;
|
||||||
|
position = "0, 80";
|
||||||
|
halign = "center";
|
||||||
|
valign = "center";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
input-field = [
|
||||||
|
{
|
||||||
|
size = "200, 50";
|
||||||
|
position = "0, -80";
|
||||||
|
monitor = "";
|
||||||
|
dots_center = true;
|
||||||
|
fade_on_empty = false;
|
||||||
|
font_color = "rgb(202, 211, 245)";
|
||||||
|
inner_color = "rgb(91, 96, 120)";
|
||||||
|
outer_color = "rgb(24, 25, 38)";
|
||||||
|
outline_thickness = 5;
|
||||||
|
placeholder_text = "Password...";
|
||||||
|
shadow_passes = 2;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
|
|
@ -117,18 +178,17 @@
|
||||||
"$mainMod SHIFT, j, movewindow, d"
|
"$mainMod SHIFT, j, movewindow, d"
|
||||||
''SHIFT, Print, exec, grim -g "$(slurp)" - | wl-copy''
|
''SHIFT, Print, exec, grim -g "$(slurp)" - | wl-copy''
|
||||||
", Print, exec, grim - | wl-copy"
|
", Print, exec, grim - | wl-copy"
|
||||||
|
"$mainMod, 0, exec, hyprlock"
|
||||||
]
|
]
|
||||||
++ (builtins.concatLists (builtins.genList (x: let
|
++ (builtins.concatLists (builtins.genList (x: let
|
||||||
ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
|
ws = x + 1;
|
||||||
in [
|
in [
|
||||||
"$mainMod, ${ws}, workspace, ${toString (x + 1)}"
|
"$mainMod, ${toString ws}, workspace, ${toString ws}"
|
||||||
"$mainMod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
|
"$mainMod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}"
|
||||||
"$mainMod CTRL, ${ws}, moveworkspacetomonitor, ${
|
"$mainMod CTRL, ${toString ws}, moveworkspacetomonitor, ${toString ws} current"
|
||||||
toString (x + 1)
|
"$mainMod CTRL, ${toString ws}, workspace, ${toString ws}"
|
||||||
} current"
|
|
||||||
"$mainMod CTRL, ${ws}, workspace, ${toString (x + 1)}"
|
|
||||||
])
|
])
|
||||||
10));
|
9));
|
||||||
|
|
||||||
workspace = [
|
workspace = [
|
||||||
"name:web, on-created-empty: firefox"
|
"name:web, on-created-empty: firefox"
|
||||||
|
|
@ -156,12 +216,12 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
exec = [
|
exec = [
|
||||||
"pkill wpaperd & sleep 0.5 && wpaperd"
|
#"pkill wpaperd & sleep 0.5 && wpaperd"
|
||||||
"pkill waybar & sleep 0.5 && waybar"
|
#"pkill waybar & sleep 0.5 && waybar"
|
||||||
"pkill mako & sleep 0.5 && mako"
|
#"pkill mako & sleep 0.5 && mako"
|
||||||
];
|
];
|
||||||
|
|
||||||
exec-once = ["blueman-tray" "mullvad-gui" "udiskie -t"];
|
exec-once = ["mullvad-gui"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
hyprlandSupport = true;
|
hyprlandSupport = true;
|
||||||
swaySupport = false;
|
swaySupport = false;
|
||||||
};
|
};
|
||||||
systemd.enable = false;
|
systemd.enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
mainBar = {
|
mainBar = {
|
||||||
layer = "top";
|
layer = "top";
|
||||||
|
|
@ -58,7 +58,7 @@
|
||||||
tooltip = false;
|
tooltip = false;
|
||||||
};
|
};
|
||||||
temperature = {
|
temperature = {
|
||||||
thermal-zone = 0;
|
thermal-zone = 5;
|
||||||
format = "{icon} {temperatureC}°C";
|
format = "{icon} {temperatureC}°C";
|
||||||
format-icons = [""];
|
format-icons = [""];
|
||||||
interval = 30;
|
interval = 30;
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ in {
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
vim
|
vim
|
||||||
|
gnome.adwaita-icon-theme
|
||||||
wget
|
wget
|
||||||
fzf
|
fzf
|
||||||
nil
|
nil
|
||||||
|
|
@ -45,9 +46,9 @@ in {
|
||||||
|
|
||||||
shells = with pkgs; [fish];
|
shells = with pkgs; [fish];
|
||||||
|
|
||||||
etc."greetd/environments".text = ''
|
# etc."greetd/environments".text = ''
|
||||||
hyprland
|
# hyprland
|
||||||
'';
|
# '';
|
||||||
};
|
};
|
||||||
fonts.packages = with pkgs; [nerdfonts meslo-lgs-nf];
|
fonts.packages = with pkgs; [nerdfonts meslo-lgs-nf];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
{inputs, ...}: {
|
{inputs, ...}: {
|
||||||
|
programs.hyprlock.enable = true;
|
||||||
|
security.pam.services.hyprlock = {};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
sharedModules = [
|
sharedModules = [
|
||||||
{
|
{
|
||||||
|
|
@ -6,6 +8,7 @@
|
||||||
fish.enable = false;
|
fish.enable = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
inputs.self.homeManagerModules.trayscale
|
||||||
];
|
];
|
||||||
users.c = import ../../home;
|
users.c = import ../../home;
|
||||||
extraSpecialArgs = {inherit inputs;};
|
extraSpecialArgs = {inherit inputs;};
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,29 @@
|
||||||
seahorse.enable = true;
|
seahorse.enable = true;
|
||||||
nix-ld.enable = true;
|
nix-ld.enable = true;
|
||||||
virt-manager.enable = true;
|
virt-manager.enable = true;
|
||||||
nm-applet.enable = true;
|
#nm-applet.enable = true;
|
||||||
hyprland.enable = true;
|
hyprland.enable = true;
|
||||||
|
|
||||||
|
regreet = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
background = {
|
||||||
|
path = pkgs.fetchurl {
|
||||||
|
url = "https://i.redd.it/jd1nuwsl0d121.jpg";
|
||||||
|
sha256 = "sha256-ff3ajGVsay2dtHiHmO2MYlqCvexUQjGifMs/ofzuyvI=";
|
||||||
|
};
|
||||||
|
fit = "Contain";
|
||||||
|
};
|
||||||
|
GTK = {
|
||||||
|
application_prefer_dark_theme = true;
|
||||||
|
cursor_theme_name = "Adwaita";
|
||||||
|
font_name = "Cantarell 16";
|
||||||
|
icon_theme_name = "Adwaita";
|
||||||
|
theme_name = "Adwaita";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
cageArgs = ["-s" "-m" "last"];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
mullvad-vpn = {
|
mullvad-vpn = {
|
||||||
|
|
@ -29,17 +50,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
thermald.enable = true;
|
thermald.enable = true;
|
||||||
greetd = {
|
|
||||||
enable = true;
|
greetd.enable = true;
|
||||||
settings = {
|
|
||||||
default_session.command = ''
|
|
||||||
${pkgs.greetd.tuigreet}/bin/tuigreet \
|
|
||||||
--time \
|
|
||||||
--asterisks \
|
|
||||||
--user-menu \
|
|
||||||
--cmd Hyprland
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -67,11 +67,7 @@ in {
|
||||||
reverse_proxy /lidarr/* 127.0.0.1:8686
|
reverse_proxy /lidarr/* 127.0.0.1:8686
|
||||||
reverse_proxy /bazarr/* 127.0.0.1:6767
|
reverse_proxy /bazarr/* 127.0.0.1:6767
|
||||||
reverse_proxy /prowlarr/* 127.0.0.1:9696
|
reverse_proxy /prowlarr/* 127.0.0.1:9696
|
||||||
reverse_proxy /tdarr/* http://127.0.0.1:8265 {
|
reverse_proxy /tdarr/* 127.0.0.1:8265
|
||||||
header_up Host {host}
|
|
||||||
header_up X-Real-IP {remote}
|
|
||||||
header_up X-Forwarded-For {remote}
|
|
||||||
}
|
|
||||||
route /deluge/* {
|
route /deluge/* {
|
||||||
uri strip_prefix deluge
|
uri strip_prefix deluge
|
||||||
reverse_proxy 127.0.0.1:8112 {
|
reverse_proxy 127.0.0.1:8112 {
|
||||||
|
|
@ -90,10 +86,6 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
homepage-dashboard = {
|
|
||||||
enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
jellyfin = {
|
jellyfin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.jellyfin;
|
package = pkgs.jellyfin;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,21 @@
|
||||||
{...}: {
|
{...}: {
|
||||||
boot.loader = {
|
boot = {
|
||||||
efi.canTouchEfiVariables = true;
|
loader = {
|
||||||
systemd-boot.enable = true;
|
efi.canTouchEfiVariables = true;
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
};
|
||||||
|
plymouth.enable = false;
|
||||||
|
# consoleLogLevel = 0;
|
||||||
|
# initrd.verbose = false;
|
||||||
|
# kernelParams = [
|
||||||
|
# "quiet"
|
||||||
|
# "splash"
|
||||||
|
# "boot.shell_on_fail"
|
||||||
|
# "loglevel=3"
|
||||||
|
# "rd.systemd.show_status=false"
|
||||||
|
# "rd.udev.log_level=3"
|
||||||
|
# "udev.log_priority=3"
|
||||||
|
# ];
|
||||||
};
|
};
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
{utils}: let
|
{utils}: let
|
||||||
nixosModules = utils.lib.exportModules [
|
nixosModules = utils.lib.exportModules [
|
||||||
./nix.nix
|
./nix.nix
|
||||||
|
./pinentry-fix.nix
|
||||||
./hm.nix
|
./hm.nix
|
||||||
./boot.nix
|
./boot.nix
|
||||||
./deploy.nix
|
./deploy.nix
|
||||||
|
|
@ -8,7 +9,11 @@
|
||||||
./secret.nix
|
./secret.nix
|
||||||
./tailscale.nix
|
./tailscale.nix
|
||||||
];
|
];
|
||||||
|
homeManagerModules = utils.lib.exportModules [
|
||||||
|
./trayscale.nix
|
||||||
|
];
|
||||||
sharedModules = with nixosModules; [
|
sharedModules = with nixosModules; [
|
||||||
|
pinentry-fix
|
||||||
nix
|
nix
|
||||||
hm
|
hm
|
||||||
boot
|
boot
|
||||||
|
|
@ -16,4 +21,6 @@
|
||||||
tailscale
|
tailscale
|
||||||
secret
|
secret
|
||||||
];
|
];
|
||||||
in {inherit nixosModules sharedModules;}
|
in {
|
||||||
|
inherit nixosModules homeManagerModules sharedModules;
|
||||||
|
}
|
||||||
|
|
|
||||||
8
modules/pinentry-fix.nix
Normal file
8
modules/pinentry-fix.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
services.dbus.packages = [pkgs.gcr];
|
||||||
|
}
|
||||||
40
modules/trayscale.nix
Normal file
40
modules/trayscale.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.services.trayscale;
|
||||||
|
in {
|
||||||
|
options.services.trayscale = {
|
||||||
|
enable =
|
||||||
|
mkEnableOption
|
||||||
|
"An unofficial GUI wrapper around the Tailscale CLI client.";
|
||||||
|
package = mkPackageOption pkgs "trayscale" {};
|
||||||
|
hideWindow = mkOption {
|
||||||
|
description = "Whether to hide the trayscale window on startup.";
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
assertions = [
|
||||||
|
(hm.assertions.assertPlatform "services.trayscale" pkgs platforms.linux)
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.user.services.trayscale = {
|
||||||
|
Unit = {
|
||||||
|
Description = "An unofficial GUI wrapper around the Tailscale CLI client";
|
||||||
|
Requires = ["tray.target"];
|
||||||
|
After = ["graphical-session-pre.target" "tray.target"];
|
||||||
|
PartOf = ["graphical-session.target"];
|
||||||
|
};
|
||||||
|
Install = {WantedBy = ["graphical-session.target"];};
|
||||||
|
Service.ExecStart =
|
||||||
|
toString (["${cfg.package}/bin/trayscale"]
|
||||||
|
++ optional cfg.hideWindow "--hide-window");
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue