begin migration to dendritic pattern

This commit is contained in:
greyweather committed 2026-08-27 00:50:33 +01:00
1 parent 4a081aef50
commit 7245e872f6
153 files changed
+3353 -54

No files matched your search

Whitespace-only changes.
@@ -54,5 +54,6 @@
"update.mode": "none", "update.mode": "none",
"workbench.welcomePage.walkthroughs.openOnInstall": false, "workbench.welcomePage.walkthroughs.openOnInstall": false,
"explorer.confirmDelete": false, "explorer.confirmDelete": false,
"update.showReleaseNotes": false "update.showReleaseNotes": false,
"explorer.confirmDragAndDrop": false
} }
File renamed without changes.
@@ -0,0 +1 @@
+552
View File
@@ -0,0 +1,552 @@
config_version = 13
[audio]
enable_sounds = true
[backdrop]
blur_intensity = 0.099999997764825821
tint_intensity = 0.14999999664723873
[bar.default]
background_opacity = 0.79999998211860657
center = [ "active_window" ]
end = [ "tray", "notifications", "bluetooth", "network", "volume", "battery", "control-center" ]
font_family = "JetBrainsMono Nerd Font"
font_weight = 300
margin_edge = 6
margin_ends = 200
margin_opposite_edge = 6
radius = 12
start = [ "clock", "workspaces", "media" ]
thickness = 36
widget_spacing = 16
[battery]
warning_threshold = 20
[calendar]
enabled = true
[calendar.account.personal_google]
type = "google"
[control_center]
sidebar_section = "none"
width = 750
[control_center.calendar]
show_events_card = true
[desktop_widgets]
schema_version = 2
widget_order = [
"desktop-widget-000000000000000e",
"desktop-widget-0000000000000001",
"desktop-widget-0000000000000002",
"desktop-widget-0000000000000006",
"desktop-widget-0000000000000007",
"desktop-widget-0000000000000008",
"desktop-widget-0000000000000009",
"desktop-widget-000000000000000a",
"desktop-widget-000000000000000c",
"desktop-widget-000000000000000d",
"desktop-widget-000000000000000f",
"desktop-widget-0000000000000010"
]
[desktop_widgets.grid]
cell_size = 16
major_interval = 4
visible = true
[desktop_widgets.widget.desktop-widget-0000000000000001]
box_height = 128.0
box_width = 128.0
cx = 1408.0
cy = 336.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "clock"
[desktop_widgets.widget.desktop-widget-0000000000000001.settings]
background = true
background_color = "surface"
background_opacity = 0.59999999999999998
background_padding = 10
background_radius = 8
center_text = false
circle = true
clock_style = "analog"
color = "on_surface"
font_family = ""
format = "{:%H:%M}"
shadow = true
[desktop_widgets.widget.desktop-widget-0000000000000002]
box_height = 112.0
box_width = 160.0
cx = 1200.0
cy = 712.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "sysmon"
[desktop_widgets.widget.desktop-widget-0000000000000002.settings]
background_opacity = 0.59999999999999998
background_padding = 8
background_radius = 8
display = "graph"
shadow = false
show_label = true
stat = "cpu_usage"
stat2 = "cpu_temp"
[desktop_widgets.widget.desktop-widget-0000000000000006]
box_height = 128.0
box_width = 352.0
cx = 1296.0
cy = 176.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "media_player"
[desktop_widgets.widget.desktop-widget-0000000000000006.settings]
background_opacity = 0.59999999999999998
background_padding = 8
background_radius = 8
hide_when_no_media = false
layout = "horizontal"
shadow = false
[desktop_widgets.widget.desktop-widget-0000000000000007]
box_height = 32.0
box_width = 352.0
cx = 1298.5
cy = 96.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "audio_visualizer"
[desktop_widgets.widget.desktop-widget-0000000000000007.settings]
background = false
background_opacity = 0.0
bands = 64
centered = false
mirrored = false
show_when_idle = false
[desktop_widgets.widget.desktop-widget-0000000000000008]
box_height = 128.0
box_width = 192.0
cx = 1216.0
cy = 336.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "weather"
[desktop_widgets.widget.desktop-widget-0000000000000008.settings]
background_opacity = 0.59999999999999998
background_radius = 8
show_forecast = true
[desktop_widgets.widget.desktop-widget-0000000000000009]
box_height = 32.0
box_width = 128.0
cx = 1216.0
cy = 520.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = -0.0
type = "button"
[desktop_widgets.widget.desktop-widget-0000000000000009.settings]
background = true
command = "ssh sakamoto .local/bin/wake-takamaki"
glyph = "coffee"
label = "Wake"
variant = "default"
[desktop_widgets.widget.desktop-widget-000000000000000a]
box_height = 32.0
box_width = 128.0
cx = 1376.0
cy = 576.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "button"
[desktop_widgets.widget.desktop-widget-000000000000000a.settings]
background = true
command = "remmina -c /home/grey/.local/share/remmina/group_rdp_takamaki_greyweather-dev.remmina"
glyph = "brand-windows-filled"
label = "Windows"
variant = "default"
[desktop_widgets.widget.desktop-widget-000000000000000c]
box_height = 32.0
box_width = 128.0
cx = 1376.0
cy = 520.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "button"
[desktop_widgets.widget.desktop-widget-000000000000000c.settings]
background = true
command = "ssh takamaki universal-shutdown"
glyph = "shutdown"
label = "Shutdown"
variant = "default"
[desktop_widgets.widget.desktop-widget-000000000000000d]
box_height = 32.0
box_width = 128.0
cx = 1216.0
cy = 576.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "button"
[desktop_widgets.widget.desktop-widget-000000000000000d.settings]
background = true
command = "moonlight stream takamaki Desktop"
glyph = "brand-redhat"
label = "Linux"
variant = "default"
[desktop_widgets.widget.desktop-widget-000000000000000e]
box_height = 192.0
box_width = 352.0
cx = 1296.0
cy = 528.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "label"
[desktop_widgets.widget.desktop-widget-000000000000000e.settings]
background_opacity = 0.59999999999999998
background_radius = 8
opacity = 1.0
shadow = false
title = ""
[desktop_widgets.widget.desktop-widget-000000000000000f]
box_height = 0.0
box_width = 0.0
cx = 1298.5
cy = 467.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "label"
[desktop_widgets.widget.desktop-widget-000000000000000f.settings]
background = false
opacity = 1.0
shadow = false
title = "Remote Desktop"
[desktop_widgets.widget.desktop-widget-0000000000000010]
box_height = 112.0
box_width = 160.0
cx = 1392.0
cy = 712.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "sysmon"
[desktop_widgets.widget.desktop-widget-0000000000000010.settings]
background_opacity = 0.59999999999999998
background_padding = 8
background_radius = 8
stat = "net_rx"
stat2 = "net_tx"
[dock]
background_opacity = 0.79999998211860657
concave_edge_corners = false
enabled = true
icon_size = 40
inactive_scale = 0.90000001341104507
magnification_scale = 1.1000000014901161
main_axis_padding = 12
margin_edge = 16
pinned = [ "signal", "equibop", "thunderbird", "spotify", "code", "github-desktop", "proton.vpn.app.gtk" ]
radius = 16
reserve_space = false
show_dots = true
show_running = false
smart_auto_hide = true
[idle]
behavior_order = [ "lock", "screen-off", "Hibernate" ]
pre_action_fade_seconds = 30
[idle.behavior.Hibernate]
action = "command"
command = "systemctl hibernate"
enabled = true
timeout = 600.0
[idle.behavior.lock]
action = "lock"
enabled = true
timeout = 300.0
[idle.behavior.screen-off]
action = "screen_off"
enabled = true
timeout = 450.0
[location]
auto_locate = true
[lockscreen_widgets]
enabled = true
schema_version = 2
widget_order = [
"lockscreen-login-box@eDP-1",
"lockscreen-widget-0000000000000001",
"lockscreen-widget-0000000000000002",
"lockscreen-widget-0000000000000004"
]
[lockscreen_widgets.grid]
cell_size = 16
major_interval = 4
visible = true
[lockscreen_widgets.widget."lockscreen-login-box@eDP-1"]
box_height = 196.0
box_width = 768.0
cx = 512.0
cy = 594.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "login_box"
[lockscreen_widgets.widget."lockscreen-login-box@eDP-1".settings]
background_color = "surface_variant"
background_opacity = 0.88
background_radius = 12.0
center_password_text = false
input_opacity = 1.0
input_radius = 6.0
layout = "regular"
show_caps_lock = true
show_keyboard_layout = true
show_login_button = true
show_media = true
show_session_buttons = true
show_unlock_hint = true
show_weather = true
[lockscreen_widgets.widget.lockscreen-widget-0000000000000001]
box_height = 80.0
box_width = 160.0
cx = 208.0
cy = 368.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "weather"
[lockscreen_widgets.widget.lockscreen-widget-0000000000000002]
box_height = 128.0
box_width = 320.0
cx = 288.0
cy = 240.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "clock"
[lockscreen_widgets.widget.lockscreen-widget-0000000000000002.settings]
background_padding = 16
shadow = false
[lockscreen_widgets.widget.lockscreen-widget-0000000000000004]
box_height = 288.0
box_width = 432.0
cx = 1192.0
cy = 432.0
output = "eDP-1"
placement_height = 864.0
placement_width = 1536.0
rotation = 0.0
type = "sticker"
[lockscreen_widgets.widget.lockscreen-widget-0000000000000004.settings]
background = false
image_path = "/home/grey/Pictures/wife.jpg"
opacity = 0.95000000000000007
[nightlight]
enabled = true
temperature_day = 6000
temperature_night = 3800
[plugins]
enabled = []
[shell]
corner_radius_scale = 1.2500000186264515
niri_overview_type_to_launch_enabled = true
polkit_agent = true
[shell.animation]
speed = 1.5000000223517418
[shell.launcher]
categories = false
[shell.panel]
clipboard_placement = "attached"
launcher_placement = "attached"
session_position = "center"
shadow = false
transparency_mode = "glass"
[shell.screen_corners]
enabled = true
size = 16
[[shell.session.actions]]
action = "lock"
countdown_seconds = 0.0
enabled = true
shortcut = "1"
variant = "default"
[[shell.session.actions]]
action = "logout"
countdown_seconds = 0.0
enabled = true
shortcut = "2"
variant = "default"
[[shell.session.actions]]
action = "command"
command = "noctalia msg session lock && systemctl hibernate"
countdown_seconds = 0.0
enabled = true
glyph = "hibernate"
label = "Hibernate"
shortcut = "3"
variant = "default"
[[shell.session.actions]]
action = "reboot"
countdown_seconds = 0.0
enabled = true
shortcut = "4"
variant = "default"
[[shell.session.actions]]
action = "shutdown"
countdown_seconds = 0.0
enabled = true
shortcut = "5"
variant = "destructive"
[shell.shadow]
alpha = 0.44999998994171619
[theme]
builtin = "Rosé Pine"
community_palette = "Ayu Blue"
source = "wallpaper"
wallpaper_scheme = "muted"
[theme.templates]
builtin_ids = [ "niri" ]
enable_community_templates = false
[wallpaper]
directory = "/home/grey/nixos/modules/hosts/kitagawa"
[wallpaper.default]
path = "/home/grey/nixos/modules/hosts/kitagawa/wallpaper.jpg"
[wallpaper.last]
path = "/home/grey/nixos/modules/hosts/kitagawa/wallpaper.jpg"
[wallpaper.monitors.eDP-1]
path = "/home/grey/nixos/modules/hosts/kitagawa/wallpaper.jpg"
[[wallpaper.favorite]]
path = "/home/grey/nixos/modules/hosts/kitagawa/wallpaper.jpg"
theme_mode = "auto"
[widget.active_window]
enabled = true
icon_size = 15
max_length = 400
scale = 0.94999999999999996
title_scroll = "on_hover"
[widget.battery]
enabled = true
[widget.bluetooth]
enabled = false
[widget.brightness]
enabled = true
[widget.control-center]
custom_image = "/nix/store/5mywyh8lp60x9li5688q1m39rqvy0ckp-noctalia-5.0.0/share/noctalia/assets/images/distros/nixos.svg"
enabled = true
[widget.custom_button_2]
type = "custom_button"
[widget.media]
hide_when_no_media = true
max_length = 200
title_scroll = "on_hover"
[widget.network]
show_label = false
[widget.notifications]
hide_when_no_unread = true
[widget.session]
enabled = false
[widget.tray]
hidden = [ "Udiskie" ]
[widget.volume]
mute_color = "on_surface"
show_label = false
[widget.workspaces]
scale = 0.90000000000000013
Generated
+52 -2
View File
@@ -141,6 +141,24 @@
} }
}, },
"flake-parts_2": { "flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1787559586,
"narHash": "sha256-onL0VLf9vPllmT0H/OlURIU5r5t5WIEl7t4tVNKT0Nw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "9d0d87172c374f89da73c1cfe6d81ae62feac1f1",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"stylix", "stylix",
@@ -216,6 +234,21 @@
"type": "github" "type": "github"
} }
}, },
"import-tree": {
"locked": {
"lastModified": 1784254960,
"narHash": "sha256-iI88R3wHz8wTKQb5orvpc51L/Xr64AJyxid/0MKa/b8=",
"owner": "vic",
"repo": "import-tree",
"rev": "4ebb10ae17d5f1ad366e7aef5b92cb8eecf24f69",
"type": "github"
},
"original": {
"owner": "vic",
"repo": "import-tree",
"type": "github"
}
},
"nh": { "nh": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -239,7 +272,7 @@
"nix-cachyos-kernel": { "nix-cachyos-kernel": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"flake-parts": "flake-parts", "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
@@ -304,6 +337,21 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib_2": {
"locked": {
"lastModified": 1785031560,
"narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-mesa-overlay": { "nixpkgs-mesa-overlay": {
"locked": { "locked": {
"lastModified": 1770837850, "lastModified": 1770837850,
@@ -407,7 +455,9 @@
"root": { "root": {
"inputs": { "inputs": {
"firefox-addons": "firefox-addons", "firefox-addons": "firefox-addons",
"flake-parts": "flake-parts",
"home-manager": "home-manager", "home-manager": "home-manager",
"import-tree": "import-tree",
"nh": "nh", "nh": "nh",
"nix-cachyos-kernel": "nix-cachyos-kernel", "nix-cachyos-kernel": "nix-cachyos-kernel",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
@@ -448,7 +498,7 @@
"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-parts": "flake-parts_2", "flake-parts": "flake-parts_3",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
+11 -49
View File
@@ -1,14 +1,14 @@
{ {
description = "grey's custom NixOS config"; description = "grey's NixOS config";
inputs = { inputs = {
nixpkgs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
url = "github:nixos/nixpkgs/nixos-unstable";
};
nixpkgs-mesa-overlay = { flake-parts.url = "github:hercules-ci/flake-parts";
url = "github:nixos/nixpkgs/e4f9df8a27c2b4871c665368e65bdb6852dd93e6";
}; import-tree.url = "github:vic/import-tree";
nixpkgs-mesa-overlay.url = "github:nixos/nixpkgs/e4f9df8a27c2b4871c665368e65bdb6852dd93e6";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
@@ -57,48 +57,10 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
};*/ };*/
nix-cachyos-kernel = { nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
url = "github:xddxdd/nix-cachyos-kernel/release";
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
}; };
nix-flatpak = { outputs = inputs@{ self, flake-parts, import-tree, ... }: flake-parts.lib.mkFlake { inherit inputs; } (import-tree ./modules);
url = "github:gmodena/nix-flatpak/?ref=latest";
};
};
outputs = {self,nixpkgs,nixpkgs-mesa-overlay,home-manager,plasma-manager,stylix,...}@inputs: let
system = "x86_64-linux";
in {
nixosConfigurations = builtins.listToAttrs (map (name: {
inherit name;
value = nixpkgs.lib.nixosSystem {
modules = [
./hosts/${name}
stylix.nixosModules.stylix
home-manager.nixosModules.default {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.grey = ./hosts/${name}/home.nix;
extraSpecialArgs = {
inherit inputs;
hostname = name;
stateVersion = "26.05";
};
};
}
];
specialArgs = {
inherit inputs;
inherit system;
hostname = name;
stateVersion = "26.05";
pkgs-mesa-overlay = import nixpkgs-mesa-overlay {
inherit system;
config.allowUnfree = true;
};
};
};
}) ["takamaki" "kitagawa" "nixos-vm"]);
};
} }
+148
View File
@@ -0,0 +1,148 @@
{ inputs, self, ... }: {
flake.nixosModules.global = { pkgs, config, lib, ... }: {
options = {
info.rootPath = lib.mkOption {
type = lib.types.str;
default = "/home/grey/nixos";
};
};
config = {
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
nix.gc = {
automatic = true;
persistent = true;
dates = "Sun 05:00";
};
boot.loader.efi.canTouchEfiVariables = true;
networking.networkmanager.enable = true;
time.timeZone = "Europe/London";
i18n.defaultLocale = "en_GB.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_GB.UTF-8";
LC_IDENTIFICATION = "en_GB.UTF-8";
LC_MEASUREMENT = "en_GB.UTF-8";
LC_MONETARY = "en_GB.UTF-8";
LC_NAME = "en_GB.UTF-8";
LC_NUMERIC = "en_GB.UTF-8";
LC_PAPER = "en_GB.UTF-8";
LC_TELEPHONE = "en_GB.UTF-8";
LC_TIME = "en_GB.UTF-8";
};
services.xserver.xkb = {
layout = "gb";
variant = "";
};
console.keyMap = "uk";
users.users."grey" = {
isNormalUser = true;
description = "grey";
extraGroups = [ "networkmanager" "wheel" ];
};
nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [
git
fzf
jq
busybox
ethtool
wayland-utils
mesa-demos
vulkan-tools
hyperfine
];
fonts.packages = with pkgs; [
iosevka-comfy.comfy
nerd-fonts.jetbrains-mono
];
programs.nano = {
enable = true;
nanorc = ''
set nowrap
set tabstospaces
set tabsize 2
'';
};
hardware.bluetooth = {
enable = true;
powerOnBoot = false;
};
programs.gnupg.agent = {
enable = true;
};
};
};
flake.homeModules.global = { config, pkgs, ... }: {
nix.gc = {
automatic = true;
persistent = true;
dates = "Sun 05:00";
};
home.packages = with pkgs; [
bibata-cursors
x264
speedtest-go
gparted
vlc
];
programs.git = {
enable = true;
lfs.enable = true;
settings = {
user.name = "Grey Jones";
user.email = "grey@greyweather.dev";
};
signing = {
format = "openpgp";
key = "CC7388DF8E1890729921BCFF7C67C51C2FF524D9";
signByDefault = true;
};
};
programs.gpg = {
enable = true;
};
programs.ssh = {
enable = true;
enableDefaultConfig = false;
settings = {
"git.greyweather.dev" = {
HostName = "git.greyweather.dev";
Port = "222";
User = "git";
IdentityFile = "~/.ssh/id_gitea";
};
"github.com" = {
HostName = "github.com";
Port = 22;
User = "git";
IdentityFile = "~/.ssh/id_github";
};
};
};
home.shell.enableBashIntegration = true;
};
}
@@ -0,0 +1,9 @@
{ inputs, self, ... }: {
flake.nixosModules.ly = { config, pkgs, ... }: {
services.displayManager.ly = {
enable = true;
};
security.pam.services.login.fprintAuth = false;
};
}
@@ -0,0 +1,39 @@
{ inputs, self, ... }: {
flake.nixosModules.noctalia = { pkgs, ... }: {
environment.systemPackages = with pkgs; [
inputs.noctalia.packages.${system}.default
];
programs.noctalia.enable = true;
};
flake.homeModules.noctalia = { lib, pkgs, osConfig, ... }: {
home.activation = {
symlinkNoctaliaState = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -f /home/grey/.local/state/noctalia/settings.toml ]; then
rm /home/grey/.local/state/noctalia/settings.toml
fi
ln -s ${osConfig.info.rootPath}/dotfiles/${osConfig.networking.hostName}/noctalia/settings.toml /home/grey/.local/state/noctalia/settings.toml
if [ -d /home/grey/.local/state/noctalia/plugins ]; then
rm -rf /home/grey/.local/state/noctalia/plugins
fi
ln -s ${osConfig.info.rootPath}/dotfiles/${osConfig.networking.hostName}/noctalia/plugins /home/grey/.local/state/noctalia/plugins
'';
copyNoctaliaConfig = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -f /home/grey/.config/noctalia/settings.toml ]; then
rm /home/grey/.config/noctalia/settings.toml
fi
cp ${osConfig.info.rootPath}/dotfiles/${osConfig.networking.hostName}/noctalia/settings.toml /home/grey/.config/noctalia/settings.toml
if [ -d /home/grey/.config/noctalia/plugins ]; then
rm -rf /home/grey/.config/noctalia/plugins
fi
cp -r ${osConfig.info.rootPath}/dotfiles/${osConfig.networking.hostName}/noctalia/plugins /home/grey/.config/noctalia/plugins
'';
};
};
}
@@ -0,0 +1,52 @@
{ inputs, self, ... }: {
flake.nixosModules.niri = { config, pkgs, inputs, lib, ... }: {
imports = with self.nixosModules; [
nautilus
];
environment.systemPackages = with pkgs; [
xdg-desktop-portal-gnome
wl-clipboard
libsecret
cage
wev
qalculate-qt
];
services.upower.enable = true;
services.udisks2.enable = true;
programs.niri = {
enable = true;
useNautilus = true;
# override niri source to use https://github.com/niri-wm/niri/pull/3642
package = (pkgs.niri.overrideAttrs (finalAttrs: prevAttrs:
{
cargoHash = "sha256-HypBB3PL4nVFMNH2+jEK0+dG9dJ920nHi8GwRoeH/v4=";
src = pkgs.fetchFromGitHub {
owner = "niri-wm";
repo = "niri";
rev = "cb41d54703eef73883bb2be58e19bcf3715d777c";
sha256 = "sha256-cLzTeMcCdQJ+kHGcOposjeheFyEG/tGOA1jFAORMHjI=";
};
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname src version;
hash = finalAttrs.cargoHash;
};
}
));
};
};
flake.homeModules.niri = { lib, osConfig, ... }:
{
home.activation.symlinkNiriConfig = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -f /home/grey/.config/niri/config.kdl ]; then
rm /home/grey/.config/niri/config.kdl
fi
ln -s ${osConfig.info.rootPath}/dotfiles/${osConfig.networking.hostName}/niri.kdl /home/grey/.config/niri/config.kdl
'';
};
}
+9
View File
@@ -0,0 +1,9 @@
{ inputs, self, ...}: {
imports = [
inputs.home-manager.flakeModules.home-manager
];
config.systems = [
"x86_64-linux"
];
}
+12
View File
@@ -0,0 +1,12 @@
{ inputs, self, ... }: {
flake.nixosModules.home-manager = { pkgs, ... }: {
imports = [
inputs.home-manager.nixosModules.default
];
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
};
};
}
+11
View File
@@ -0,0 +1,11 @@
{ inputs, self, ... }: {
flake.nixosModules.global = { pkgs, config, ... }: {
environment.systemPackages = [
inputs.nh.packages.${pkgs.stdenv.hostPlatform.system}.default
];
programs.nh = {
enable = true;
flake = "/home/grey/nixos";
};
};
}
+7
View File
@@ -0,0 +1,7 @@
{ inputs, self, ... }: {
flake.nixosModules.stylix = { pkgs, ... }: {
imports = [
inputs.stylix.nixosModules.stylix
];
};
}
+148
View File
@@ -0,0 +1,148 @@
{ inputs, self, ... }: {
flake.nixosModules.global = { pkgs, config, lib, ... }: {
options = {
info.rootPath = lib.mkOption {
type = lib.types.str;
default = "/home/grey/nixos";
};
};
config = {
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
nix.gc = {
automatic = true;
persistent = true;
dates = "Sun 05:00";
};
boot.loader.efi.canTouchEfiVariables = true;
networking.networkmanager.enable = true;
time.timeZone = "Europe/London";
i18n.defaultLocale = "en_GB.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_GB.UTF-8";
LC_IDENTIFICATION = "en_GB.UTF-8";
LC_MEASUREMENT = "en_GB.UTF-8";
LC_MONETARY = "en_GB.UTF-8";
LC_NAME = "en_GB.UTF-8";
LC_NUMERIC = "en_GB.UTF-8";
LC_PAPER = "en_GB.UTF-8";
LC_TELEPHONE = "en_GB.UTF-8";
LC_TIME = "en_GB.UTF-8";
};
services.xserver.xkb = {
layout = "gb";
variant = "";
};
console.keyMap = "uk";
users.users."grey" = {
isNormalUser = true;
description = "grey";
extraGroups = [ "networkmanager" "wheel" ];
};
nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [
git
fzf
jq
busybox
ethtool
wayland-utils
mesa-demos
vulkan-tools
hyperfine
];
fonts.packages = with pkgs; [
iosevka-comfy.comfy
nerd-fonts.jetbrains-mono
];
programs.nano = {
enable = true;
nanorc = ''
set nowrap
set tabstospaces
set tabsize 2
'';
};
hardware.bluetooth = {
enable = true;
powerOnBoot = false;
};
programs.gnupg.agent = {
enable = true;
};
};
};
flake.homeModules.global = { config, pkgs, ... }: {
nix.gc = {
automatic = true;
persistent = true;
dates = "Sun 05:00";
};
home.packages = with pkgs; [
bibata-cursors
x264
speedtest-go
gparted
vlc
];
programs.git = {
enable = true;
lfs.enable = true;
settings = {
user.name = "Grey Jones";
user.email = "grey@greyweather.dev";
};
signing = {
format = "openpgp";
key = "CC7388DF8E1890729921BCFF7C67C51C2FF524D9";
signByDefault = true;
};
};
programs.gpg = {
enable = true;
};
programs.ssh = {
enable = true;
enableDefaultConfig = false;
settings = {
"git.greyweather.dev" = {
HostName = "git.greyweather.dev";
Port = "222";
User = "git";
IdentityFile = "~/.ssh/id_gitea";
};
"github.com" = {
HostName = "github.com";
Port = 22;
User = "git";
IdentityFile = "~/.ssh/id_github";
};
};
};
home.shell.enableBashIntegration = true;
};
}
+3
View File
@@ -0,0 +1,3 @@
{ inputs, self, ... }: {
# flake.nixosModules.graphics =
}
+145
View File
@@ -0,0 +1,145 @@
{ inputs, self, ... }: {
flake.homeModules.kitagawa = { pkgs, lib, ... }: {
programs.zsh.initContent = lib.mkOrder 1500 "fastfetch";
programs.fastfetch = {
enable = true;
settings = {
logo = {
type = "builtin";
padding = {
top = 1;
left = 2;
right = 2;
};
};
modules = [
{
type = "custom";
format = "┌────────────────── Software ──────────────────┐";
}
{
type = "title";
key = " Session";
format = "{user-name}@{host-name}";
}
{
type = "os";
key = " Distro";
format = "{pretty-name}";
}
{
type = "host";
key = " Device";
format = "{version}";
}
{
type = "kernel";
key = " Kernel";
}
{
type = "shell";
key = " Shell";
}
{
type = "terminal";
key = " Terminal";
}
{
type = "wm";
key = " WM";
}
{
type = "custom";
format = "└──────────────────────────────────────────────┘";
}
"break"
{
type = "custom";
format = "┌────────────────── Hardware ──────────────────┐";
}
{
type = "cpu";
key = " CPU";
format = "{name}";
}
{
type = "memory";
key = " RAM";
percent = {
green = 50;
yellow = 80;
type = 0;
};
}
{
type = "swap";
key = " Swap";
percent = {
green = 50;
yellow = 80;
type = 0;
};
separate = false;
}
{
type = "disk";
key = " Disk";
showRegular = true;
showExternal = false;
showHidden = false;
showSubvolumes = false;
showReadOnly = true;
ShowUnknown = false;
hideFolders = "/efi:/boot:/boot/*:/run/media/*";
useAvailable = false;
percent = {
green = 50;
yellow = 80;
type = 0;
};
}
{
type = "localip";
key = " IP";
showIpv4 = true;
showIpv6 = false;
showMac = false;
showLoop = false;
showPrefixLen = true;
showMtu = false;
showSpeed = false;
showFlags = false;
compact = false;
defaultRouteOnly = true;
showAllIps = false;
}
{
type = "custom";
format = "└──────────────────────────────────────────────┘";
}
"break"
{
type = "custom";
format = "┌──────────────── Age + Uptime ────────────────┐";
}
{
type = "disk";
key = " OS Age";
folders = "/";
format = "{create-time:10} ({days} days)";
}
{
type = "uptime";
key = " Uptime";
}
{
type = "custom";
format = "└──────────────────────────────────────────────┘";
}
];
};
};
};
}
+11
View File
@@ -0,0 +1,11 @@
{ inputs, self, ... }: {
flake.homeModules.kitagawa = { pkgs, config, lib, ... }: {
programs.kitty = {
font = lib.mkForce {
name = "Iosevka Comfy";
package = pkgs.iosevka-comfy.comfy;
size = 12;
};
};
};
}
+12
View File
@@ -0,0 +1,12 @@
{ inputs, self, ... }: {
flake.homeModules.kitagawa = { config, pkgs, ... }: {
programs.zsh.shellAliases = {
wake-takamaki = "ssh sakamoto .local/bin/wake-takamaki";
shutdown-takamaki = "ssh takamaki universal-shutdown";
reboot-takamaki = "ssh takamaki universal-reboot";
switch-takamaki-os = "ssh takamaki switch-os";
apply-config = "zsh -c 'cd /home/grey/nixos; git add .; nh os switch .'";
update-system = "zsh -c 'cd /home/grey/nixos; git add .; nh os switch -u .'";
};
};
}
+194
View File
@@ -0,0 +1,194 @@
{ inputs, self, ... }: {
flake.nixosConfigurations.kitagawa = inputs.nixpkgs.lib.nixosSystem {
modules = [
self.nixosModules.kitagawa
];
};
flake.nixosModules.kitagawa = { config, pkgs, ... }: {
system.stateVersion = "26.05";
networking.hostName = "kitagawa";
imports = with self.nixosModules; [
global
home-manager
stylix
ly
niri
noctalia
zsh
];
nix.buildMachines = [
{
hostName = "nixremote";
systems = [ "x86_64-linux" "i686-linux" ];
protocol = "ssh-ng";
maxJobs = 250;
speedFactor = 1000;
supportedFeatures = [ "benchmark" "kvm" "big-parallel" ];
}
];
nix.distributedBuilds = true;
nix.settings.builders-use-substitutes = true;
services.blueman.enable = true;
services.tailscale = {
enable = true;
openFirewall = true;
};
environment.systemPackages = with pkgs; [
github-desktop
moonlight-qt
];
hardware.steam-hardware.enable = true;
boot = {
# Enable "Silent boot"
consoleLogLevel = 3;
initrd.verbose = false;
kernelParams = [
"quiet"
"rd.udev.log_level=3"
"rd.systemd.show_status=auto"
];
loader.limine = {
enable = true;
maxGenerations = 10;
};
};
stylix.enable = true;
stylix.image = ./wallpaper.jpg;
stylix.polarity = "dark";
home-manager.users.grey = self.homeModules.kitagawa;
};
flake.homeModules.kitagawa = { config, pkgs, inputs, lib, ... }: {
home.stateVersion = "26.05";
imports = with self.homeModules; [
global
niri
noctalia
vscode
kitty
zsh
floorp
equibop
spotify
];
features.spicetify.enable = true;
/*
imports = [
#"${global-configs}/gnome.nix"
#./configs/fetch.nix
];
*/
home.packages = with pkgs; [
obsidian
thunderbird
jetbrains.clion
jetbrains.idea
proton-vpn
ente-auth
signal-desktop
xarchiver
kdePackages.filelight
remmina
freerdp
loupe
];
stylix.targets.floorp.profileNames = [ "default" ];
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
gtk = {
enable = true;
gtk3.bookmarks = [
"file:///home/grey/nixos NixOS"
"file:///home/grey/Downloads Downloads"
"file:///home/grey/Documents Documents"
"file:///home/grey/Pictures Pictures"
"file:///home/grey/Music Music"
"file:///home/grey/Videos Videos"
"file:/// Root"
];
};
services.udiskie = {
enable = true;
settings = {
# workaround for
# https://github.com/nix-community/home-manager/issues/632
program_options = {
# replace with your favorite file manager
file_manager = "${pkgs.nautilus}/bin/nautilus";
};
};
};
xdg = {
enable = true;
mimeApps.defaultApplications = {
"x-scheme-handler/x-github-client" = [ "github-desktop.desktop" ];
"x-scheme-handler/x-github-desktop-dev-auth" = [ "github-desktop.desktop" ];
"x-scheme-handler/http" = [ "floorp.desktop" ];
"text/html" = [ "floorp.desktop" ];
"application/xhtml+xml" = [ "floorp.desktop" ];
"x-scheme-handler/https" = [ "floorp.desktop" ];
"text/calendar" = [ "thunderbird.desktop" ];
};
};
programs.ssh = {
settings = {
"takamaki" = {
HostName = "greyweather.dev";
Port = "2222";
User = "grey";
IdentityFile = "~/.ssh/id_takamaki";
};
"sakamoto" = {
HostName = "greyweather.dev";
Port = "22";
User = "grey";
IdentityFile = "~/.ssh/id_sakamoto";
};
"nixremote" = {
HostName = "greyweather.dev";
Port = "2222";
User = "nixremote";
IdentityFile = "~/.ssh/id_takamaki";
};
};
};
/*
home.activation = {
linkRemminaPresets = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -d /home/grey/.local/share/remmina ]; then
rm -rf /home/grey/.local/share/remmina
fi
ln -s /home/grey/nixos/assets/dotfiles/remmina-presets /home/grey/.local/share/remmina
'';
};
*/
};
}
@@ -0,0 +1,40 @@
{ inputs, self, ... }: {
flake.nixosModules.kitagawa = { config, lib, pkgs, modulesPath, ... }: {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "uas" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/b17296df-a72e-4b9d-a3b6-54fc0c97c685";
fsType = "btrfs";
};
fileSystems."/home" = {
device = "/dev/disk/by-uuid/b17296df-a72e-4b9d-a3b6-54fc0c97c685";
fsType = "btrfs";
options = [ "subvol=home" ];
};
fileSystems."/nix" = {
device = "/dev/disk/by-uuid/b17296df-a72e-4b9d-a3b6-54fc0c97c685";
fsType = "btrfs";
options = [ "subvol=nix" ];
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/68F7-4D8F";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [
{ device = "/dev/disk/by-uuid/e85559e0-a039-4178-929a-8c5ec0328b64"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
};
}
@@ -0,0 +1,34 @@
{ inputs, self, ... }: {
flake.nixosModules.kitagawa = { pkgs, config, ... }: {
systemd.sleep.settings.Sleep = {
AllowSuspend = "no";
AllowHibernation = "yes";
};
services.logind.settings.Login.HandleLidSwitch = "ignore";
systemd.services.disable-lid-wakeup = {
wantedBy = [ "multi-user.target" ];
description = "Prevent the lid switch from waking laptop from hibernation";
serviceConfig = {
Type = "simple";
User = "root";
ExecStart = "/bin/sh -c \"if [ \\\"$(cat /proc/acpi/wakeup | grep 'LID' | grep 'enabled')\\\" != \\\"\\\" ]; then echo LID > /proc/acpi/wakeup; fi\"";
};
};
systemd.services.disable-tty-switch = {
wantedBy = [ "multi-user.target" ];
description = "Prevent alt+arrow keys from switching tty";
serviceConfig = {
Type = "simple";
User = "root";
ExecStart = "/bin/sh -c \"${pkgs.kbd}/bin/dumpkeys -k|grep -v Incr_Console|grep -v Decr_Console|${pkgs.kbd}/bin/loadkeys\"";
};
};
services.fprintd.enable = true;
services.iio-niri.enable = true;
};
}
+18
View File
@@ -0,0 +1,18 @@
{ inputs, self, ... }: {
flake.nixosModules.kitagawa = { pkgs, config, ... }:
let
plymouthTheme = "double";
in {
stylix.targets.plymouth.enable = false;
boot.plymouth = {
enable = true;
theme = plymouthTheme;
themePackages = with pkgs; [
(adi1090x-plymouth-themes.override {
selected_themes = [ plymouthTheme ];
})
];
};
};
}
File renamed without changes.
+25
View File
@@ -0,0 +1,25 @@
{ inputs, self, ... }: {
flake.homeModules.equibop = { pkgs, lib, osConfig, ... }: {
programs.equibop.enable = true;
home.activation = {
linkEquibopConfig = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -f /home/grey/.config/equibop/settings.json ]; then
rm /home/grey/.config/equibop/settings.json
fi
ln -s ${osConfig.info.rootPath}/dotfiles/${osConfig.networking.hostName}/equibop/settings.json /home/grey/.config/equibop/settings.json
if [ -f /home/grey/.config/equibop/settings/settings.json ]; then
rm /home/grey/.config/equibop/settings/settings.json
fi
ln -s ${osConfig.info.rootPath}/dotfiles/${osConfig.networking.hostName}/equibop/equicord-settings.json /home/grey/.config/equibop/settings/settings.json
if [ -f /home/grey/.config/equibop/settings/quickCss.css ]; then
rm /home/grey/.config/equibop/settings/quickCss.css
fi
ln -s ${osConfig.info.rootPath}/dotfiles/${osConfig.networking.hostName}/equibop/quickCss.css /home/grey/.config/equibop/settings/quickCss.css
'';
};
};
}
+207
View File
@@ -0,0 +1,207 @@
{ inputs, self, ... }: {
flake.homeModules.floorp = { pkgs, ... }:
let
firefox-addons = with pkgs; inputs.firefox-addons.packages.${system};
in {
programs.floorp = {
enable = true;
nativeMessagingHosts = [
pkgs.firefoxpwa
];
policies = {
AIControls.Default = {
Value = "blocked";
Locked = true;
};
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
DisableAppUpdate = true;
DisableFeedbackCommands = true;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
NoDefaultBookmarks = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
};
profiles.default = {
extensions = {
packages = with firefox-addons; [
adnauseam
bitwarden
indie-wiki-buddy
pwas-for-firefox
gnome-shell-integration
];
settings = {
${firefox-addons.adnauseam.addonId} = {
force = true;
settings = {
"firstInstall" = false;
"hidingAds" = true;
"clickingAds" = true;
"blockingMalware" = true;
"disableClickingForDNT" = true;
"clickProbability" = 0.75;
selectedFilterLists = [
"user-filters"
"adnauseam-filters"
"eff-dnt-whitelist"
"ublock-filters"
"ublock-badware"
"ublock-privacy"
"ublock-quick-fixes"
"ublock-unbreak"
"easylist"
"easyprivacy"
"urlhaus-1"
"fanboy-cookiemonster"
"ublock-cookies-easylist"
"adguard-cookies"
"ublock-cookies-adguard"
"fanboy-ai-suggestions"
"easylist-chat"
"easylist-newsletters"
"easylist-notifications"
"easylist-annoyances"
"adguard-mobile-app-banners"
"adguard-other-annoyances"
"adguard-popup-overlays"
"adguard-widgets"
"ublock-annoyances"
];
};
};
};
};
settings = {
"signon.rememberSignons" = false;
"signon.autofillForms" = false;
"floorp.panelSidebar.enabled" = false;
"floorp.workspaces.enabled" = false;
"browser.toolbars.bookmarks.visibility" = "newtab";
"floorp.browser.welcome.page.shown" = true;
"browser.newtabpage.activity-stream.feeds.topsites" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.feeds.adsfeed" = false;
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
"browser.newtabpage.activity-stream.feeds.weatherfeed" = false;
"browser.newtabpage.activity-stream.newtabWallpapers.user.enabled" = true;
"browser.newtabpage.activity-stream.widgets.enabled" = false;
"browser.newtabpage.activity-stream.discoverystream.enabled" = false;
"browser.newtabpage.activity-stream.newtabWallpapers.wallpaper" = "suspension-bridge";
"floorp.design.configs" = {
globalConfigs = {
userInterface = "proton";
uiCustomization = {
qrCode.disableButton = true;
disableFloorpStart = true;
};
};
};
"ui.key.menuAccessKeyFocuses" = false;
"floorp.keyboardshortcut.enabled" = true;
"floorp.keyboardshortcut.config" = {
enabled = true;
shortcuts = {
gecko-close-tab = {
modifiers = {
alt = true;
ctrl = false;
meta = false;
shift = false;
};
key = "Q";
action = "gecko-close-tab";
};
gecko-open-new-tab = {
modifiers = {
alt = true;
ctrl = false;
meta = false;
shift = false;
};
key = "Enter";
action = "gecko-open-new-tab";
};
};
};
};
search = {
force = true;
default = "ddg-noai";
engines = {
ddg-noai = {
name = "DuckDuckGo No-AI";
urls = [
{
template = "https://noai.duckduckgo.com/?q={searchTerms}";
}
];
icon = "https://duckduckgo.com/favicon.ico";
definedAliases = ["@noai"];
};
nixpkgs = {
name = "nixpkgs packages";
urls = [
{
template = "https://search.nixos.org/packages?query={searchTerms}";
}
];
icon = "https://wiki.nixos.org/favicon.ico";
definedAliases = ["@np"];
};
nixos-options = {
name = "NixOS options";
urls = [
{
template = "https://search.nixos.org/options?query={searchTerms}";
}
];
icon = "https://wiki.nixos.org/favicon.ico";
definedAliases = ["@no"];
};
nixos-wiki = {
name = "NixOS Wiki";
urls = [
{
template = "https://wiki.nixos.org/w/index.php?search={searchTerms}";
}
];
icon = "https://wiki.nixos.org/favicon.ico";
definedAliases = ["@nw"];
};
noogle = {
name = "Noogle";
urls = [
{
template = "https://noogle.dev/q/?term={searchTerms}";
}
];
icon = "https://noogle.dev/favicon.ico";
definedAliases = ["@ng"];
};
arch-wiki = {
name = "ArchWiki";
urls = [
{
template = "https://wiki.archlinux.org/index.php?search={searchTerms}";
}
];
icon = "https://wiki.archlinux.org/favicon.ico";
definedAliases = ["@aw"];
};
};
};
};
};
};
}
+10
View File
@@ -0,0 +1,10 @@
{ inputs, self, ... }: {
flake.homeModules.kitty = { pkgs, ... }: {
programs.kitty = {
enable = true;
shellIntegration.enableBashIntegration = true;
enableGitIntegration = true;
};
};
}
+14
View File
@@ -0,0 +1,14 @@
{ inputs, self, ... }: {
flake.nixosModules.nautilus = { pkgs, config, ... }: {
environment.systemPackages = with pkgs; [
nautilus
code-nautilus
adwaita-icon-theme
];
programs.nautilus-open-any-terminal = {
enable = true;
terminal = "kitty";
};
};
}
+41
View File
@@ -0,0 +1,41 @@
{ inputs, self, ... }: {
flake.homeModules.spotify = { pkgs, config, lib, ... }: {
imports = [
inputs.spicetify.homeManagerModules.default
];
options = {
features.spicetify.enable = lib.mkOption {
type = lib.types.bool;
default = false;
};
};
config = {
home.packages = with pkgs; lib.mkIf (config.features.spicetify.enable == false) [
spotfify
];
programs.spicetify =
let
spicePkgs = inputs.spicetify.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in lib.mkIf (config.features.spicetify.enable) {
enable = true;
enabledExtensions = with spicePkgs.extensions; [
hidePodcasts
];
enabledSnippets = with spicePkgs.snippets; [
spinningCdCoverArt
oneko
hideMiniPlayerButton
hideFullScreenButton
declutterNowPlayingBar
modernScrollbar
];
enabledCustomApps = with spicePkgs.apps; [
# marketplace
];
};
};
};
}
+20
View File
@@ -0,0 +1,20 @@
{ inputs, self, ... }: {
flake.homeModules.vscode = { osConfig, pkgs, lib, ... }: {
home.packages = [ pkgs.vscode ];
home.activation = {
linkVsCodeConfig = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -f /home/grey/.config/Code/User/settings.json ]; then
rm /home/grey/.config/Code/User/settings.json
fi
ln -s ${osConfig.info.rootPath}/dotfiles/global/vscode/settings.json /home/grey/.config/Code/User/settings.json
if [ -f /home/grey/.config/Code/User/keybindings.json ]; then
rm /home/grey/.config/Code/User/keybindings.json
fi
ln -s ${osConfig.info.rootPath}/dotfiles/global/vscode/keybindings.json /home/grey/.config/Code/User/keybindings.json
'';
};
};
}
+29
View File
@@ -0,0 +1,29 @@
{ inputs, self, ... }: {
flake.nixosModules.zsh = { config, pkgs, ... }: {
programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh;
users.users."grey".shell = pkgs.zsh;
};
flake.homeModules.zsh = { pkgs, ... }: {
home.shell.enableZshIntegration = true;
programs.kitty.shellIntegration.enableZshIntegration = true;
programs.zsh = {
enable = true;
completionInit = "";
antidote = {
enable = true;
plugins = [
"getantidote/use-omz"
"ohmyzsh/ohmyzsh path:lib"
"ohmyzsh/ohmyzsh path:plugins/command-not-found"
"ohmyzsh/ohmyzsh path:themes/nanotech.zsh-theme"
"zsh-users/zsh-autosuggestions"
"zdharma-continuum/fast-syntax-highlighting"
];
};
};
};
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,12 @@
/* color options */
:root {
--colors: on; /* off: discord default colors, on: midnight custom colors */
/* text colors */
--text-0: var(--bg-4); /* text on colored elements */
--text-1: hsl(220, 45%, 95%); /* other normally white text */
--text-2: hsl(220, 25%, 75%); /* headings and important text */
--text-3: hsl(220, 20%, 65%); /* normal text */
--text-4: hsl(220, 15%, 55%); /* icon buttons and channels */
--text-5: hsl(220, 15%, 45%); /* muted channels/chats and timestamps */
};
@@ -0,0 +1,16 @@
{
"appBadge": true,
"arRPC": true,
"autoStartMinimized": false,
"customTitleBar": true,
"discordBranch": "stable",
"enableMenu": false,
"enableSplashScreen": true,
"hardwareAcceleration": true,
"minimizeToTray": false,
"tray": false,
"splashColor": "rgb(148, 160, 184)",
"splashBackground": "rgb(22, 24, 29)",
"hardwareVideoAcceleration": true,
"clickTrayToShowHide": true
}
+161
View File
@@ -0,0 +1,161 @@
include "./noctalia.kdl"
input {
keyboard {
xkb {
layout "gb"
model ""
rules ""
variant ""
}
repeat-delay 600
repeat-rate 25
track-layout "global"
}
touchpad {
tap
dwt
natural-scroll
accel-speed 0.8
accel-profile "flat"
click-method "clickfinger"
}
mouse {
accel-speed -1
accel-profile "flat"
}
}
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
prefer-no-csd
overview { zoom 0.666; }
layout {
gaps 12
struts {
left 8
right 8
top -4
bottom 6
}
focus-ring {
width 1.25
}
border { off; }
shadow {
on
offset x=0 y=5
softness 15
spread 2
draw-behind-window false
color "#00000070"
}
center-focused-column "never"
}
cursor {
xcursor-theme "Bibata-Modern-Ice"
xcursor-size 22
}
hotkey-overlay { skip-at-startup; }
binds {
Mod+B hotkey-overlay-title="Open web browser (Floorp)" { spawn "floorp"; }
Mod+C hotkey-overlay-title="Open calculator (Qalculate)" { spawn "qalculate-qt"; }
Mod+D hotkey-overlay-title="Application launcher" { spawn "noctalia" "msg" "panel-toggle" "launcher"; }
Mod+E hotkey-overlay-title="Open file manager (Nautilus)" { spawn "nautilus" "-w"; }
Mod+Return hotkey-overlay-title="Open terminal (Kitty)" { spawn "kitty"; }
Mod+O hotkey-overlay-title="Open Obsidian" { spawn "obsidian"; }
Mod+Z hotkey-overlay-title="Apply NixOS config" { spawn "kitty" "zsh" "-i" "-c" "apply-config"; }
Mod+K { show-hotkey-overlay; }
Mod+Space { toggle-overview; }
Mod+Q { close-window; }
Mod+F { maximize-window-to-edges; }
Mod+Shift+F { fullscreen-window; }
Mod+Shift+E { quit; }
Mod+L hotkey-overlay-title="Lock session" { spawn "noctalia" "msg" "session" "lock"; }
Mod+Shift+D hotkey-overlay-title="Edit desktop widgets" { spawn "noctalia" "msg" "desktop-widgets-edit"; }
Mod+Shift+B hotkey-overlay-title="Open bar settings" { spawn "noctalia" "msg" "settings-open" "bar"; }
Mod+Shift+S hotkey-overlay-title="Open settings" { spawn "noctalia" "msg" "settings-open"; }
Mod+Period hotkey-overlay-title="Open control center" { spawn "noctalia" "msg" "panel-toggle" "control-center"; }
Mod+Shift+P hotkey-overlay-title="Open power menu" { spawn "noctalia" "msg" "panel-toggle" "session"; }
Mod+V hotkey-overlay-title="Show clipboard helper" { spawn "noctalia" "msg" "panel-toggle" "clipboard"; }
Mod+P hotkey-overlay-title="Show power info" { spawn "noctalia" "msg" "panel-toggle" "control-center" "power"; }
Ctrl+Shift+Escape { spawn "noctalia" "msg" "panel-toggle" "control-center" "system"; }
Mod+TouchpadScrollUp cooldown-ms=250 { focus-workspace-up; }
Mod+TouchpadScrollDown cooldown-ms=250 { focus-workspace-down; }
Mod+TouchpadScrollLeft cooldown-ms=150 { focus-column-left; }
Mod+TouchpadScrollRight cooldown-ms=150 { focus-column-right; }
Mod+Up { focus-workspace-up; }
Mod+Down { focus-workspace-down; }
Mod+Left { focus-column-left; }
Mod+Right { focus-column-right; }
Mod+Shift+Up { move-window-to-workspace-up; }
Mod+Shift+Down { move-window-to-workspace-down; }
Mod+Shift+Left { move-column-left; }
Mod+Shift+Right { move-column-right; }
Mod+equal { set-column-width "+2%"; }
Mod+minus { set-column-width "-2%"; }
XF86AudioLowerVolume { spawn "noctalia" "msg" "volume-down" "5"; }
XF86AudioRaiseVolume { spawn "noctalia" "msg" "volume-up" "5"; }
XF86AudioMute { spawn "noctalia" "msg" "volume-mute"; }
XF86AudioMicMute { spawn "noctalia" "msg" "mic-mute"; }
XF86MonBrightnessDown { spawn "noctalia" "msg" "brightness-down" "5"; }
XF86MonBrightnessUp { spawn "noctalia" "msg" "brightness-up" "5"; }
XF86WLAN { spawn-sh "rfkill toggle 0 || rfkill toggle 1"; }
XF86NotificationCenter { spawn "noctalia" "msg" "panel-toggle" "control-center" "notifications"; }
XF86Display { toggle-overview; }
XF86Favorites { spawn-sh "niri msg action toggle-dwt && noctalia msg notification-show \"Touchpad DWT toggled\""; }
Print { screenshot; }
Shift+Print { screenshot-window; }
}
spawn-at-startup "noctalia"
window-rule {
draw-border-with-background false
geometry-corner-radius 2
clip-to-geometry true
}
window-rule {
match app-id="^floorp$"
match app-id="^code$"
match app-id="^obsidian$"
match title="^takamaki$" app-id="^.*\\.Remmina$"
open-maximized-to-edges true
}
window-rule {
match app-id="^kitty$"
default-column-width { proportion 0.58; }
}
gestures { hot-corners { off; }; }
switch-events {
lid-close { spawn "bash" "-c" "noctalia msg session lock && systemctl hibernate"; }
}
animations {
on
slowdown 1.0
workspace-switch {
spring damping-ratio=0.95 stiffness=600 epsilon=0.0001
}
window-open {
duration-ms 125
curve "ease-out-expo"
}
window-close {
duration-ms 125
curve "ease-out-quad"
}
horizontal-view-movement {
spring damping-ratio=0.95 stiffness=600 epsilon=0.0001
}
window-movement {
spring damping-ratio=0.9 stiffness=750 epsilon=0.0001
}
window-resize {
spring damping-ratio=0.8 stiffness=650 epsilon=0.0001
}
}
@@ -0,0 +1,10 @@
[
{
"command": "workbench.action.closeActiveEditor",
"key": "alt+q"
},
{
"command": "workbench.action.files.newFile",
"key": "alt+enter"
}
]
@@ -0,0 +1,59 @@
{
"[nix]": {
"editor.tabSize": 2
},
"chat.disableAIFeatures": true,
"patternStore.savedPatterns": [
{
"label": "convert JSON pairs to Nix format",
"find": "\"(\\w+)\": (.+?),?$",
"replace": "$1 = $2;",
"flags": {
"isRegex": true,
"isCaseSensitive": false,
"matchWholeWord": false,
"isMultiline": false
},
"filesToInclude": "*.nix",
"filesToExclude": "*.json",
"scope": "global"
},
{
"label": "convert JSON opening bracket to Nix format",
"find": "(\"\\w+\"): \\{$",
"replace": "$1 = {",
"flags": {
"isRegex": true,
"isCaseSensitive": false,
"matchWholeWord": false,
"isMultiline": false
},
"filesToInclude": "*.nix",
"filesToExclude": "*.json",
"scope": "global"
},
{
"label": "convert JSON closing bracket to Nix format",
"find": "\\},?$",
"replace": "};",
"flags": {
"isRegex": true,
"isCaseSensitive": false,
"matchWholeWord": false,
"isMultiline": false
},
"filesToInclude": "*.nix",
"filesToExclude": "*.json",
"scope": "global"
}
],
"search.exclude": {
"**/assets/**": true,
"**/flake.lock": true
},
"update.mode": "none",
"workbench.welcomePage.walkthroughs.openOnInstall": false,
"explorer.confirmDelete": false,
"update.showReleaseNotes": false,
"explorer.confirmDragAndDrop": false
}
Loaded 100 of 153 files, more files were not shown because too many files have changed in this diff. Show more