treewide: more refactor changes
This commit is contained in:
parent
48d8c3eb87
commit
253dd58346
44 changed files with 257 additions and 214 deletions
96
flake.nix
96
flake.nix
|
@ -1,51 +1,6 @@
|
||||||
{
|
{
|
||||||
description = "snowflake";
|
description = "snowflake";
|
||||||
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
||||||
hyprland.url = "github:hyprwm/Hyprland";
|
|
||||||
ags.url = "github:Aylur/ags";
|
|
||||||
nix-gaming.url = "github:fufexan/nix-gaming";
|
|
||||||
attic.url = "github:zhaofengli/attic";
|
|
||||||
nur.url = "github:nix-community/NUR";
|
|
||||||
yazi.url = "github:sxyazi/yazi";
|
|
||||||
helix.url = "github:helix-editor/helix";
|
|
||||||
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
|
|
||||||
wezterm.url = "github:notohh/wezterm?dir=nix&ref=nix-add-overlay";
|
|
||||||
hypridle.url = "github:hyprwm/hypridle";
|
|
||||||
hyprlock.url = "github:hyprwm/hyprlock";
|
|
||||||
hyprpicker.url = "github:hyprwm/hyprpicker";
|
|
||||||
hyprcursor.url = "github:hyprwm/hyprcursor";
|
|
||||||
xdg-portal-hyprland.url = "github:hyprwm/xdg-desktop-portal-hyprland";
|
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
|
||||||
atuin.url = "github:atuinsh/atuin";
|
|
||||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
||||||
hyprland-plugins = {
|
|
||||||
url = "github:hyprwm/hyprland-plugins";
|
|
||||||
inputs.hyprland.follows = "hyprland";
|
|
||||||
};
|
|
||||||
deploy-rs = {
|
|
||||||
url = "github:serokell/deploy-rs";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
sops-nix = {
|
|
||||||
url = "github:Mic92/sops-nix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
home-manager = {
|
|
||||||
url = "github:nix-community/home-manager";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
nix-index-database = {
|
|
||||||
url = "github:Mic92/nix-index-database";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
anyrun = {
|
|
||||||
url = "github:Kirottu/anyrun";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs = inputs:
|
outputs = inputs:
|
||||||
inputs.flake-parts.lib.mkFlake {inherit inputs;} {
|
inputs.flake-parts.lib.mkFlake {inherit inputs;} {
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -66,7 +21,6 @@
|
||||||
excludes = ["flake.lock"];
|
excludes = ["flake.lock"];
|
||||||
hooks = {
|
hooks = {
|
||||||
stylua.enable = true;
|
stylua.enable = true;
|
||||||
eslint.enable = true;
|
|
||||||
statix.enable = true;
|
statix.enable = true;
|
||||||
alejandra.enable = true;
|
alejandra.enable = true;
|
||||||
deadnix = {
|
deadnix = {
|
||||||
|
@ -76,6 +30,9 @@
|
||||||
prettier = {
|
prettier = {
|
||||||
enable = true;
|
enable = true;
|
||||||
files = "\\.(js|ts|md|json)$";
|
files = "\\.(js|ts|md|json)$";
|
||||||
|
settings = {
|
||||||
|
trailing-comma = "none";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -94,4 +51,51 @@
|
||||||
formatter = pkgs.alejandra;
|
formatter = pkgs.alejandra;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
|
hypridle.url = "github:hyprwm/hypridle";
|
||||||
|
hyprlock.url = "github:hyprwm/hyprlock";
|
||||||
|
hyprpicker.url = "github:hyprwm/hyprpicker";
|
||||||
|
hyprcursor.url = "github:hyprwm/hyprcursor";
|
||||||
|
xdg-portal-hyprland.url = "github:hyprwm/xdg-desktop-portal-hyprland";
|
||||||
|
hyprland-plugins = {
|
||||||
|
url = "github:hyprwm/hyprland-plugins";
|
||||||
|
inputs.hyprland.follows = "hyprland";
|
||||||
|
};
|
||||||
|
|
||||||
|
ags.url = "github:Aylur/ags";
|
||||||
|
nix-gaming.url = "github:fufexan/nix-gaming";
|
||||||
|
attic.url = "github:zhaofengli/attic";
|
||||||
|
nur.url = "github:nix-community/NUR";
|
||||||
|
yazi.url = "github:sxyazi/yazi";
|
||||||
|
helix.url = "github:helix-editor/helix";
|
||||||
|
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
|
||||||
|
wezterm.url = "github:notohh/wezterm?dir=nix&ref=nix-add-overlay";
|
||||||
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
|
atuin.url = "github:atuinsh/atuin";
|
||||||
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
|
deploy-rs = {
|
||||||
|
url = "github:serokell/deploy-rs";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
sops-nix = {
|
||||||
|
url = "github:Mic92/sops-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
nix-index-database = {
|
||||||
|
url = "github:Mic92/nix-index-database";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
anyrun = {
|
||||||
|
url = "github:Kirottu/anyrun";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,45 @@
|
||||||
{inputs, ...}: {
|
{pkgs, ...}: {
|
||||||
systemd.user.startServices = "sd-switch";
|
systemd.user.startServices = "sd-switch";
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./programs/editors/helix
|
||||||
|
./programs/terminal/lazygit
|
||||||
|
./programs/terminal/neofetch
|
||||||
|
./programs/terminal/nushell
|
||||||
|
./programs/terminal/yazi
|
||||||
|
./programs/terminal/atuin.nix
|
||||||
|
./programs/terminal/bat.nix
|
||||||
|
./programs/terminal/starship.nix
|
||||||
|
./programs/terminal/zoxide.nix
|
||||||
|
./programs/direnv.nix
|
||||||
|
./programs/git.nix
|
||||||
|
];
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
username = "notoh";
|
username = "notoh";
|
||||||
homeDirectory = "/home/notoh";
|
homeDirectory = "/home/notoh";
|
||||||
|
packages = with pkgs; [
|
||||||
|
wget
|
||||||
|
croc
|
||||||
|
eza
|
||||||
|
eva
|
||||||
|
fd
|
||||||
|
du-dust
|
||||||
|
bottom
|
||||||
|
gnupg
|
||||||
|
ripgrep
|
||||||
|
lazydocker
|
||||||
|
yt-dlp
|
||||||
|
nfs-utils
|
||||||
|
dig
|
||||||
|
tailspin
|
||||||
|
nitch
|
||||||
|
unzip
|
||||||
|
unrar
|
||||||
|
p7zip
|
||||||
|
procs
|
||||||
|
];
|
||||||
stateVersion = "23.05";
|
stateVersion = "23.05";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,28 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
../common.nix
|
inputs.hyprland.homeManagerModules.default
|
||||||
|
inputs.anyrun.homeManagerModules.default
|
||||||
|
inputs.ags.homeManagerModules.default
|
||||||
|
inputs.nix-index-database.hmModules.nix-index
|
||||||
|
../../services
|
||||||
|
../../programs/ags
|
||||||
|
../../programs/anyrun
|
||||||
|
../../programs/browsers/firefox
|
||||||
|
../../programs/browsers/chromium
|
||||||
|
../../programs/terminal/wezterm
|
||||||
|
../../programs/terminal/zellij
|
||||||
|
../../programs/gtk.nix
|
||||||
|
../../programs/media/cava.nix
|
||||||
|
../../programs/mako.nix
|
||||||
|
../../programs/media/spotify-player.nix
|
||||||
|
../../programs/media/zathura.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
chromium
|
|
||||||
discord
|
discord
|
||||||
pavucontrol
|
pavucontrol
|
||||||
imv
|
imv
|
||||||
|
@ -20,7 +38,7 @@
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
swww
|
swww
|
||||||
hyprpicker
|
hyprpicker
|
||||||
(libsForQt5.callPackage ../../pkgs/chatterino7 {})
|
(libsForQt5.callPackage ../../../pkgs/chatterino7 {})
|
||||||
];
|
];
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
imports = [
|
|
||||||
../programs/helix
|
|
||||||
../programs/lazygit
|
|
||||||
../programs/neofetch
|
|
||||||
../programs/nushell
|
|
||||||
../programs/yazi
|
|
||||||
../programs/atuin.nix
|
|
||||||
../programs/bat.nix
|
|
||||||
../programs/direnv.nix
|
|
||||||
../programs/git.nix
|
|
||||||
../programs/starship.nix
|
|
||||||
../programs/zoxide.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
wget
|
|
||||||
croc
|
|
||||||
eza
|
|
||||||
eva
|
|
||||||
fd
|
|
||||||
du-dust
|
|
||||||
bottom
|
|
||||||
gnupg
|
|
||||||
ripgrep
|
|
||||||
lazydocker
|
|
||||||
yt-dlp
|
|
||||||
nfs-utils
|
|
||||||
dig
|
|
||||||
tailspin
|
|
||||||
nitch
|
|
||||||
unzip
|
|
||||||
unrar
|
|
||||||
p7zip
|
|
||||||
procs
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../common.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,25 +10,24 @@
|
||||||
inputs.hypridle.homeManagerModules.default
|
inputs.hypridle.homeManagerModules.default
|
||||||
inputs.hyprlock.homeManagerModules.default
|
inputs.hyprlock.homeManagerModules.default
|
||||||
inputs.nix-index-database.hmModules.nix-index
|
inputs.nix-index-database.hmModules.nix-index
|
||||||
../common.nix
|
|
||||||
../../services
|
../../services
|
||||||
../../programs/ags
|
../../programs/ags
|
||||||
../../programs/anyrun
|
../../programs/anyrun
|
||||||
../../programs/firefox
|
../../programs/browsers/firefox
|
||||||
../../programs/wezterm
|
../../programs/browsers/chromium
|
||||||
../../programs/zellij
|
../../programs/terminal/wezterm
|
||||||
|
../../programs/terminal/zellij
|
||||||
../../programs/gtk.nix
|
../../programs/gtk.nix
|
||||||
../../programs/cava.nix
|
../../programs/media/cava.nix
|
||||||
../../programs/mako.nix
|
../../programs/mako.nix
|
||||||
../../programs/spotify-player.nix
|
../../programs/media/spotify-player.nix
|
||||||
../../programs/zathura.nix
|
../../programs/media/zathura.nix
|
||||||
../../wayland/hyprland
|
../../wayland/hyprland
|
||||||
../../wayland/services/hypridle.nix
|
../../wayland/services/hypridle.nix
|
||||||
../../wayland/programs/hyprlock.nix
|
../../wayland/programs/hyprlock.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
chromium
|
|
||||||
discord
|
discord
|
||||||
signal-desktop
|
signal-desktop
|
||||||
thunderbird
|
thunderbird
|
||||||
|
|
|
@ -19,5 +19,5 @@ export {
|
||||||
SystemTray,
|
SystemTray,
|
||||||
Utils,
|
Utils,
|
||||||
Variable,
|
Variable,
|
||||||
Widget,
|
Widget
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,8 +2,7 @@ import { Widget } from "../../../import.js";
|
||||||
|
|
||||||
const nixosLogo = () =>
|
const nixosLogo = () =>
|
||||||
Widget.Icon({
|
Widget.Icon({
|
||||||
icon:
|
icon: "/home/notoh/snowflake/home/ags/config/js/widgets/images/static/nixos.png"
|
||||||
"/home/notoh/snowflake/home/ags/config/js/widgets/images/static/nixos.png",
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export { nixosLogo };
|
export { nixosLogo };
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
configDir = "/home/notoh/snowflake/homeo/programs/ags/config";
|
configDir = "/home/notoh/snowflake/home/programs/ags/config";
|
||||||
in {
|
in {
|
||||||
programs.ags = {
|
programs.ags = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
5
home/programs/browsers/chromium/default.nix
Normal file
5
home/programs/browsers/chromium/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
_: {
|
||||||
|
programs.chromium = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
3
home/programs/browsers/firefox/user.js/.prettierrc.json
Normal file
3
home/programs/browsers/firefox/user.js/.prettierrc.json
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"trailingComma": "none"
|
||||||
|
}
|
|
@ -63,8 +63,14 @@ user_pref("dom.security.sanitizer.enabled", true);
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
/** TRACKING PROTECTION ***/
|
/** TRACKING PROTECTION ***/
|
||||||
user_pref("browser.contentblocking.category", "strict");
|
user_pref("browser.contentblocking.category", "strict");
|
||||||
user_pref("urlclassifier.trackingSkipURLs", "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com");
|
user_pref(
|
||||||
user_pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.twitter.com, *.twimg.com");
|
"urlclassifier.trackingSkipURLs",
|
||||||
|
"*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com"
|
||||||
|
);
|
||||||
|
user_pref(
|
||||||
|
"urlclassifier.features.socialtracking.skipURLs",
|
||||||
|
"*.instagram.com, *.twitter.com, *.twimg.com"
|
||||||
|
);
|
||||||
user_pref("network.cookie.sameSite.noneRequiresSecure", true);
|
user_pref("network.cookie.sameSite.noneRequiresSecure", true);
|
||||||
user_pref("browser.download.start_downloads_in_tmp_dir", true);
|
user_pref("browser.download.start_downloads_in_tmp_dir", true);
|
||||||
user_pref("browser.helperApps.deleteTempFileOnExit", true);
|
user_pref("browser.helperApps.deleteTempFileOnExit", true);
|
||||||
|
@ -137,7 +143,10 @@ user_pref("browser.safebrowsing.downloads.remote.enabled", false);
|
||||||
/** MOZILLA ***/
|
/** MOZILLA ***/
|
||||||
user_pref("permissions.default.desktop-notification", 2);
|
user_pref("permissions.default.desktop-notification", 2);
|
||||||
user_pref("permissions.default.geo", 2);
|
user_pref("permissions.default.geo", 2);
|
||||||
user_pref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
|
user_pref(
|
||||||
|
"geo.provider.network.url",
|
||||||
|
"https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"
|
||||||
|
);
|
||||||
user_pref("permissions.manager.defaultsUrl", "");
|
user_pref("permissions.manager.defaultsUrl", "");
|
||||||
user_pref("webchannel.allowObject.urlWhitelist", "");
|
user_pref("webchannel.allowObject.urlWhitelist", "");
|
||||||
|
|
||||||
|
@ -184,8 +193,14 @@ user_pref("extensions.getAddons.showPane", false);
|
||||||
user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
||||||
user_pref("browser.discovery.enabled", false);
|
user_pref("browser.discovery.enabled", false);
|
||||||
user_pref("browser.shell.checkDefaultBrowser", false);
|
user_pref("browser.shell.checkDefaultBrowser", false);
|
||||||
user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false);
|
user_pref(
|
||||||
user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false);
|
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons",
|
||||||
|
false
|
||||||
|
);
|
||||||
|
user_pref(
|
||||||
|
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features",
|
||||||
|
false
|
||||||
|
);
|
||||||
user_pref("browser.preferences.moreFromMozilla", false);
|
user_pref("browser.preferences.moreFromMozilla", false);
|
||||||
user_pref("browser.tabs.tabmanager.enabled", false);
|
user_pref("browser.tabs.tabmanager.enabled", false);
|
||||||
user_pref("browser.aboutConfig.showWarning", false);
|
user_pref("browser.aboutConfig.showWarning", false);
|
|
@ -1,4 +1,4 @@
|
||||||
{pkgs, ...}: {
|
_: {
|
||||||
programs = {
|
programs = {
|
||||||
git = {
|
git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -32,6 +32,25 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
ame = nixosSystem {
|
||||||
|
inherit specialArgs;
|
||||||
|
modules = [
|
||||||
|
./ame
|
||||||
|
sopsModule
|
||||||
|
hmModule
|
||||||
|
t480Module
|
||||||
|
{
|
||||||
|
home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
extraSpecialArgs = specialArgs;
|
||||||
|
users.notoh = {
|
||||||
|
imports = homeImports."notoh@ame";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
sakura = nixosSystem {
|
sakura = nixosSystem {
|
||||||
inherit specialArgs;
|
inherit specialArgs;
|
||||||
modules = [
|
modules = [
|
||||||
|
@ -86,25 +105,6 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
ame = nixosSystem {
|
|
||||||
inherit specialArgs;
|
|
||||||
modules = [
|
|
||||||
./ame
|
|
||||||
sopsModule
|
|
||||||
hmModule
|
|
||||||
t480Module
|
|
||||||
{
|
|
||||||
home-manager = {
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
useUserPackages = true;
|
|
||||||
extraSpecialArgs = specialArgs;
|
|
||||||
users.notoh = {
|
|
||||||
imports = homeImports."notoh@ame";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
arashi = nixosSystem {
|
arashi = nixosSystem {
|
||||||
inherit specialArgs;
|
inherit specialArgs;
|
||||||
modules = [
|
modules = [
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
{inputs, ...}: {
|
{inputs, ...}: {
|
||||||
flake = {
|
flake.deploy = {
|
||||||
deploy = {
|
|
||||||
nodes = with inputs.deploy-rs.lib.x86_64-linux; {
|
nodes = with inputs.deploy-rs.lib.x86_64-linux; {
|
||||||
sakura = {
|
sakura = {
|
||||||
hostname = "100.121.201.47";
|
hostname = "100.121.201.47";
|
||||||
|
@ -84,5 +83,4 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
{modulesPath, ...}: {
|
{
|
||||||
|
modulesPath,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||||
|
|
||||||
zramSwap.enable = true;
|
zramSwap.enable = true;
|
||||||
|
@ -26,4 +30,5 @@
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{inputs, ...}: {
|
_: {
|
||||||
imports = [
|
imports = [
|
||||||
./prometheus.nix
|
./prometheus.nix
|
||||||
./security.nix
|
./security.nix
|
||||||
|
|
Loading…
Reference in a new issue