change hyprland to niri
All checks were successful
/ update-readme (push) Successful in 26s

This commit is contained in:
dim 2025-11-30 13:14:41 +07:00
parent 28f82915cf
commit fe6455b4f2
Signed by: dhimas
GPG Key ID: 8D5D880EB08F1544
18 changed files with 741 additions and 271 deletions

View File

@ -758,6 +758,64 @@
"type": "github" "type": "github"
} }
}, },
"niri": {
"inputs": {
"niri-stable": "niri-stable",
"niri-unstable": "niri-unstable",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable",
"xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1763891121,
"narHash": "sha256-Arwlg5N1ssnSxPiTMYFNgZL/oGZvVJRtFHMEWOvVkk4=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "d2c10541bad1e7c9341fd269ec35da54a2c48219",
"type": "github"
},
"original": {
"owner": "sodiboo",
"repo": "niri-flake",
"type": "github"
}
},
"niri-stable": {
"flake": false,
"locked": {
"lastModified": 1756556321,
"narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"ref": "v25.08",
"repo": "niri",
"type": "github"
}
},
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1763887185,
"narHash": "sha256-uuwCdsGQUXoTSS02ShZAq+PeWudn0xu4vKpH43OubX8=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "efbe29f3faa69282aad110b7da74f3c41f8971cf",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"repo": "niri",
"type": "github"
}
},
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1762267440, "lastModified": 1762267440,
@ -790,6 +848,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-stable": {
"locked": {
"lastModified": 1763622513,
"narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1748929857, "lastModified": 1748929857,
@ -877,6 +951,26 @@
"type": "github" "type": "github"
} }
}, },
"noctalia": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1763899714,
"narHash": "sha256-qsp91fwNj5SoqrZKGFqBMRZcEbrP6v7UoWaCxTQoJes=",
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"rev": "faa074c330581cc4a065e592717045ba4fe1fc5d",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"type": "github"
}
},
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": [ "flake-parts": [
@ -976,9 +1070,11 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland", "hyprland": "hyprland",
"hyprpolkitagent": "hyprpolkitagent", "hyprpolkitagent": "hyprpolkitagent",
"niri": "niri",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",
"nixvim": "nixvim", "nixvim": "nixvim",
"noctalia": "noctalia",
"nvf": "nvf", "nvf": "nvf",
"spicetify-nix": "spicetify-nix", "spicetify-nix": "spicetify-nix",
"stylix": "stylix" "stylix": "stylix"
@ -1263,6 +1359,39 @@
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"type": "github" "type": "github"
} }
},
"xwayland-satellite-stable": {
"flake": false,
"locked": {
"lastModified": 1755491097,
"narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "388d291e82ffbc73be18169d39470f340707edaa",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"ref": "v0.7",
"repo": "xwayland-satellite",
"type": "github"
}
},
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1763704521,
"narHash": "sha256-ceYEV6PnvUN8Zixao4gpPuN+VT3B0SlAXKuPNHZhqUY=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "f379ff5722a821212eb59ada9cf8e51cb3654aad",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@ -1,7 +1,6 @@
{ {
description = '' description = ''
Nixy is a NixOS configuration with home-manager, secrets and custom theming all in one place. Dhimas config based on nixy
It's a simple way to manage your system configuration and dotfiles.
''; '';
inputs = { inputs = {
@ -27,16 +26,24 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nvf.url = "github:notashelf/nvf"; nvf.url = "github:notashelf/nvf";
niri = {
url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
noctalia = {
url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = inputs@{ nixpkgs, ... }: { outputs = inputs @ {nixpkgs, ...}: {
nixosConfigurations = { nixosConfigurations = {
dark = dark =
# CHANGEME: This should match the 'hostname' in your variables.nix file # CHANGEME: This should match the 'hostname' in your variables.nix file
nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
{ _module.args = { inherit inputs; }; } {_module.args = {inherit inputs;};}
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x270 # CHANGEME: check https://github.com/NixOS/nixos-hardware inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x270 # CHANGEME: check https://github.com/NixOS/nixos-hardware
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix

View File

@ -1,4 +1,8 @@
{ pkgs, inputs, ... }: { {
pkgs,
inputs,
...
}: {
programs.firefox = { programs.firefox = {
enable = true; enable = true;
profiles.dark = { profiles.dark = {
@ -49,10 +53,11 @@
search = { search = {
force = true; force = true;
default = "Searx"; default = "Searx";
order = [ "Searx" "google" ]; order = ["Searx" "google"];
engines = { engines = {
"Nix Packages" = { "Nix Packages" = {
urls = [{ urls = [
{
template = "https://search.nixos.org/packages"; template = "https://search.nixos.org/packages";
params = [ params = [
{ {
@ -64,35 +69,37 @@
value = "{searchTerms}"; value = "{searchTerms}";
} }
]; ];
}]; }
icon = ];
"''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ]; definedAliases = ["@np"];
}; };
"NixOS Wiki" = { "NixOS Wiki" = {
urls = [{ urls = [
{
template = "https://nixos.wiki/index.php?search={searchTerms}"; template = "https://nixos.wiki/index.php?search={searchTerms}";
}]; }
];
icon = "https://nixos.wiki/favicon.png"; icon = "https://nixos.wiki/favicon.png";
updateInterval = 24 * 60 * 60 * 1000; # every day updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [ "@nw" ]; definedAliases = ["@nw"];
}; };
"Searx" = { "Searx" = {
urls = [{ urls = [
{
template = "https://searx.aicampground.com/?q={searchTerms}"; template = "https://searx.aicampground.com/?q={searchTerms}";
}]; }
];
icon = "https://nixos.wiki/favicon.png"; icon = "https://nixos.wiki/favicon.png";
updateInterval = 24 * 60 * 60 * 1000; # every day updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [ "@searx" ]; definedAliases = ["@searx"];
}; };
bing.metaData.hidden = true; bing.metaData.hidden = true;
google.metaData.alias = google.metaData.alias = "@g"; # builtin engines only support specifying one additional alias
"@g"; # builtin engines only support specifying one additional alias
}; };
}; };
extensions.packages = extensions.packages = with inputs.firefox-addons.packages.${pkgs.stdenv.hostPlatform.system}; [
with inputs.firefox-addons.packages.${pkgs.system}; [
bitwarden bitwarden
multi-account-containers multi-account-containers
zotero-connector zotero-connector
@ -100,5 +107,5 @@
]; ];
}; };
}; };
stylix.targets.firefox.profileNames = [ "dark" ]; stylix.targets.firefox.profileNames = ["dark"];
} }

View File

@ -0,0 +1,18 @@
{
inputs,
pkgs,
...
}: {
programs.helix = {
enable = true;
languages = {
language = [
{
name = "nix";
auto-format = true;
formatter.command = "${pkgs.nixfmt}/bin/nixfmt";
}
];
};
};
}

View File

@ -1,6 +1,10 @@
{ inputs, pkgs, ... }: { {
inputs = [ inputs,
inputs.nfv.homeManagerModules.default pkgs,
...
}: {
imports = [
inputs.nvf.homeManagerModules.default
./options.nix ./options.nix
./languages.nix ./languages.nix
./picker.nix ./picker.nix
@ -9,5 +13,12 @@
./utils.nix ./utils.nix
./mini.nix ./mini.nix
]; ];
programs.nvf = { enable = true; }; programs.nvf = {
enable = true;
settings.vim = {
startPlugins = [
pkgs.vimPlugins.vim-kitty-navigator
];
};
};
} }

View File

@ -74,7 +74,7 @@
php = { php = {
enable = true; enable = true;
server = "intelephense"; lsp.server = "intelephense";
}; };
go.enable = true; go.enable = true;
markdown = { markdown = {

View File

@ -1,13 +1,16 @@
# Spicetify is a spotify client customizer # Spicetify is a spotify client customizer
{ pkgs, config, lib, inputs, ... }: {
let pkgs,
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; config,
lib,
inputs,
...
}: let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
accent = "${config.lib.stylix.colors.base0D}"; accent = "${config.lib.stylix.colors.base0D}";
background = "${config.lib.stylix.colors.base00}";
in { in {
imports = [ inputs.spicetify-nix.homeManagerModules.default ]; imports = [inputs.spicetify-nix.homeManagerModules.default];
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ "spotify" ];
stylix.targets.spicetify.enable = false; stylix.targets.spicetify.enable = false;
@ -21,6 +24,9 @@ in {
button = accent; button = accent;
button-active = accent; button-active = accent;
tab-active = accent; tab-active = accent;
player = background;
main = background;
sidebar = background;
}; };
enabledExtensions = with spicePkgs.extensions; [ enabledExtensions = with spicePkgs.extensions; [
@ -31,6 +37,7 @@ in {
adblock adblock
fullAppDisplay fullAppDisplay
shuffle shuffle
keyboardShortcut
]; ];
}; };
} }

View File

@ -1,7 +1,8 @@
{ inputs, pkgs, ... }: { {
home.packages = inputs,
[ inputs.hyprpolkitagent.packages."${pkgs.system}".hyprpolkitagent ]; pkgs,
...
wayland.windowManager.hyprland.settings.exec-once = }: {
[ "systemctl --user start hyprpolkitagent" ]; home.packages = [inputs.hyprpolkitagent.packages."${pkgs.stdenv.hostyPlatform.system}".hyprpolkitagent];
wayland.windowManager.hyprland.settings.exec-once = ["systemctl --user start hyprpolkitagent"];
} }

View File

@ -0,0 +1,244 @@
{
pkgs,
config,
inputs,
...
}: let
noctalia = cmd:
["noctalia-shell" "ipc" "call"]
++ (pkgs.lib.splitString " " cmd);
in {
imports = [inputs.niri.homeModules.niri inputs.noctalia.homeModules.default];
home.packages = with pkgs; [
wayland-utils
libsecret
cage
xwayland-satellite
libnotify
cliphist
cava
kdePackages.polkit-kde-agent-1
nautilus
direnv
imv
];
programs.niri = {
enable = true;
settings = {
prefer-no-csd = true;
hotkey-overlay.skip-at-startup = true;
environment = {
NIXOS_OZONE_WL = "1";
QT_QPA_PLATFORM = "wayland";
ELECTRON_OZON_PLATFORM_HINT = "wayland";
DISPLAY = ":0"; # Or null
_JAVA_AWT_WM_NONREPARENTING = "1";
};
cursor = {
hide-when-typing = true;
hide-after-inactive-ms = 1000;
};
binds = with config.lib.niri.actions; {
"Mod+Space".action.spawn = noctalia "launcher toggle";
"Mod+P".action.spawn = noctalia "sessionMenu toggle";
"Mod+V".action.spawn = noctalia "launcher clipboard";
"Mod+Shift+C".action.spawn = noctalia "launcher calculator";
"Mod+C".action.spawn = noctalia "calendar toggle";
"Mod+S".action.spawn = noctalia "controlCenter toggle";
"Mod+F12".action.spawn = noctalia "powerProfile cycle";
"XF86AudioLowerVolume".action.spawn = noctalia "volume decrease";
"XF86AudioRaiseVolume".action.spawn = noctalia "volume increase";
"XF86AudioMute".action.spawn = noctalia "volume muteOutput";
"XF86MonBrightnessUp".action.spawn = noctalia "brightness increase";
"XF86MonBrightnessDown".action.spawn = noctalia "brightness decrease";
"XF86AudioPlay".action.spawn = noctalia "media playPause";
"XF86AudioNext".action.spawn = noctalia "media next";
"XF86AudioPrev".action.spawn = noctalia "media previous";
"Mod+Shift+Q".action.spawn = noctalia "lockScreen lock";
"Mod+Return".action.spawn = ["alacritty"];
"Mod+E".action.spawn = ["nautilus"];
"Mod+B".action.spawn = ["firefox"];
"Mod+U".action = move-workspace-up;
"Mod+I".action = move-workspace-down;
"Mod+Shift+Slash".action = show-hotkey-overlay;
"Mod+Q".action = close-window;
"Mod+H".action = focus-column-or-monitor-left;
"Mod+L".action = focus-column-or-monitor-right;
"Mod+J".action = focus-window-or-monitor-down;
"Mod+K".action = focus-window-or-monitor-up;
"Mod+Shift+H".action = move-column-left-or-to-monitor-left;
"Mod+Shift+L".action = move-column-right-or-to-monitor-right;
"Mod+Shift+J".action = move-window-down-or-to-workspace-down;
"Mod+Shift+K".action = move-window-up-or-to-workspace-up;
"Mod+Ctrl+K".action = move-window-to-workspace-up;
"Mod+Ctrl+J".action = move-window-to-workspace-down;
"Mod+0".action = focus-workspace 0;
"Mod+1".action = focus-workspace 1;
"Mod+2".action = focus-workspace 2;
"Mod+3".action = focus-workspace 3;
"Mod+4".action = focus-workspace 4;
"Mod+5".action = focus-workspace 5;
"Mod+6".action = focus-workspace 6;
"Mod+7".action = focus-workspace 7;
"Mod+8".action = focus-workspace 8;
"Mod+9".action = focus-workspace 9;
"Mod+Shift+Period".action = move-workspace-to-monitor-next;
"Mod+Shift+Comma".action = move-workspace-to-monitor-previous;
"Mod+Comma".action = consume-or-expel-window-left;
"Mod+Period".action = consume-or-expel-window-right;
"Mod+Grave".action = toggle-overview;
"Mod+Tab".action = focus-workspace-previous;
"Mod+Equal".action = set-column-width "+5%";
"Mod+Minus".action = set-column-width "-5%";
"Mod+Shift+Equal".action = set-window-height "+5%";
"Mod+Shift+Minus".action = set-window-height "-5%";
"Mod+F".action = maximize-column;
"Mod+Shift+F".action = fullscreen-window;
"Mod+Ctrl+Shift+F".action = toggle-windowed-fullscreen;
"Mod+Y".action = toggle-window-floating;
"Mod+Shift+Y".action = switch-focus-between-floating-and-tiling;
"Mod+W".action = toggle-column-tabbed-display;
"Mod+Parenright".action = switch-layout "next";
"Mod+Parenleft".action = switch-layout "prev";
"Mod+Shift+E".action = quit;
};
input = {
warp-mouse-to-focus.enable = true;
focus-follows-mouse.enable = false;
trackpoint = {
accel-profile = "adaptive";
accel-speed = 0.6;
};
};
layout = {
focus-ring = {
width = 2;
};
};
window-rules = [
{
geometry-corner-radius = let
r = 4.0;
in {
top-left = r;
top-right = r;
bottom-left = r;
bottom-right = r;
};
clip-to-geometry = true;
}
{
matches = [{app-id = "firefox";}];
open-maximized = true;
}
{
matches = [{app-id = "chromium-browser";}];
open-maximized = true;
}
];
# debug = {
# honor-xdg-activation-with-invalid-serial = 1;
# };
};
};
programs.noctalia-shell = {
enable = true;
systemd.enable = true;
settings = {
general = {
animationSpeed = 2;
compactLockScreen = true;
};
wallpaper = {
enabled = false;
directory = "~/Pictures/wallpapers";
};
dock.enabled = false;
bar = {
density = "compact";
position = "right";
showCapsule = false;
widgets = {
left = [
{
id = "SidePanelToggle";
useDistroLogo = true;
}
{
id = "WiFi";
}
{
id = "Bluetooth";
}
];
center = [
{
hideUnoccupied = false;
id = "Workspace";
labelMode = "none";
}
];
right = [
{
colorizeIcons = true;
drawerEnabled = true;
id = "Tray";
}
{
alwaysShowPercentage = false;
id = "Battery";
warningThreshold = 30;
}
{
formatHorizontal = "HH:mm";
formatVertical = "HH mm";
id = "Clock";
useMonospacedFont = true;
usePrimaryColor = true;
}
];
};
};
colorSchemes.predefinedScheme = "Monochrome";
general = {
avatarImage = "/home/dim/.face";
radiusRatio = 0.2;
};
location = {
monthBeforeDay = false;
name = "Tangerang";
};
};
# this may also be a string or a path to a JSON file,
# but in this case must include *all* settings.
};
programs.alacritty = {
enable = true;
settings = {
window.decorations = "None";
};
};
services.kanshi = {
enable = true;
profiles = {
rumah = {
outputs = [
{
criteria = "LG Electronics 16EN33 305INKH5P181";
position = "0,0";
}
{
criteria = "eDP-1";
position = "0,768";
}
];
};
};
};
}

View File

@ -1,20 +1,24 @@
{ config, pkgs, ... }: {
let config,
pkgs,
...
}: let
inherit (config.var.theme.bar) position; inherit (config.var.theme.bar) position;
inherit (config.var.theme) rounding border-size gaps-in gaps-out; inherit (config.var.theme) rounding border-size gaps-in gaps-out;
in { in {
home.packages = with pkgs; [ playerctl ]; home.packages = with pkgs; [playerctl];
programs.waybar = { programs.waybar = {
enable = true; enable = true;
systemd = { systemd = {
enable = true; enable = true;
target = "hyprland-session"; target = "hyprland-session";
}; };
settings = [{ settings = [
{
layer = "top"; layer = "top";
position = position; position = position;
modules-left = [ "hyprland/workspaces" "hyprland/window" ]; modules-left = ["hyprland/workspaces" "mpris"];
modules-center = [ "mpris" ]; modules-center = [];
modules-right = [ modules-right = [
"idle_inhibitor" "idle_inhibitor"
"backlight" "backlight"
@ -25,7 +29,6 @@ in {
"temperature" "temperature"
"clock" "clock"
"privacy" "privacy"
"custom/cuaca"
"wireplumber" "wireplumber"
"tray" "tray"
]; ];
@ -54,9 +57,9 @@ in {
"on-scroll-down" = "shift_down"; "on-scroll-down" = "shift_down";
}; };
}; };
tray = { spacing = gaps-in; }; tray = {spacing = gaps-in;};
cpu = { format = " {usage}"; }; cpu = {format = " {usage}";};
memory = { format = " {}"; }; memory = {format = " {}";};
idle_inhibitor = { idle_inhibitor = {
format = "{icon}"; format = "{icon}";
format-icons = { format-icons = {
@ -75,11 +78,11 @@ in {
tooltip-format-disconnected = "Disconnected"; tooltip-format-disconnected = "Disconnected";
max-length = 50; max-length = 50;
}; };
temperature = { format = "{temperatureC}󰔄 "; }; temperature = {format = "{temperatureC}󰔄 ";};
backlight = { backlight = {
device = "intel_backlight"; device = "intel_backlight";
format = "{icon}"; format = "{icon}";
format-icons = [ "󱃓" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥" ]; format-icons = ["󱃓" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥"];
}; };
"battery#1" = { "battery#1" = {
bat = "BAT0"; bat = "BAT0";
@ -99,7 +102,7 @@ in {
critical = 15; critical = 15;
}; };
format = "{capacity} {icon}"; format = "{capacity} {icon}";
format-icons = [ "" "" "" "" "" ]; format-icons = ["" "" "" "" ""];
max-length = 25; max-length = 25;
}; };
"hyprland/window" = { "hyprland/window" = {
@ -111,7 +114,7 @@ in {
}; };
separate-outputs = true; separate-outputs = true;
}; };
"hyprland/workspaces" = { format = "<small>{name}</small>"; }; "hyprland/workspaces" = {format = "<small>{name}</small>";};
mpris = { mpris = {
"format" = "{player_icon} {dynamic}"; "format" = "{player_icon} {dynamic}";
"format-paused" = "{status_icon} <i>{dynamic}</i>"; "format-paused" = "{status_icon} <i>{dynamic}</i>";
@ -120,8 +123,8 @@ in {
"mpv" = "󰎇"; "mpv" = "󰎇";
}; };
"dynamic-len" = 30; "dynamic-len" = 30;
"status-icons" = { "paused" = "󰏤"; }; "status-icons" = {"paused" = "󰏤";};
"ignored-players" = [ "firefox" ]; "ignored-players" = ["firefox"];
}; };
privacy = { privacy = {
"icon-spacing" = 4; "icon-spacing" = 4;
@ -154,11 +157,11 @@ in {
"phone" = ""; "phone" = "";
"portable" = ""; "portable" = "";
"car" = ""; "car" = "";
"default" = [ "" "" ]; "default" = ["" ""];
}; };
"scroll-step" = 1; "scroll-step" = 1;
"on-click" = "pavucontrol"; "on-click" = "pavucontrol";
"ignored-sinks" = [ "Easy Effects Sink" ]; "ignored-sinks" = ["Easy Effects Sink"];
}; };
"wireplumber" = { "wireplumber" = {
"on-click" = "pavucontrol"; "on-click" = "pavucontrol";
@ -174,7 +177,7 @@ in {
"phone" = " "; "phone" = " ";
"portable" = " "; "portable" = " ";
"car" = " "; "car" = " ";
"default" = [ " " " " " " ]; "default" = [" " " " " "];
}; };
}; };
"custom/cuaca" = { "custom/cuaca" = {
@ -185,7 +188,8 @@ in {
"exec" = "curl -s 'https://wttr.in/Tangerang?format=1'"; "exec" = "curl -s 'https://wttr.in/Tangerang?format=1'";
"exec-if" = "ping wttr.in -c1"; "exec-if" = "ping wttr.in -c1";
}; };
}]; }
];
style = '' style = ''
* { border: none; border-radius: 0; } * { border: none; border-radius: 0; }

View File

@ -1,8 +1,9 @@
{ config, pkgs, ... }: { {
config,
pkgs,
...
}: {
imports = [ imports = [
# ../../nixos/nvidia.nix # CHANGEME: Remove this line if you don't have an Nvidia GPU
# ../../nixos/prime.nix # CHANGEME: Remove this line if you don't have an Nvidia GPU
../../nixos/audio.nix ../../nixos/audio.nix
../../nixos/auto-upgrade.nix ../../nixos/auto-upgrade.nix
../../nixos/bluetooth.nix ../../nixos/bluetooth.nix
@ -13,7 +14,8 @@
../../nixos/systemd-boot.nix ../../nixos/systemd-boot.nix
../../nixos/timezone.nix ../../nixos/timezone.nix
../../nixos/tuigreet.nix ../../nixos/tuigreet.nix
../../nixos/tlp.nix # ../../nixos/tlp.nix
../../nixos/upower.nix
../../nixos/users.nix ../../nixos/users.nix
../../nixos/utils.nix ../../nixos/utils.nix
../../nixos/virtualisation.nix ../../nixos/virtualisation.nix
@ -34,8 +36,8 @@
programs.nm-applet.enable = true; programs.nm-applet.enable = true;
networking.hosts = { networking.hosts = {
"192.168.122.52" = [ "websiteku.lokal" ]; "192.168.122.52" = ["websiteku.lokal"];
"127.0.0.1" = [ "dimensi.lokal" "sisfokampus.ddev.site" ]; "127.0.0.1" = ["dimensi.lokal" "sisfokampus.ddev.site"];
# "10.230.4.15" = [ "www.yapeim.my" ]; # "10.230.4.15" = [ "www.yapeim.my" ];
# "43.239.205.20" = [ "dimensi.my" ]; # "43.239.205.20" = [ "dimensi.my" ];
# "103.106.6.124" = [ "dimensi.my" ]; # "103.106.6.124" = [ "dimensi.my" ];

View File

@ -1,11 +1,16 @@
{ pkgs, config, inputs, ... }: { {
pkgs,
config,
lib,
...
}: {
imports = [ imports = [
./variables.nix ./variables.nix
# Programs # Programs
../../home/programs/kitty ../../home/programs/kitty
../../home/programs/nfv ../../home/programs/nvf
../../home/programs/helix
../../home/programs/shell ../../home/programs/shell
../../home/programs/pass ../../home/programs/pass
../../home/programs/fetch ../../home/programs/fetch
@ -23,18 +28,19 @@
../../home/scripts # All scripts ../../home/scripts # All scripts
# System (Desktop environment like stuff) # System (Desktop environment like stuff)
../../home/system/hyprland # ../../home/system/hyprland
../../home/system/hypridle # ../../home/system/hypridle
../../home/system/hyprlock # ../../home/system/hyprlock
../../home/system/hyprpaper # ../../home/system/hyprpaper
../../home/system/wofi # ../../home/system/wofi
# ../../home/system/waybar
# ../../home/system/dunst
../../home/system/batsignal ../../home/system/batsignal
../../home/system/zathura ../../home/system/zathura
../../home/system/mime ../../home/system/mime
../../home/system/udiskie ../../home/system/udiskie
../../home/system/clipman ../../home/system/clipman
../../home/system/waybar ../../home/system/niri
../../home/system/dunst
# ./secrets # CHANGEME: You should probably remove this line, this is where I store my secrets # ./secrets # CHANGEME: You should probably remove this line, this is where I store my secrets
]; ];
@ -51,6 +57,8 @@
}; };
}; };
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) ["intelephense" "spotify"];
home = { home = {
inherit (config.var) username; inherit (config.var) username;
homeDirectory = "/home/" + config.var.username; homeDirectory = "/home/" + config.var.username;
@ -80,7 +88,7 @@
}; };
doCheck = false; doCheck = false;
pyproject = true; pyproject = true;
propagatedBuildInputs = [ pip setuptools pyyaml mypy ]; propagatedBuildInputs = [pip setuptools pyyaml mypy];
}) })
])) ]))
jq jq
@ -145,7 +153,7 @@
]; ];
# Import my profile picture, used by the hyprpanel dashboard # Import my profile picture, used by the hyprpanel dashboard
file.".profile_picture.png" = { source = ./profile_picture.png; }; file.".profile_picture.png" = {source = ./profile_picture.png;};
# Don't touch this # Don't touch this
stateVersion = "24.05"; stateVersion = "24.05";

View File

@ -1,14 +1,13 @@
{ config, ... }: { {config, ...}: {
imports = [ ../../nixos/variables-config.nix ]; imports = [../../nixos/variables-config.nix];
config.var = { config.var = {
hostname = "dark"; hostname = "dark";
username = "dim"; username = "dim";
fullname = "Dhimas Widrayato";
uid = 1000; uid = 1000;
hashedPassword = hashedPassword = "$y$j9T$OqKMt8etf8DgTrZhN9jzy/$biMoM3P.WPZMpk0DAK.QhaHjGOL23pEgxlSvfu9LEPD";
"$y$j9T$OqKMt8etf8DgTrZhN9jzy/$biMoM3P.WPZMpk0DAK.QhaHjGOL23pEgxlSvfu9LEPD"; configDirectory = "/home/" + config.var.username + "/.config/nixos"; # The path of the nixos configuration directory
configDirectory = "/home/" + config.var.username
+ "/.config/nixos"; # The path of the nixos configuration directory
keyboardLayout = "us"; keyboardLayout = "us";
@ -29,8 +28,7 @@
autoUpgrade = false; autoUpgrade = false;
autoGarbageCollector = false; autoGarbageCollector = false;
cpuTempSensor = cpuTempSensor = "/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp1_input";
"/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp1_input";
theme = import ../../themes/var/nixy.nix; theme = import ../../themes/var/nixy.nix;
}; };

View File

@ -1,6 +1,13 @@
{ config, inputs, ... }: { config, inputs, ... }:
let autoGarbageCollector = config.var.autoGarbageCollector; let autoGarbageCollector = config.var.autoGarbageCollector;
in { in {
security.sudo.extraRules = [{
users = [ config.var.username ];
commands = [{
command = "/run/current-system/sw/bin/nixos-rebuild";
options = [ "NOPASSWD" ];
}];
}];
nixpkgs.config = { nixpkgs.config = {
allowUnfree = true; allowUnfree = true;
allowBroken = true; allowBroken = true;

View File

@ -1,17 +1,16 @@
{ pkgs, ... }: { {pkgs, ...}: {
services.greetd = { services.greetd = {
enable = true; enable = true;
settings = { settings = {
default_session = { default_session = {
command = command = "${pkgs.tuigreet}/bin/tuigreet --remember --asterisks --container-padding 2 --time --time-format '%I:%M %p | %a %h | %F' --cmd niri-session";
"${pkgs.tuigreet}/bin/tuigreet --remember --asterisks --container-padding 2 --time --time-format '%I:%M %p | %a %h | %F' --cmd Hyprland";
user = "greeter"; user = "greeter";
}; };
}; };
}; };
security.pam.services.greetd.enableGnomeKeyring = true; security.pam.services.greetd.enableGnomeKeyring = true;
environment.systemPackages = with pkgs; [ tuigreet ]; environment.systemPackages = with pkgs; [tuigreet];
# this is a life saver. # this is a life saver.
# literally no documentation about this anywhere. # literally no documentation about this anywhere.
@ -37,5 +36,4 @@
# WatchdogDevice = "/dev/watchdog"; # WatchdogDevice = "/dev/watchdog";
DefaultTimeoutStopSec = "10s"; DefaultTimeoutStopSec = "10s";
}; };
} }

5
nixos/upower.nix Normal file
View File

@ -0,0 +1,5 @@
{
services.tlp.enable = false;
services.tuned.enable = true;
services.upower.enable = true;
}

View File

@ -1,5 +1,9 @@
{ config, pkgs, inputs, ... }: {
let config,
pkgs,
inputs,
...
}: let
username = config.var.username; username = config.var.username;
hashedPassword = config.var.hashedPassword; hashedPassword = config.var.hashedPassword;
userId = config.var.uid; userId = config.var.uid;
@ -14,10 +18,10 @@ in {
programs.xfconf.enable = true; programs.xfconf.enable = true;
services.tumbler.enable = true; services.tumbler.enable = true;
hardware.graphics = { # hardware.graphics = {
package = # package =
inputs.hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}.mesa; # inputs.hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system}.mesa;
}; # };
users = { users = {
defaultUserShell = pkgs.zsh; defaultUserShell = pkgs.zsh;
@ -25,8 +29,8 @@ in {
hashedPassword = "${hashedPassword}"; hashedPassword = "${hashedPassword}";
uid = userId; uid = userId;
isNormalUser = true; isNormalUser = true;
description = "${username} account"; description = config.var.fullname;
extraGroups = [ "networkmanager" "wheel" "audio" "video" "input" ]; extraGroups = ["networkmanager" "wheel" "audio" "video" "input"];
}; };
}; };
} }

View File

@ -1,9 +1,29 @@
{ pkgs, ... }: { {pkgs, ...}: {
# xdg.portal = {
# enable = true;
# config.common.default = "*";
# wlr.enable = true;
# xdgOpenUsePortal = true;
# extraPortals = [ pkgs.xdg-desktop-portal pkgs.xdg-desktop-portal-gtk ];
# };
xdg.portal = { xdg.portal = {
enable = true; enable = true;
config.common.default = "*";
wlr.enable = true;
xdgOpenUsePortal = true; xdgOpenUsePortal = true;
extraPortals = [ pkgs.xdg-desktop-portal pkgs.xdg-desktop-portal-gtk ]; wlr.enable = true;
config = {
common = {
default = [
"gtk"
"gnome"
];
}; };
niri = {
default = [
"gtk"
"gnome"
];
};
};
};
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-wlr pkgs.xdg-desktop-portal-gtk];
} }