Compare commits

...

101 Commits

Author SHA1 Message Date
9b18c146ca chore: system update 2025-03-12 22:52:15 +01:00
7028adda9f feat: aliases, dwm bump, and system upgrade 2025-02-21 14:02:32 +01:00
716eaa17d4 feat: dwm and system update 2025-02-21 11:08:07 +01:00
c6e3be2b21 feat: microsoft fonts 2025-02-18 23:47:18 +01:00
b41556e49e feat: docuement viewer 2025-02-17 23:38:39 +01:00
d3de11cb35 feat: added tex formatter 2025-02-14 12:03:42 +01:00
99daf9c58a chore: system update 2025-02-11 15:23:48 +01:00
e82bd4f4dc feat: less browsers 2025-02-04 19:43:27 +01:00
c093d8ee00 feat: more browsers 2025-01-30 14:21:38 +01:00
ca979091dc fix: more xset rules 2025-01-26 21:04:29 +01:00
bbb753d81d fix: disabled xset 2025-01-26 19:42:44 +01:00
228f91da74 chore: zen upgrade 2025-01-23 20:04:52 +01:00
a23e1dbe3c fix: accidental merge 2025-01-23 20:02:15 +01:00
4b125c5802 feat: socket file for xidlehook 2025-01-23 12:33:06 +01:00
3a8fa615f9 chore: system upgrade 2025-01-22 19:15:07 +01:00
8a5f705a96 fix: revert archivebox 2025-01-22 12:48:53 +01:00
a6a5876a23 feat: added archivebox 2025-01-19 20:18:19 +01:00
a1241fd833 Merge branch 'main' of github.com:eRgo35/nixos 2025-01-12 18:38:53 +01:00
b1da20e832 feat: added java and nix dev pkgs 2025-01-12 18:38:46 +01:00
9fa2da65f3 fix: modified nvidia to nvidia-open 2025-01-12 18:38:33 +01:00
3aa43f8a07 hyprland commented out 2025-01-11 12:39:40 +01:00
edc6aecb09 fix: merged xidlehook rules 2025-01-11 12:25:35 +01:00
38c84946c5 feat: changed xset to xidlehook 2025-01-11 12:16:07 +01:00
11d3b28513 chore: system update 2025-01-10 21:47:12 +01:00
e375c19c7d fix: reformatted config 2025-01-09 10:38:46 +01:00
e2886da8d6 fix: added commented out modules for easier cmp 2025-01-09 10:38:15 +01:00
1d68abb4c5 feat: free vscode and better xorg powersave 2025-01-09 10:34:03 +01:00
6189e52e4d feat: expanded bar for laptop utils 2025-01-09 10:14:03 +01:00
c57a67a6d0 chore: system upgrade 2025-01-08 16:58:12 +01:00
b7d8c84b4b fix: laptop typos adjustments 2025-01-08 16:58:00 +01:00
3b2cbc6e04 chore: bumped dwm version hash 2025-01-07 11:55:56 +01:00
7c030a594b fix: fixed cpu utilization 2025-01-07 11:48:48 +01:00
6be617f26a fix: added modeset to nvidia 2025-01-07 11:21:08 +01:00
70e2a7f007 feat: added temp hyprland config 2025-01-05 20:21:49 +01:00
c893411fb8 feat: readded stylix 2025-01-05 19:57:48 +01:00
4aab349158 BREAKING-CHANGE: modified structure, hm is now standalone 2025-01-05 19:49:53 +01:00
e0d676b63d BREAKING-CHANGE: changed nixpkgs to stable 24.11 + structure change + fmt 2024-12-31 16:18:38 +01:00
8d0f158b98 chore: bumped dwm version hash 2024-12-31 13:39:01 +01:00
85ed0392e9 feat: picom config removed as it caused issues 2024-12-31 13:38:45 +01:00
2b48f21d59 feat: new dwm bar layout 2024-12-31 13:38:21 +01:00
f966d071dc new git aliases 2024-12-31 13:37:07 +01:00
7a0c575b7e feat: picom animations and final config 2024-12-30 19:57:40 +01:00
d5e2fd9b52 feat: removed config 2024-12-28 15:58:49 +01:00
0d2a1e8e5a feat: dwm and picom sync 2024-12-28 15:38:32 +01:00
589e5de4c9 feat: latest dwm merge 2024-12-28 13:02:59 +01:00
b2c70116a2 feat: more dwm stuff 2024-12-27 20:09:06 +01:00
6ffe616413 feat: dwm stuff 2024-12-27 19:59:52 +01:00
0a39ffcfe8 feat: readded zen browser 2024-12-26 20:51:04 +01:00
c68bca72fb chore: system update 2024-12-26 20:44:11 +01:00
8d9254286c feat: xorg pkgs 2024-12-24 12:22:50 +01:00
7a9125551f feat: added dwm 2024-12-24 11:50:52 +01:00
9759690a12 feat: added stevenblack's hosts file 2024-12-24 11:35:02 +01:00
c59a154396 fix: what have I done with the super thingy 2024-12-22 15:57:56 +01:00
6670b3275a feat: my rat conquered hyprland binds 2024-12-22 15:55:39 +01:00
529ae42cbc fix: reset dunst 2024-12-21 20:09:55 +01:00
0bb957fa2a fix: dunst 2024-12-21 19:46:08 +01:00
7646c5e541 feat: x server 2024-12-21 19:41:44 +01:00
a7db8b89fd fix: steam params 2024-12-21 12:33:58 +01:00
64f426da76 fix: nvidia changes 2024-12-21 12:05:27 +01:00
802345c8eb fix: nvidia and nvim 2024-12-20 13:11:05 +01:00
05209efc31 feat: fixed paths 2024-12-20 12:55:43 +01:00
d0e2836e36 feat: moved dev pkgs to system 2024-12-20 12:52:44 +01:00
245276ad76 fix: rustup 2024-12-18 09:03:03 +01:00
c35cd3ee48 feat: added devtools 2024-12-18 08:51:37 +01:00
ef36e6c289 feat: changed thor sleep times 2024-12-18 08:24:52 +01:00
e2bf162c92 chore: system update 2024-12-17 19:17:58 +01:00
3cc7976d8e nvidia mods 2024-12-16 20:52:05 +01:00
594dfa5aea chore: update 2024-12-14 16:42:06 +01:00
f33f6fe33a chore: system update 2024-12-11 18:26:58 +01:00
5358654237 Merge branch 'main' of github.com:eRgo35/nixos 2024-12-10 23:39:24 +01:00
04a5d87446 fix: game fixes 2024-12-10 23:39:09 +01:00
fdd2570e87 feat: battery update 2024-12-10 17:49:02 +01:00
a3841b8c00 chore: update 2024-12-10 17:02:22 +01:00
2619a635b3 fix: xcb broke too much 2024-12-07 17:57:40 +01:00
233a967f75 fix: adb udev rules 2024-12-07 16:00:09 +01:00
618a5a2b55 feat: package sync + env update 2024-12-07 13:22:54 +01:00
0be65ea0ba feat: switched to rambox 2024-12-07 09:27:50 +01:00
89c162f8b7 feat: tangram 2024-12-07 09:16:26 +01:00
8711006139 Merge branch 'main' of github.com:eRgo35/nix-config 2024-12-06 12:19:06 +01:00
2b937eb25f feat: android studio 2024-12-06 12:18:55 +01:00
eb6ef3926e feat: alsa-utils fix 2024-12-05 17:37:05 +01:00
1565d96f71 chore: update system 2024-12-05 12:32:10 +01:00
4a7dbefca9 chore: system update 2024-12-03 19:24:48 +01:00
2034cde3e5 fix: less nerd fonts 2024-12-01 22:07:35 +01:00
11773ca0c2 feat: update nerd-fonts and system 2024-12-01 19:59:29 +01:00
61fd9f1ba9 feat: added ferdium 2024-11-30 11:26:42 +01:00
296e20fc70 fix: codium to code 2024-11-28 21:00:25 +01:00
43ea71f619 feat: platformio ext 2024-11-28 20:52:19 +01:00
014cc94c37 feat: new rat dropped 2024-11-28 19:41:25 +01:00
49f4b87e74 feat: added teamviewer 2024-11-26 19:25:49 +01:00
6490d5669d feat: moved steam from home manager to packages 2024-11-19 20:42:04 +01:00
6f5142bfc6 Merge branch 'main' of github.com:eRgo35/nixos 2024-11-19 20:30:20 +01:00
3d4b7910c0 feat: steam proton 2024-11-19 20:28:31 +01:00
371024a209 feat: lock script 2024-11-18 18:21:24 +01:00
e51e56069c feat: laptop optimizations 2024-11-17 11:16:19 +01:00
8e40b3dc02 feat: zion remote builder config 2024-11-16 11:49:25 +01:00
3b63a0873f feat: migrated thor to nixos (again) 2024-11-16 11:46:23 +01:00
6b8cec9963 feat: printing 2024-11-15 23:41:41 +01:00
f57164d8e1 fix: equibop is broken, use electron-flags.conf 2024-11-12 13:41:46 +01:00
dff3e8cd9e fix: equibop args 2024-11-12 13:35:03 +01:00
8f77d9894f fix: qt theme fixed 2024-11-12 13:30:43 +01:00
92 changed files with 10837 additions and 1298 deletions

888
flake.lock generated

File diff suppressed because it is too large Load Diff

108
flake.nix
View File

@@ -2,16 +2,23 @@
description = "Mike's Flake";
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
nur.url = "github:nix-community/NUR";
nix-alien.url = "github:thiagokokada/nix-alien";
zen-browser.url = "github:eRgo35/zen-browser-flake";
rosepine-kvantum.url = "github:eRgo35/RosePine-Kvantum";
hyprsunset.url = "github:hyprwm/hyprsunset";
hyprsysteminfo.url = "github:/hyprwm/hyprsysteminfo";
hyprpolkitagent.url = "github:hyprwm/hyprpolkitagent";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland";
@@ -35,7 +42,7 @@
};
home-manager = {
url = "github:nix-community/home-manager";
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
@@ -45,40 +52,99 @@
};
stylix = {
url = "github:danth/stylix";
url = "github:danth/stylix/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { nixpkgs, ... } @inputs: {
outputs = {
self,
nixpkgs,
home-manager,
...
} @ inputs: let
inherit (self) outputs;
systems = [
"x86_64-linux"
"aarch64-linux"
];
forAllSystems = nixpkgs.lib.genAttrs systems;
in {
# Your custom packages
# Accessible through 'nix build', 'nix shell', etc
packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
# Formatter for your nix files, available through 'nix fmt'
# Other options beside 'alejandra' include 'nixpkgs-fmt'
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
# Your custom packages and modifications, exported as overlays
overlays = import ./overlays {inherit inputs;};
# Reusable nixos modules you might want to export
# These are usually stuff you would upstream into nixpkgs
nixosModules = import ./modules/nixos;
# Reusable home-manager modules you might want to export
# These are usually stuff you would upstream into home-manager
homeManagerModules = import ./modules/home-manager;
# NixOS configuration entrypoint
# Available through 'nixos-rebuild --flake .#your-hostname'
nixosConfigurations = {
zion = nixpkgs.lib.nixosSystem {
modules = [ ./hosts ];
specialArgs = {
inherit inputs;
username = "mike";
hostname = "zion";
};
specialArgs = {inherit inputs outputs;};
modules = [
# > Our main nixos configuration file <
./hosts/zion/configuration.nix
];
};
thor = nixpkgs.lib.nixosSystem {
modules = [ ./hosts ];
specialArgs = {
inherit inputs;
username = "mike";
hostname = "thor";
};
specialArgs = {inherit inputs outputs;};
modules = [
# > Our main nixos configuration file <
./hosts/thor/configuration.nix
];
};
server = nixpkgs.lib.nixosSystem {
modules = [ ./hosts ];
specialArgs = {
inherit inputs;
username = "mike";
hostname = "server";
specialArgs = {inherit inputs outputs;};
modules = [
# > Our main nixos configuration file <
./hosts/server/configuration.nix
];
};
};
# Standalone home-manager configuration entrypoint
# Available through 'home-manager --flake .#your-username@your-hostname'
homeConfigurations = {
"mike@zion" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
extraSpecialArgs = {inherit inputs outputs;};
modules = [
# > Our main home-manager configuration file <
./home-manager/home.nix
];
};
"mike@thor" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
extraSpecialArgs = {inherit inputs outputs;};
modules = [
# > Our main home-manager configuration file <
./home-manager/home.nix
];
};
"mike@server" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
extraSpecialArgs = {inherit inputs outputs;};
modules = [
# > Our main home-manager configuration file <
./home-manager/home.nix
];
};
};
};
}

View File

@@ -50,5 +50,16 @@
tree = "eza -T";
startupctl = "systemctl list-unit-files --type=service | grep enabled";
ga = "git add .";
gap = "git add -p";
gc = "git commit -m";
gu = "git push";
gp = "git pull";
gs = "git status";
gd = "git diff";
vim = "nvim";
vi = "nvim";
};
}

View File

@@ -0,0 +1,491 @@
[%General]
author=Sourav Gope
comment=rosepine kvantum theme
x11drag=menubar_and_primary_toolbar
alt_mnemonic=true
left_tabs=true
attach_active_tab=true
mirror_doc_tabs=true
group_toolbar_buttons=false
toolbar_item_spacing=1
toolbar_interior_spacing=3
spread_progressbar=true
composite=true
menu_shadow_depth=5
menu_separator_height=6
tooltip_shadow_depth=6
splitter_width=4
scroll_width=6
scroll_arrows=false
scroll_min_extent=60
slider_width=2
slider_handle_width=18
slider_handle_length=18
center_toolbar_handle=true
check_size=14
textless_progressbar=false
progressbar_thickness=2
menubar_mouse_tracking=true
toolbutton_style=1
double_click=false
translucent_windows=true
blurring=true
popup_blurring=true
vertical_spin_indicators=false
spin_button_width=32
fill_rubberband=false
merge_menubar_with_toolbar=true
small_icon_size=16
large_icon_size=32
button_icon_size=16
toolbar_icon_size=22
combo_as_lineedit=true
animate_states=false
button_contents_shift=false
combo_menu=true
hide_combo_checkboxes=true
combo_focus_rect=true
groupbox_top_label=true
inline_spin_indicators=false
joined_inactive_tabs=false
layout_spacing=6
layout_margin=9
scrollbar_in_view=true
transient_scrollbar=true
transient_groove=false
submenu_overlap=0
tooltip_delay=-1
tree_branch_line=true
dark_titlebar=true
opaque=QMPlay2,kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam
reduce_window_opacity=18
scrollable_menu=false
submenu_delay=250
no_inactiveness=false
no_window_pattern=false
reduce_menu_opacity=0
respect_DE=true
contrast=1.00
dialog_button_layout=0
intensity=1.00
saturation=1.00
[GeneralColors]
window.color=#26233a
base.color=#26233a
alt.base.color=#1f1d2e
button.color=#3c4454
light.color=#1f1d2e
mid.light.color=#1f1d2e
dark.color=#1f1d2e
mid.color=#1f1d2e
highlight.color=#524f67
inactive.highlight.color=#1f1d2e
text.color=#e0def4
window.text.color=#e0def4
button.text.color=#e0def4
disabled.text.color=#e0def4
tooltip.text.color=#e0def4
highlight.text.color=#e0def4
link.color=#9ccfd8
link.visited.color=#31748f
progress.indicator.text.color=#e0def4
[Hacks]
transparent_ktitle_label=true
transparent_dolphin_view=true
transparent_pcmanfm_sidepane=true
blur_translucent=true
transparent_menutitle=true
respect_darkness=true
kcapacitybar_as_progressbar=true
force_size_grip=true
iconless_pushbutton=false
iconless_menu=false
disabled_icon_opacity=70
lxqtmainmenu_iconsize=22
normal_default_pushbutton=true
single_top_toolbar=true
tint_on_mouseover=0
transparent_pcmanfm_view=true
middle_click_scroll=false
no_selection_tint=false
opaque_colors=false
scroll_jump_workaround=false
[PanelButtonCommand]
frame=true
frame.element=button
frame.top=3
frame.bottom=3
frame.left=3
frame.right=3
interior=true
interior.element=button
indicator.size=8
text.normal.color=#e0def4
text.focus.color=#e0def4
text.press.color=#e0def4
text.toggle.color=#e0def4
text.shadow=0
text.margin=1
text.iconspacing=4
indicator.element=arrow
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
min_width=+0.3font
min_height=+0.3font
frame.expansion=6
[PanelButtonTool]
inherits=PanelButtonCommand
[Dock]
inherits=PanelButtonCommand
interior.element=dock
frame.element=dock
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color=#e0def4
[DockTitle]
inherits=PanelButtonCommand
frame=false
interior=false
text.normal.color=#e0def4
text.focus.color=#c8c8ca
text.bold=false
[IndicatorSpinBox]
inherits=PanelButtonCommand
frame=true
interior=true
frame.left=1
indicator.element=spin
indicator.size=10
text.normal.color=#e0def4
[RadioButton]
inherits=PanelButtonCommand
frame=false
interior.element=radio
text.normal.color=#e0def4
text.focus.color=#908caa
[CheckBox]
inherits=PanelButtonCommand
frame=false
interior.element=checkbox
text.normal.color=#e0def4
text.focus.color=#908caa
[Focus]
inherits=PanelButtonCommand
frame=true
frame.element=focus
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
frame.patternsize=20
[GenericFrame]
inherits=PanelButtonCommand
frame=true
interior=false
frame.element=common
interior.element=common
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
[LineEdit]
inherits=PanelButtonCommand
frame.element=lineedit
interior.element=lineedit
text.margin.left=0
text.margin.right=0
[DropDownButton]
inherits=PanelButtonCommand
indicator.element=arrow-down
[IndicatorArrow]
indicator.element=arrow
indicator.size=8
[ToolboxTab]
inherits=PanelButtonCommand
text.normal.color=#e0def4
text.focus.color=#908caa
text.press.color=#908caa
[Tab]
inherits=PanelButtonCommand
interior.element=tab
text.margin.left=8
text.margin.right=8
text.margin.top=2
text.margin.bottom=2
frame.element=tab
indicator.element=tab
frame.top=4
frame.bottom=4
frame.left=4
frame.right=4
text.normal.color=#e0def4
text.focus.color=#e0def4
text.toggle.color=#e0def4
frame.expansion=0
[TabFrame]
inherits=PanelButtonCommand
frame.element=tabframe
interior.element=tabframe
frame.top=4
frame.bottom=4
frame.left=4
frame.right=4
[TreeExpander]
inherits=PanelButtonCommand
indicator.size=12
indicator.element=tree
[HeaderSection]
inherits=PanelButtonCommand
interior.element=header
frame.element=header
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
text.bold=false
text.normal.color=#e0def4
text.focus.color=#908caa
text.press.color=#e0def4
text.toggle.color=#e0def4
frame.expansion=0
[SizeGrip]
indicator.element=resize-grip
[Toolbar]
inherits=PanelButtonCommand
indicator.element=toolbar
indicator.size=5
text.margin=0
frame=true
interior.element=menubar
frame.element=menubar
text.normal.color=#e0def4
text.focus.color=#908caa
frame.left=0
frame.right=0
frame.top=0
frame.bottom=1
frame.expansion=0
[Slider]
inherits=PanelButtonCommand
frame.element=slider
interior.element=slider
frame.top=3
frame.bottom=3
frame.left=3
frame.right=3
[SliderCursor]
inherits=PanelButtonCommand
frame=false
interior.element=slidercursor
[Progressbar]
inherits=PanelButtonCommand
frame.element=progress
interior.element=progress
text.margin=0
text.normal.color=#e0def4
text.focus.color=#e0def4
text.press.color=#e0def4
text.toggle.color=#e0def4
text.bold=false
frame.expansion=8
[ProgressbarContents]
inherits=PanelButtonCommand
frame=true
frame.element=progress-pattern
interior.element=progress-pattern
[ItemView]
inherits=PanelButtonCommand
text.margin=0
frame.element=itemview
interior.element=itemview
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
text.margin.top=2
text.margin.bottom=2
text.margin.left=4
text.margin.right=4
text.normal.color=#e0def4
text.focus.color=#e0def4
text.press.color=#e0def4
text.toggle.color=#e0def4
min_width=+0.3font
min_height=+0.3font
frame.expansion=0
[Splitter]
indicator.size=48
[Scrollbar]
inherits=PanelButtonCommand
indicator.element=arrow
indicator.size=8
[ScrollbarSlider]
inherits=PanelButtonCommand
interior.element=scrollbarslider
interior=true
frame=false
frame.expansion=48
[ScrollbarGroove]
inherits=PanelButtonCommand
interior.element=scrollbargroove
interior=true
frame=false
frame.expansion=48
[MenuItem]
inherits=PanelButtonCommand
frame=true
frame.element=menuitem
interior.element=menuitem
indicator.element=menuitem
text.normal.color=#e0def4
text.focus.color=#e0def4
text.margin.top=1
text.margin.bottom=1
text.margin.left=4
text.margin.right=4
frame.top=3
frame.bottom=3
frame.left=3
frame.right=3
text.bold=false
min_width=+0.3font
min_height=+0.3font
frame.expansion=0
[MenuBar]
inherits=PanelButtonCommand
frame.element=menubar
interior.element=menubar
text.normal.color=#e0def4
frame.bottom=0
frame.expansion=0
[MenuBarItem]
inherits=PanelButtonCommand
interior=true
interior.element=menubaritem
frame.element=menubaritem
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
text.margin.left=4
text.margin.right=4
text.margin.top=0
text.margin.bottom=0
text.normal.color=#e0def4
text.focus.color=#e0def4
frame.expansion=0
[TitleBar]
inherits=PanelButtonCommand
frame=false
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
interior.element=titlebar
indicator.size=16
indicator.element=mdi
text.normal.color=#e0def4
text.focus.color=#e0def4
text.bold=true
text.italic=false
frame.expansion=0
[ComboBox]
inherits=PanelButtonCommand
interior.element=combo
frame.element=combo
text.press.color=#e0def4
indicator.element=carrow
[Menu]
inherits=PanelButtonCommand
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
frame.element=menu
interior.element=menu
text.normal.color=#e0def4
text.shadow=false
frame.expansion=0
[GroupBox]
inherits=GenericFrame
frame=false
text.shadow=0
text.margin=0
text.normal.color=#e0def4
text.focus.color=#e0def4
text.bold=true
frame.expansion=0
[TabBarFrame]
inherits=GenericFrame
frame=true
frame.element=tabBarFrame
interior=false
frame.top=4
frame.bottom=4
frame.left=4
frame.right=4
[ToolTip]
inherits=GenericFrame
frame.top=3
frame.bottom=3
frame.left=3
frame.right=3
interior=true
text.shadow=0
text.margin=0
interior.element=tooltip
frame.element=tooltip
frame.expansion=0
[StatusBar]
inherits=GenericFrame
frame=false
interior=false
interior=false
[Window]
interior=true
interior.element=window

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 226 KiB

181
home-manager/dwm/.xinitrc Normal file
View File

@@ -0,0 +1,181 @@
#!/bin/sh
# screenlayout setup for odin
autorandr -c
# start some nice programs
# if [ -d /etc/X11/xinit/xinitrc.d ] ; then
# for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
# # shellcheck source=/dev/null
# [ -x "$f" ] && . "$f"
# done
# unset f
# fi
xset -b # disable bell
export SSH_AUTH_SOCK;
# export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
# ssh-agent -d &
# ssh agent setup
#eval `/usr/bin/ssh-agent`
#
#if test -f /usr/lib/openssh/x11-ssh-askpass # Archlinux
#then
# SSH_ASKPASS=/usr/lib/openssh/x11-ssh-askpass ssh-add < /dev/null
#fi
#
#if test -f /usr/lib/ssh/x11-ssh-askpass # Debian
#then
# SSH_ASKPASS=/usr/lib/ssh/x11-ssh-askpass ssh-add < /dev/null
#fi
# theming
export QT_QPA_PLATFORMTHEME=qt5ct
export DESKTOP_SESSION=plasma
export XDG_CURRENT_DESKTOP=dwm
# IMF configuration (fcitx5)
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export GLFW_IM_MODULE=ibus
# compositor
picom -b --vsync &
# fix android studio interface
export _JAVA_AWT_WM_NONREPARENTING=1 &
# set keyboard layout
setxkbmap pl &
# IMF daemon
# fcitx5 -d &
# enable local fonts in .fonts directory
# xset +fp /usr/share/fonts/local &
# xset +fp /usr/share/fonts/misc &
# xset +fp ~/.fonts &
# xset fp rehash &
# fc-cache -fv &
# powersaving options
# xset s off &
# xset s noblank &
# xset s noexpose &
# xset s on &
# xset -dpms &
# xset s 900 &
# Host-specific rules
if [ "$(hostname)" = "zion" ]; then
# Zion rules (Desktop)
# Enable DPMS and set longer timeouts for desktop
# xset +dpms
# xset dpms 1200 2400 3600 # Standby: 20 min, Suspend: 40 min, Off: 60 min
# Enable screen blanking and set timeout to 20 minutes
# xset s on
xset s off
xset s noblank
xset -dpms
# xset s 1200
xidlehook \
--socket /tmp/xidlehook.sock \
--not-when-fullscreen \
--not-when-audio \
--timer 600 "xset dpms force standby" "" \
--timer 1800 "xset dpms force suspend" "" \
--timer 3600 "xset dpms force off" "" &
elif [ "$(hostname)" = "thor" ]; then
# Thor rules (Laptop)
# Enable DPMS and set shorter timeouts for laptop
# xset +dpms
# xset dpms 300 600 900 # Standby: 5 min, Suspend: 10 min, Off: 15 min
# Enable screen blanking and set timeout to 10 minutes
# xset s on
# xset s 600
# Laptop-specific xidlehook rules
xidlehook \
--socket /tmp/xidlehook.sock
--not-when-fullscreen \
--not-when-audio \
--timer 450 "brightnessctl -s set 5%" "brightnessctl -s set 100%" \
--timer 600 "loginctl lock-session" "" \
--timer 750 "xset dpms force standby" "" \
--timer 900 "systemctl suspend" "" &
fi
# auths
# /usr/lib/mate-polkit/polkit-mate-authentication-agent-1 &
# gnome-keyring-daemon &
# source /etc/X11/xinit/xinitrc.d/50-systemd-user.sh
## Map super key to trigger rofi when used alone
# xcape -e 'Super_L=Super_L|Shift_L|space' &
# wallpaper engine and theming
# nitrogen --restore &
# wal --backend colorz -i $HOME/.dots/nitrogen/.config/nitrogen/pexels-engin-akyurt-1435752.jpg &
. ~/.fehbg &
## Set screen locker
xss-lock -v -- betterlockscreen -l --time-format '%I:%M %p' &
## Desktop portal
/usr/lib/xdg-desktop-portal-gtk &
# notification daemon
dunst &
## Screenshot daemon
flameshot &
# Easyeffects daemon
# easyeffects --gapplication-service &
## Telegram daemon
# telegram-desktop -startintray &
## Caffeine-ng
# caffeine >/dev/null 2>&1 &
## Ulauncher
# ulauncher --hide-window --no-window-shadow >/dev/null 2>&1 &
# Emacs Server
# emacs --daemon &
# Theme changing service
# xsettingsd &
# Theming service
# dusk &
# Alacritty config
# $HOME/.config/alacritty/theme-patcher.sh &
## THINKPAD-SPECIFIC
#hash dockd && dockd --daemon &
# status bar
bash $HOME/.config/bar.sh & disown
dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY
# . /etc/X11/Xsession
# redshift &
# some merges
# xrdb merge .Xresources &
# xsetroot -cursor_name left_ptr &
# start dwm
exec dwm

View File

@@ -0,0 +1,3 @@
if [ "$(tty)" = "/dev/tty1" ];then
exec startx
fi

136
home-manager/dwm/bar.sh Executable file
View File

@@ -0,0 +1,136 @@
#!/usr/bin/env bash
# Rosé Pine color palette
BASE=#191724
SURFACE=#1f1d2e
OVERLAY=#26233a
MUTED=#6e6a86
SUBTLE=#908caa
TEXT=#e0def4
LOVE=#eb6f92
GOLD=#f6c177
ROSE=#ebbcba
PINE=#31748f
FOAM=#9ccfd8
IRIS=#c4a7e7
HIGHLIGHT_LOW=#21202e
HIGHLIGHT_MED=#403d52
HIGHLIGHT_HIGH=#524f67
# Function to get CPU usage
get_cpu_usage() {
cpu_usage=$(awk '{u=$2+$4; t=$2+$4+$5; if (NR==1){u1=u; t1=t;} else print int(($2+$4-u1) * 100 / (t-t1)); }' \
<(grep 'cpu ' /proc/stat) <(sleep 1; grep 'cpu ' /proc/stat))
echo "^c$FOAM^CPU: $cpu_usage%"
}
# Function to get memory usage
get_memory_usage() {
# Extract used and total memory in kilobytes
mem_info=$(free -k | awk '/^Mem:/ {print $3, $2}')
used_mem=$(echo $mem_info | awk '{print $1}')
total_mem=$(echo $mem_info | awk '{print $2}')
# Calculate memory usage percentage
mem_percent=$(awk "BEGIN {printf \"%.0f%%\", ($used_mem / $total_mem) * 100}")
# Output the result with color
echo "^c$IRIS^MEM: $mem_percent"
}
# Function to get volume level
get_volume() {
# Get the default sink (output device) and its volume/mute status
default_sink=$(pactl get-default-sink)
volume=$(pactl get-sink-volume $default_sink | grep -o '[0-9]*%' | head -1)
is_muted=$(pactl get-sink-mute $default_sink | grep -o 'yes\|no')
# Replace "yes" with "MUT" and "no" with the volume level
if [ "$is_muted" = "yes" ]; then
volume="MUT"
fi
# Get the default source (input device) and its volume/mute status
default_source=$(pactl get-default-source)
mic_level=$(pactl get-source-volume $default_source | grep -o '[0-9]*%' | head -1)
is_mic_muted=$(pactl get-source-mute $default_source | grep -o 'yes\|no')
# Replace "yes" with "MUT" and "no" with the microphone level
if [ "$is_mic_muted" = "yes" ]; then
mic_level="MUT"
fi
# Output the results with colors
echo "^c$PINE^VOL: $volume MIC: $mic_level"
}
# Function to get brightness percentage
get_brightness() {
# Get the current brightness level (adjust path if needed)
brightness=$(cat /sys/class/backlight/intel_backlight/brightness)
max_brightness=$(cat /sys/class/backlight/intel_backlight/max_brightness)
# Calculate brightness percentage
brightness_percent=$(awk "BEGIN {printf \"%.0f%%\", ($brightness / $max_brightness) * 100}")
# Output the result with color
echo "^c$ROSE^BRT: $brightness_percent"
}
# Function to get weighted average battery level
get_battery_level() {
# Get battery levels (adjust paths if needed)
battery0_level=$(cat /sys/class/power_supply/BAT0/capacity)
battery1_level=$(cat /sys/class/power_supply/BAT1/capacity)
battery0_energy_full=$(cat /sys/class/power_supply/BAT0/energy_full)
battery1_energy_full=$(cat /sys/class/power_supply/BAT1/energy_full)
# Calculate weights based on energy capacity
weight0=$(awk "BEGIN {printf \"%.2f\", $battery0_energy_full / ($battery0_energy_full + $battery1_energy_full)}")
weight1=$(awk "BEGIN {printf \"%.2f\", $battery1_energy_full / ($battery0_energy_full + $battery1_energy_full)}")
# Calculate weighted average
weighted_avg=$(awk "BEGIN {printf \"%.0f%%\", ($battery0_level * $weight0 + $battery1_level * $weight1)}")
# Output the result with color
echo "^c$LOVE^BAT: $weighted_avg"
}
# Function to get date and time in American 12-hour format
get_datetime() {
datetime=$(date +"%a %d %b %I:%M %p")
echo "^c$GOLD^$datetime"
}
# Function to detect if the system is a laptop
is_laptop() {
# Check if battery and brightness files exist
if [ -d /sys/class/power_supply/BAT0 ] && [ -d /sys/class/backlight/intel_backlight ]; then
return 0 # Laptop
else
return 1 # PC
fi
}
# Main loop to update xsetroot
while true; do
# Combine all status components
if is_laptop; then
# Include battery and brightness for laptops
status="$(get_volume) ^c$TEXT^| $(get_cpu_usage) ^c$TEXT^| $(get_memory_usage) ^c$TEXT^| $(get_brightness) ^c$TEXT^| $(get_battery_level) ^c$TEXT^| $(get_datetime)"
else
# Exclude battery and brightness for PCs
status="$(get_volume) ^c$TEXT^| $(get_cpu_usage) ^c$TEXT^| $(get_memory_usage) ^c$TEXT^| $(get_datetime)"
fi
# Update the root window name with a darker background
xsetroot -name "$status"
# Sleep for 250 milis before updating
sleep 0.25
done

View File

@@ -0,0 +1,6 @@
{pkgs, ...}: {
services.betterlockscreen = {
enable = true;
package = pkgs.betterlockscreen;
};
}

View File

@@ -0,0 +1,22 @@
#version 330
in vec2 texcoord;
uniform float opacity;
uniform bool invert_color;
uniform sampler2D tex;
vec4 window_shader() {
vec4 c = texelFetch(tex, ivec2(texcoord), 0);
{
// Change vec4(1.0, 1.0, 1.0, 1.0) to your desired color
vec4 vdiff = abs(vec4(0.0, 0.0, 0.0, 1.0) - c);
float diff = max(max(max(vdiff.r, vdiff.g), vdiff.b), vdiff.a);
// Change 0.8 to your desired opacity
if (diff < 0.001)
c *= 0;
}
if (invert_color)
c = vec4(vec3(c.a, c.a, c.a) - vec3(c), c.a);
c *= opacity;
// vec4 default_post_processing(vec4 c);
return c;
}

View File

@@ -0,0 +1,90 @@
{
lib,
config,
pkgs,
...
}: {
imports = [
./picom.nix
# ./rofi.nix
./flameshot.nix
./betterlockscreen.nix
./easyeffects.nix
# ./theming.nix
];
home.packages = with pkgs; [
dmenu
st
dunst
xss-lock
xdg-desktop-portal-gtk
xorg.xrdb
xorg.xrandr
xorg.xset
xorg.xsetroot
xorg.setxkbmap
xorg.xbacklight
xorg.libX11
xorg.libX11.dev
xorg.libxcb
xorg.libXft
xorg.libXinerama
xorg.xinit
xorg.xinput
brightnessctl
playerctl
qt6ct
xautolock
xclip
# gnome.gnome-keyring
feh
alsa-utils
nemo
pulseaudioFull
arandr
neomutt
ncmpcpp
ncspot
ncpamixer
lf
pamixer
w3m
bat
efibootmgr
eww
fontconfig
freetype
gnugrep
gparted
nfs-utils
openssl
polkit_gnome
ripgrep
stdenv
tldr
variety
virt-manager
xfce.thunar
dconf
xidlehook
];
home.file = {
".xinitrc" = {
source = ./.xinitrc;
};
".zprofile" = {
source = ./.zprofile;
};
".config/bar.sh" = {
source = ./bar.sh;
};
# ".Xresources" = {
# text = ''
# Xcursor.theme: "Bibata-Modern-Classic"
# Xcursor.size: 18
# '';
# };
};
}

View File

@@ -0,0 +1,5 @@
{pkgs, ...}: {
services.easyeffects = {
enable = true;
};
}

View File

@@ -0,0 +1,10 @@
{pkgs, ...}: {
services.flameshot = {
enable = true;
settings = {
General = {
showStartupLaunchMessage = false;
};
};
};
}

View File

@@ -0,0 +1,257 @@
# Animations for NORMAL windows.
{
match = "window_type = 'normal'";
animations = (
{
triggers = ["close", "hide"];
opacity = {
curve = "linear";
duration = 0.1;
start = "window-raw-opacity-before";
end = 0;
};
blur-opacity = "opacity";
shadow-opacity = "opacity";
},
{
triggers = ["open", "show"];
opacity = {
curve = "cubic-bezier(0,1,1,1)";
duration = 0.5;
start = 0;
end = "window-raw-opacity";
};
blur-opacity = "opacity";
shadow-opacity = "opacity";
offset-x = "(1 - scale-x) / 2 * window-width";
offset-y = "(1 - scale-y) / 2 * window-height";
scale-x = {
curve = "cubic-bezier(0,1.3,1,1)";
duration = 0.5;
start = 0.6;
end = 1;
};
scale-y = "scale-x";
shadow-scale-x = "scale-x";
shadow-scale-y = "scale-y";
shadow-offset-x = "offset-x";
shadow-offset-y = "offset-y";
},
{
triggers = ["geometry"];
scale-x = {
curve = "cubic-bezier(0,0,0,1.15)";
duration = 0.5;
start = "window-width-before / window-width";
end = 1;
}
scale-y = {
curve = "cubic-bezier(0,0,0,1.15)";
duration = 0.5;
start = "window-height-before / window-height";
end = 1;
}
# offset-x = {
# curve = "cubic-bezier(0,0,0,1.15)";
# duration = 0.5;
# start = 0;
# end = 0;
# }
# offset-y = {
# curve = "cubic-bezier(0,0,0,1.15)";
# duration = 0.3;
# start = "window-height";
# end = 0;
# }
# offset-x = {
# curve = "cubic-bezier(0,0,0,1.15)";
# duration = 0.3;
# start = "window-x-before - window-monitor-x - window-x";
# end = 0;
# }
offset-y = {
curve = "cubic-bezier(0,0,0,1.15)";
duration = 0.3;
start = "window-height / 2";
end = 0;
}
shadow-scale-x = "scale-x";
shadow-scale-y = "scale-y";
# shadow-offset-x = "offset-x";
shadow-offset-y = "offset-y";
}
)
},
# Animations for Rofi launchers.
{
match = "class_g = 'Rofi'";
animations = (
{
triggers = ["close", "hide"];
preset = "disappear";
duration = 0.05;
scale = 0.5;
},
{
triggers = ["open", "show"];
preset = "appear";
duration = 0.2;
scale = 0.5;
}
)
},
# Animations for Flameshot.
{
match = "class_g = 'flameshot'";
animations = (
{
triggers = ["close", "hide"];
preset = "disappear";
duration = 0.1;
scale = 1;
},
{
triggers = ["open", "show"];
preset = "appear";
duration = 0.1;
scale = 1;
}
)
},
# Animations for Dunst notifications.
{
match = "class_g = 'Dunst'";
animations = (
{
triggers = ["close", "hide"];
preset = "fly-out"; #-dunst-close-preset
direction = "up"; #-dunst-close-direction
duration = 0.2;
},
{
triggers = ["open", "show"];
preset = "fly-in"; #-dunst-open-preset
direction = "up"; #-dunst-open-direction
duration = 0.2;
}
)
},
# # Animations for Jgmenu.
# {
# match = "class_g = 'jgmenu'";
# animations = (
# {
# triggers = ["close", "hide"];
# preset = "disappear";
# duration = 0.08;
# scale = 0.5;
# },
# {
# triggers = ["open", "show"];
# preset = "appear";
# duration = 0.15;
# scale = 0.5;
# }
# )
# },
#
# # Animations for Scratchpad.
# {
# match = "class_g = 'Scratch'";
# animations = (
# {
# triggers = ["close", "hide"];
# preset = "fly-out";
# direction = "up";
# duration = 0.2;
# },
# {
# triggers = ["open", "show"];
# preset = "fly-in";
# direction = "up";
# duration = 0.2;
# }
# )
# },
#
# # Animations for Eww Profile card.
# {
# match = "name = 'Eww - launchermenu'";
# animations = (
# {
# triggers = ["close", "hide"];
# preset = "slide-out";
# direction = "right";
# duration = 0.2;
# },
# {
# triggers = ["open", "show"];
# preset = "slide-in";
# direction = "right";
# duration = 0.2;
# }
# )
# },
#
# # Animations for Eww Music player.
# {
# match = "name = 'Eww - music'";
# animations = (
# {
# triggers = ["close", "hide"];
# preset = "slide-out";
# direction = "up";
# duration = 0.2;
# },
# {
# triggers = ["open", "show"];
# preset = "slide-in";
# direction = "up";
# duration = 0.2;
# }
# )
# },
#
# # Animations for Eww calendar.
# {
# match = "name = 'Eww - date'";
# animations = (
# {
# triggers = ["close", "hide"];
# preset = "fly-out";
# direction = "up";
# duration = 0.2;
# },
# {
# triggers = ["open", "show"];
# preset = "fly-in";
# direction = "up";
# duration = 0.2;
# }
# )
# },
#
# # Animations for Eww Cheatsheet.
# {
# match = "name = 'Eww - csheet'";
# animations = (
# {
# triggers = ["close", "hide"];
# preset = "disappear";
# duration = 0.08;
# scale = 0.5;
# },
# {
# triggers = ["open", "show"];
# preset = "appear";
# duration = 0.15;
# scale = 0.5;
# }
# )
# }

146
home-manager/dwm/picom.conf Normal file
View File

@@ -0,0 +1,146 @@
## ----- Shadows ----- ##
shadow = true;
shadow-radius = 7;
#shadow-opacity = .6
shadow-offset-x = -7;
shadow-offset-y = -7;
shadow-color = "#000000"
## ----- Fading ----- ##
fading = true;
fade-in-step = 0.03;
fade-out-step = 0.03;
fade-delta = 5
no-fading-openclose = false
no-fading-destroyed-argb = false
## ----- Transparency ----- ##
frame-opacity = 1.0;
# inactive-dim-fixed = true
## ----- Corners ----- ##
corner-radius = 10
#################################
# General Settings #
#################################
# Available backends "xrender" "glx" "egl"
backend = "glx"
dithered-present = false;
vsync = true;
detect-rounded-corners = true;
detect-client-opacity = true;
detect-transient = true;
use-damage = true;
# xrender-sync-fence = false
# transparent-clipping = false
#################################
# Rules #
#################################
blur:
{
method = "gaussian";
size = 90;
deviation = 30;
}
rules: (
{
blur-background = false;
fade = false;
},
{
match = "window_type = 'normal'";
fade = true; #-fade-switch
shadow = true; #-shadow-switch
},
{
match = "window_type = 'dialog'";
shadow = true; #-shadow-switch
},
{
match = "window_type = 'tooltip'";
corner-radius = 0;
opacity = 0.90;
},
{
match = "window_type = 'dock'";
corner-radius = 0;
fade = true;
},
{
match = "window_type = 'dropdown_menu' || window_type = 'menu' || window_type = 'popup' || window_type = 'popup_menu'";
corner-radius = 0;
},
{
match = "class_g = 'Alacritty' || class_g = 'kitty' || class_g = 'FloaTerm'";
opacity = 0.95; #-term-opacity-switch
blur-background = true; #-blur-switch
},
{
match = "class_g = 'Scratch' || class_g = 'Updating'";
opacity = 0.93;
blur-background = false; #-blur-switch
},
{
match = "class_g = 'Polybar' || "
"class_g = 'eww-bar' || "
"class_g = 'Viewnior' || "
"class_g = 'Rofi' || "
"class_g = 'mpv' || "
"class_g = 'scratch' || "
"class_g = 'Dunst' || "
"class_g = 'retroarch'";
corner-radius = 0;
},
{
match = "name = 'Notification' || "
"class_g ?= 'Notify-osd' || "
"class_g = 'Dunst' || "
"class_g = 'Polybar' || "
"class_g = 'jgmenu' || "
"class_g = 'scratch' || "
"class_g = 'Spotify' || "
"class_g = 'retroarch' || "
"class_g = 'firefox' || "
"class_g = 'Rofi' || "
"class_g = 'Screenkey' || "
"class_g = 'mpv' || "
"class_g = 'Viewnior' || "
"_GTK_FRAME_EXTENTS@";
shadow = false;
},
{
match = "class_g = 'i3lock'";
shader = "black_to_transparent.frag";
blur-background = true;
},
@include "picom-animations.conf"
)

117
home-manager/dwm/picom.nix Normal file
View File

@@ -0,0 +1,117 @@
{
lib,
config,
pkgs,
...
}: {
# home.file = {
# ".config/picom/picom.conf" = {
# text = builtins.readFile ./picom.conf;
# };
#
# ".config/picom/picom-animations.conf" = {
# text = builtins.readFile ./picom-animations.conf;
# };
#
# ".config/picom/black_to_transparent.frag" = {
# text = builtins.readFile ./black_to_transparent.frag;
# };
# };
home.packages = with pkgs; [
picom
];
# services.picom = {
# enable = true;
# package = pkgs.picom;
# backend = "glx";
#
# shadow = true;
# shadowOpacity = 0.2;
# shadowOffsets = [1 1];
#
# shadowExclude = [
# "name = 'Notification'"
# "class_g = 'Conky'"
# "_GTK_FRAME_EXTENTS@:c"
# "override_redirect = 1 && !WM_CLASS@:s"
# "class_g ?= 'Dmenu'"
# "class_g ?= 'Dunst'"
# "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
# "_GTK_FRAME_EXTENTS@:c"
# "_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'"
# "class_g ?= 'i3-frame'"
# "class_g = 'Rofi'"
# ];
#
# fade = true;
# fadeSteps = [0.08 0.05];
#
# vSync = true;
#
# settings = {
# shadow = {
# radius = 3;
# };
#
# corner-radius = 9;
# rounder-corners-exclude = [
# "window_type = 'dock'"
# "window_type = 'desktop'"
# "class_g = 'Dunst'"
# ];
#
# blur = {
# method = "dual_kawase";
# strength = 10;
# background = false;
# background-frame = false;
# background-fixed = false;
# };
#
# blur-kern = "3x3box";
#
# # xprop | grep -i 'class'
# opacity-rule = [
# "90:class_g = 'neovide'"
# "90:class_g = 'code-oss'"
# "90:class_g = 'discord'"
# "90:class_g = 'Emacs'"
# "90:class_g = 'TelegramDesktop'"
# "90:class_g = 'Spotify'"
# "90:class_g = 'easyeffects'"
# "90:class_g = 'kitty'"
# "90:class_g = 'Nemo'"
# "97:class_g = 'firefox'"
# ];
#
# # Exclude conditions for background blur.
# # blur-background-exclude = []
# blur-background-exclude = [
# "window_type = 'dock'"
# "window_type = 'desktop'"
# "_GTK_FRAME_EXTENTS@:c"
# ];
#
# mark-wmwin-focused = true;
# mark-ovredir-focused = true;
# detect-rounded-corners = true;
# detect-client-opacity = true;
# unredir-if-possible = false;
# detect-transient = true;
# detect-client-leader = true;
# use-damage = true;
#
# window-shader-fg-rule = [
# # "black_to_transparent.frag:class_g = 'stalonetray'",
# # "black_to_transparent.frag:class_g = 'Minecraft 1.7.10'",
# # "black_to_transparent.frag:class_g = 'i3lock'"
# # "black_to_transparent.frag:focused = true"
# # "black_to_transparent.frag:focused != true",
# #"sphere.glsl:focused != true"
# #"nordify.glsl:class_g = 'miru'"
# ];
# };
# };
}

View File

@@ -0,0 +1,54 @@
{
lib,
config,
pkgs,
...
}: {
# enable gtk
gtk = {
enable = true;
cursorTheme = {
name = "Bibata-Modern-Classic";
package = pkgs.bibata-cursors;
};
theme = {
name = "gruvbox-dark";
package = pkgs.gruvbox-dark-gtk;
};
iconTheme = {
name = "oomox-gruvbox-dark";
package = pkgs.gruvbox-dark-icons-gtk;
};
};
# enable qt
qt = {
enable = true;
platformTheme = "qtct";
style = {
name = "kvantum";
};
};
xdg.configFile = {
"Kvantum/kvantum.kvconfig".text = ''
[General]
theme=GraphiteNordDark
'';
"Kvantum/GraphiteNord".source = "${pkgs.graphite-kde-theme}/share/Kvantum/GraphiteNord";
};
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
size = 18;
};
xsession.pointerCursor = {
name = "Bibata-Modern-Classic";
size = 18;
};
}

95
home-manager/home.nix Normal file
View File

@@ -0,0 +1,95 @@
# This is your home-manager configuration file
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
{
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
# You can import other home-manager modules here
imports = [
# If you want to use modules your own flake exports (from modules/home-manager):
# outputs.homeManagerModules.example
# Or modules exported from other flakes (such as nix-colors):
# inputs.nix-colors.homeManagerModules.default
# You can also split up your configuration and import pieces of it here:
# ./nvim.nix
./programs/btop.nix
./programs/fastfetch.nix
# ./programs/foot.nix
./programs/git.nix
./programs/gpg.nix
./programs/helix.nix
./programs/kitty.nix
./programs/neovide.nix
./programs/neovim.nix
./programs/packages.nix
./programs/shell.nix
./programs/tmux.nix
./programs/vscodium.nix
./dwm
# ./programs/yazi.nix
# ./programs/zathura.nix
# ./configs/keys.nix
./system/dunst.nix
# ./system/hypr.nix
# ./system/hyprland.nix
./system/rofi.nix
./system/stylix.nix
./system/theme.nix
./system/waybar.nix
./system/wlsunset.nix
./system/wofi.nix
];
nixpkgs = {
# You can add overlays here
overlays = [
# Add overlays your own flake exports (from overlays and pkgs dir):
outputs.overlays.additions
outputs.overlays.modifications
outputs.overlays.unstable-packages
# You can also add overlays exported from other flakes:
# neovim-nightly-overlay.overlays.default
# Or define it inline, for example:
# (final: prev: {
# hi = final.hello.overrideAttrs (oldAttrs: {
# patches = [ ./change-hello-to-hi.patch ];
# });
# })
];
# Configure your nixpkgs instance
config = {
# Disable if you don't want unfree packages
allowUnfree = true;
};
};
home = {
username = "mike";
homeDirectory = "/home/mike";
};
# Add stuff for your user as you see fit:
# programs.neovim.enable = true;
# home.packages = with pkgs; [ steam ];
# Enable home-manager and git
programs.home-manager.enable = true;
programs.git.enable = true;
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "24.11";
}

View File

@@ -2,7 +2,6 @@
programs.fastfetch = {
enable = true;
settings = {
"$schema" = "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json";
logo = {
@@ -119,4 +118,3 @@
};
};
}

View File

@@ -23,5 +23,4 @@
push.gpgsign = "if-asked";
};
};
}

View File

@@ -14,4 +14,3 @@
# '';
# };
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.helix = {
enable = true;
@@ -9,7 +8,6 @@
languages = {
language = [
{
name = "nix";
auto-format = true;
@@ -74,7 +72,6 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
language-servers = {
nil = {command = "${pkgs.nixd}/bin/nixd";};
rust-analyzer = {

View File

@@ -0,0 +1,20 @@
{
inputs,
pkgs,
...
}: {
# programs.neovim = {
# enable = true;
# # package = pkgs.neovim;
# # viAlias = true;
# # vimAlias = true;
# # vimdiffAlias = true;
# # defaultEditor = true;
# };
home.packages = with pkgs; [
neovim
];
}

View File

@@ -1,5 +1,8 @@
{ inputs, pkgs, ... }:
{
inputs,
pkgs,
...
}: {
programs.direnv.enable = true;
programs.direnv.nix-direnv.enable = true;
@@ -47,29 +50,31 @@
okular
# > desktop < #
# firefox
telegram-desktop
google-chrome
chromium
firefox
httrack
# whatsapp-for-linux
# telegram-desktop
kotatogram-desktop
# google-chrome
# chromium
brave
evolution
obsidian
foliate
helio-workstation
keepassxc
# vesktop
equibop
inputs.zen-browser.packages."${system}".default
# inputs.zen-browser.packages."${system}".default
papers
# > gaming < #
prismlauncher
classicube
steam
# > development < #
podman
podman-compose
android-studio
seahorse
platformio
iwgtk
imv
feh
@@ -82,7 +87,7 @@
qalculate-gtk
file-roller
vim
nixfmt-rfc-style
# nixfmt-rfc-style
nemo
nixd
glfw-wayland-minecraft

View File

@@ -40,7 +40,6 @@
};
settings = {
content = {
autoplay = false;
javascript.clipboard = "access";

View File

@@ -1,10 +1,6 @@
{ pkgs
, ...
}:
let
{pkgs, ...}: let
cli = import ../configs/aliases.nix;
in
{
in {
programs = {
zoxide.enable = true;

View File

@@ -0,0 +1,74 @@
{pkgs, ...}: {
programs.vscode = {
enable = true;
package = pkgs.vscode.fhsWithPackages (
ps:
with ps; [
rustup
zlib
openssl.dev
pkg-config
# nixfmt-rfc-style
python3
]
);
# extensions = with pkgs.vscode-extensions; [
# ms-python.python
# ms-python.debugpy
# jnoortheen.nix-ide
# mkhl.direnv
# arrterian.nix-env-selector
# mvllow.rose-pine
# github.copilot
# # github.copilot-chat
# ms-vsliveshare.vsliveshare
# rust-lang.rust-analyzer
# ];
#
# userSettings = {
# "editor.fontSize" = 16;
# "editor.fontFamily" = "FiraCode Nerd Font";
# "explorer.confirmDelete" = false;
# "disable-hardware-acceleration" = true;
# "explorer.confirmDragAndDrop" = true;
# "git.openRepositoryInParentFolders" = "never";
#
# "[python]" = {
# "editor.defaultFormatter" = "ms-python.black-formatter";
# "editor.formatOnSave" = true;
# };
#
# "nix.enableLanguageServer" = true;
# "nix.serverPath" = "${pkgs.nixd}/bin/nixd";
# "nix.serverSettings" = {
# "nixd" = {
# "formatting" = {
# "command" = ["${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt"];
# };
# "nixpkgs" = {
# "expr" = "import <nixpkgs> { }";
# "options" = {
# "nixos" = {
# "expr" = ''(builtins.getFlake "/home/mike/.files").nixosConfigurations.zion.options'';
# };
# };
# };
# };
# };
#
# "editor.formatOnSave" = true;
#
# "editor.fontLigatures" = true;
# "editor.formatOnPaste" = true;
# "editor.minimap.enabled" = false;
#
# # "symbols.hidesExplorerArrows" = false;
#
# "workbench.iconTheme" = "rose-pine-icons";
# "workbench.colorTheme" = "Rosé Pine";
# "workbench.preferredDarkColorTheme" = "Rosé Pine";
# "workbench.preferredHighContrastColorTheme" = "Rosé Pine";
# };
};
}

View File

@@ -0,0 +1,8 @@
{pkgs, ...}: {
home.packages = with pkgs; [libnotify];
services.dunst = {
enable = true;
package = pkgs.dunst;
};
}

View File

@@ -0,0 +1,11 @@
{
lib,
pkgs,
inputs,
hostname,
...
}: {
home.packages = with pkgs; [
hypr
];
}

View File

@@ -1,5 +1,12 @@
{ pkgs, inputs, ... }:
{
lib,
pkgs,
inputs,
config,
...
}: let
hostname = "zion";
in {
# ------------------------------------------------
# Needed Packages
# ------------------------------------------------
@@ -21,6 +28,9 @@
wev
wlr-randr
wdisplays
wl-clipboard
# wl-copy
# wl-paste
# wf-recorder
# wl-screenrec
@@ -265,6 +275,7 @@
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=, preferred, auto, 1
monitor=HDMI-A-1, preferred, 0x360, 1
monitor=DP-1, highrr, 4480x0, 1
monitor=DP-2, highrr, 1920x0, 1
@@ -280,7 +291,7 @@
$terminal = kitty
$fileManager = nemo
$menu = rofi -show drun
$lock = $HOME/.config/hypr/lock.sh
$lock = pidof hyprlock || hyprlock
$editor = zed
$browser = zen-browser
$picker = hyprpicker -a -f hex
@@ -329,6 +340,7 @@
# Wayland enforce
env = QT_QPA_PLATFORM,wayland
# env = QT_QPA_PLATFORM,wayland;xcb
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_DESKTOP,Hyprland
@@ -529,6 +541,12 @@
bind = $mainMod, T, togglefloating
bind = $mainMod, mouse:274, togglefloating
# Super Rat Binds
bind = , mouse:277, exec, amixer set Master playback 2%+
bind = , mouse:278, exec, amixer set Master playback 2%-
# bind = , mouse:279, exec,
bind = , mouse:280, exec, amixer set Capture toggle
# Move focus with mainMod + vim keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
@@ -628,10 +646,8 @@
windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$
windowrulev2 = noblur,class:^(xwaylandvideobridge)$
'';
};
#################################
# Hyprpaper
#################################
@@ -657,8 +673,9 @@
after_sleep_cmd = "hyprctl dispatch dpms on";
};
listener = [
listener =
if hostname == "zion"
then [
# {
# timeout = 60;
# on-timeout = "brightnessctl -sd asus::kbd_backlight set 0";
@@ -698,7 +715,37 @@
# on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
# on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
# }
];
]
else if hostname == "thor"
then [
{
timeout = 450;
on-timeout = "brightnessctl -s set 0";
on-resume = "brightnessctl -r";
}
{
timeout = 600;
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed
}
{
timeout = 750;
on-timeout = "hyprctl dispatch dpms off ";
on-resume = "hyprctl dispatch dpms on";
}
{
timeout = 900;
on-timeout = "systemctl suspend";
}
{
timeout = 1500;
on-timeout = "systemctl hibernate";
}
]
else [];
};
};
@@ -708,8 +755,7 @@
programs.hyprlock = {
enable = true;
settings = {
settings = lib.mkForce {
general = {
grace = 5;
no_fade_in = true;

View File

@@ -1,4 +1,8 @@
{ lib, pkgs, ... }: {
{
lib,
pkgs,
...
}: {
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;

View File

@@ -1,5 +1,8 @@
{ inputs, pkgs, ... }:
{
inputs,
pkgs,
...
}: {
imports = [inputs.stylix.homeManagerModules.stylix];
#qt = {
@@ -62,16 +65,19 @@
};
monospace = {
# package = pkgs.nerd-fonts.droid-sans-mono;
package = pkgs.nerdfonts.override {fonts = ["DroidSansMono"];};
name = "DroidSansMono";
};
sansSerif = {
# package = pkgs.nerd-fonts.droid-sans-mono;
package = pkgs.nerdfonts.override {fonts = ["DroidSansMono"];};
name = "DroidSansMono";
};
serif = {
# package = pkgs.nerd-fonts.droid-sans-mono;
package = pkgs.nerdfonts.override {fonts = ["DroidSansMono"];};
name = "DroidSansMono";
};

View File

@@ -0,0 +1,34 @@
{
lib,
pkgs,
inputs,
...
}: let
in {
qt = {
enable = true;
platformTheme.name = "qtct";
style = {
name = "kvantum";
};
};
xdg.configFile = {
# "Kvantum/kvantum.kvconfig".text = ''
# [General]
# theme=GraphiteNordDark
# '';
# "Kvantum/GraphiteNord".source = "${pkgs.graphite-kde-theme}/share/Kvantum/GraphiteNord";
"Kvantum/kvantum.kvconfig".text = ''
[General]
theme=rosepine-kvantum
'';
"Kvantum/rosepine-kvantum".source = "${
inputs.rosepine-kvantum.packages.${pkgs.system}.default
}/share/Kvantum/rosepine-kvantum";
# "Kvantum/rosepine".source = ../configs/Kvantum/rosepine-kvantum;
};
}

View File

@@ -30,7 +30,6 @@
prompt-color = "#f38ba8";
selection-color = "#f9e2af";
background-color = "#1a1b26";
};
};
}

View File

@@ -0,0 +1,575 @@
{pkgs, ...}: {
programs.waybar = {
enable = true;
package = pkgs.waybar.overrideAttrs (oa: {mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];});
settings.mainBar = {
layer = "top"; # Waybar at top layer
height = 32; # Waybar height (to be removed for auto height)
spacing = 0; # Gaps between modules (4px)
position = "top";
margin = "10 20 0";
# Choose the order of the modules
modules-left = [
"hyprland/workspaces"
"custom/media"
];
modules-center = ["hyprland/window"];
modules-right = [
"mpris"
# "idle_inhibitor",
"pulseaudio"
# "network",
"cpu"
"memory"
# "temperature",
"backlight"
# "keyboard-state",
"battery"
"clock"
"tray"
];
# Modules configuration
# sway/workspaces = {
# "disable-scroll = true,
# "all-outputs = true,
# "warp-on-scroll = false,
# "format = "{name}: {icon}",
# "format-icons = {
# "1 = "",
# "2 = "",
# "3 = "",
# "4 = "",
# "5 = "",
# "urgent = "",
# "focused = "",
# "default = ""
# }
# },
"hyprland/workspaces" = {
active-only = false;
format = "{icon}";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"7" = "";
"8" = "";
"9" = "";
"10" = "";
"11" = "";
"12" = "";
"13" = "";
"14" = "";
"15" = "";
"16" = "";
"17" = "";
"18" = "";
"19" = "";
"20" = "";
"21" = "";
"22" = "";
"23" = "";
"24" = "";
"25" = "";
"26" = "";
"27" = "";
"28" = "";
"29" = "";
"30" = "";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
persistent-workspaces = {
HDMI-A-1 = [1 2 3 4 5 6 7 8 9 10];
DP-1 = [11 12 13 14 15 16 17 18 19 20];
DP-2 = [21 22 23 24 25 26 27 28 29 30];
};
};
keyboard-state = {
numlock = false;
capslock = true;
format = "{name} {icon}";
format-icons = {
locked = "";
unlocked = "";
};
};
"sway/mode" = {
format = "<span style=\"italic\">{}</span>";
};
"sway/scratchpad" = {
format = "{icon} {count}";
show-empty = false;
format-icons = ["" ""];
tooltip = true;
tooltip-format = "{app}: {title}";
};
mpris = {
interval = 1;
format = "{player_icon} {status_icon}";
format-paused = "{player_icon} {status_icon}";
tooltip-format = "{player_icon} {dynamic}";
tooltip-format-paused = "{player_icon} {dynamic}";
player-icons = {
default = "󰎄";
mpv = "󰝚";
vlc = "󰕼";
spotify = "";
};
status-icons = {
playing = "";
paused = "";
stopped = "";
};
# "ignored-players = ["firefox"]
};
mpd = {
format = "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) {songPosition}|{queueLength} {volume}% ";
format-disconnected = "Disconnected ";
format-stopped = "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ";
unknown-tag = "N/A";
interval = 2;
consume-icons = {
on = " ";
};
random-icons = {
off = "<span color=\"#f53c3c\"></span> ";
on = " ";
};
repeat-icons = {
on = " ";
};
single-icons = {
on = "1 ";
};
state-icons = {
paused = "";
playing = "";
};
tooltip-format = "MPD (connected)";
tooltip-format-disconnected = "MPD (disconnected)";
};
idle_inhibitor = {
format = "{icon}";
format-icons = {
activated = "󰅶";
deactivated = "󰾪";
};
};
tray = {
# "icon-size = 21,
spacing = 10;
show-passive-items = true;
};
clock = {
format = "{:%b %d %I:%M %p}";
tooltip-format = "<big>{:%d %B %Y}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = "{:%Y-%m-%d %I:%M %p}";
};
cpu = {
format = "{usage}% ";
tooltip = false;
};
memory = {
format = "{}% ";
};
temperature = {
# "thermal-zone = 2,
# "hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input",
critical-threshold = 80;
# "format-critical = "{temperatureC}°C {icon}",
format = "{temperatureC}°C {icon}";
format-icons = ["" "" " "];
};
backlight = {
# "device = "acpi_video1",
format = "{percent}% {icon}";
format-icons = ["" "" "" "" "" "" "" "" ""];
};
battery = {
# bat = "BAT0";
states = {
good = 95;
warning = 30;
critical = 15;
};
format = "{capacity}% {icon}";
format-charging = "{capacity}% ";
format-plugged = "{capacity}% ";
format-alt = "{time} {icon}";
# "format-good = "", # An empty format will hide the module
# "format-full = "",
format-icons = ["" "" "" "" ""];
interval = 10;
weighted-average = true;
};
network = {
# "interface = "wlp2*", # (Optional) To force the use of this interface
format-wifi = "{essid} ({signalStrength}%) ";
format-ethernet = "{ipaddr}/{cidr} 󰈀";
tooltip-format = "{ifname} via {gwaddr} ";
format-linked = "{ifname} (No IP) ";
format-disconnected = "Disconnected ";
format-alt = "{ifname}: {ipaddr}/{cidr}";
on-click-right = "kitty nmtui";
};
pulseaudio = {
# "scroll-step = 1, # %, can be a float
format = "{volume}% {icon} {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = "󰝟 {icon} {format_source}";
format-muted = "󰝟 {format_source}";
format-source = " {volume}% ";
format-source-muted = " ";
format-icons = {
headphone = "󰋋";
hands-free = "󰟅";
headset = "󰋎";
phone = "";
portable = "";
car = "";
default = ["" "" ""];
};
on-click = "pavucontrol";
};
"custom/media" = {
format = "{icon} {}";
return-type = "json";
max-length = 40;
format-icons = {
spotify = "";
default = "🎜";
};
escape = true;
exec = "$HOME/.config/waybar/mediaplayer.py 2> /dev/null"; # Script in resources folder
# exec = "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" # Filter player based on name
};
"custom/archicon" = {
format = "󰣇";
# "on-click":"nwg-menu -d -fm nemo -cmd-lock gtklock -va top",
on-click = "jgmenu_run";
tooltip = false;
};
};
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# CSS Styling
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
style = ''
/*
* Variant: Rosé Pine
* Maintainer: DankChoir
*/
@define-color base #191724;
@define-color surface #1f1d2e;
@define-color overlay #26233a;
@define-color muted #6e6a86;
@define-color subtle #908caa;
@define-color text #e0def4;
@define-color love #eb6f92;
@define-color gold #f6c177;
@define-color rose #ebbcba;
@define-color pine #31748f;
@define-color foam #9ccfd8;
@define-color iris #c4a7e7;
@define-color highlightLow #21202e;
@define-color highlightMed #403d52;
@define-color highlightHigh #524f67;
* {
font-family: "JetBrainsMono Nerd Font", FontAwesome, Roboto, Helvetica,
Arial, sans-serif;
font-size: 16px;
}
window#waybar {
background-color: @surface;
color: @text;
transition-property: background-color;
transition-duration: 0.5s;
border-radius: 10px;
}
window#waybar.hidden {
opacity: 0.2;
}
/*
window#waybar.empty {
background-color: transparent;
}
window#waybar.solo {
background-color: #FFFFFF;
}
*/
/*window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}*/
#workspaces button {
box-shadow: inset 0 -3px transparent;
padding: 0 8px;
background-color: @base;
color: @text;
border: none;
border-radius: 0;
font-weight: 800;
}
#workspaces button:first-child {
border-radius: 10px 0 0 10px;
}
#workspaces button:last-child {
border-radius: 0 10px 10px 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
background-color: @overlay;
/* box-shadow: inset 0 -100px 0 -97px @bright-yellow; */
}
#workspaces button.empty {
color: @muted;
box-shadow: inherit;
text-shadow: inherit;
}
#workspaces button.active {
color: @gold;
box-shadow: inset 0 -100px 0 -97px @bright-yellow;
text-shadow: inherit;
}
#workspaces button.focused {
background-color: @overlay;
color: @text;
/* box-shadow: inset 0 -100px 0 -97px @bright-yellow; */
}
#workspaces button.urgent {
background-color: @love;
color: @base;
}
#mode {
background-color: @overlay;
border-bottom: 3px solid @gold;
}
#cava,
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#pulseaudio.muted,
#pulseaudio.bluetooth,
#wireplumber,
#custom-media,
#tray,
#mpris,
#keyboard-state,
#mode,
#battery,
#idle_inhibitor,
#scratchpad,
#mpd {
padding: 0 10px;
color: @text;
}
#window,
#workspaces {
margin: 0 4px;
padding-top: 0px;
}
.modules-right {
background-color: @overlay;
border-radius: 10px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#mpris {
color: @gold;
}
#clock {
color: @gold;
}
#battery {
color: @foam;
}
#battery.charging,
#battery.plugged {
color: #d3869b;
}
@keyframes blink {
to {
background-color: #fbf1c7;
color: #df3f71;
}
}
#battery.critical:not(.charging) {
background-color: #282828;
color: #d3869b;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
background-color: #000000;
}
#backlight {
color: #458588;
}
#temperature {
color: #fabd2f;
}
#temperature.critical {
background-color: #fbf1c7;
color: #b57614;
}
#cpu {
color: @foam;
}
#memory {
color: @iris;
}
#network {
color: @foam;
}
#network.disconnected {
background-color: @love;
color: @base;
}
/*#disk {
background-color: #964B00;
}*/
#pulseaudio,
#pulseaudio.muted,
#pulseaudio.bluetooth {
color: @pine;
}
#tray {
}
#tray > .needs-attention {
background-color: @love;
color: @base;
}
#idle_inhibitor {
background-color: #282828;
color: #ebdbb2;
}
#idle_inhibitor.activated {
background-color: #fbf1c7;
color: #3c3836;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
#language {
background: #00b093;
color: #740864;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state > label {
padding: 0 5px;
}
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}
'';
};
}

View File

Before

Width:  |  Height:  |  Size: 1024 KiB

After

Width:  |  Height:  |  Size: 1024 KiB

View File

Before

Width:  |  Height:  |  Size: 4.0 MiB

After

Width:  |  Height:  |  Size: 4.0 MiB

View File

@@ -1,43 +0,0 @@
{ hostname, ... }:
{
imports =
if hostname == "zion" then
[
./programs/btop.nix
./programs/fastfetch.nix
# ./programs/foot.nix
./programs/git.nix
./programs/gpg.nix
./programs/helix.nix
./programs/kitty.nix
./programs/neovide.nix
./programs/neovim.nix
./programs/packages.nix
./programs/shell.nix
./programs/tmux.nix
./programs/vscodium.nix
# ./programs/yazi.nix
# ./programs/zathura.nix
# ./configs/keys.nix
./system/dunst.nix
./system/hyprland.nix
./system/rofi.nix
./system/stylix.nix
./system/theme.nix
./system/waybar.nix
./system/wlsunset.nix
./system/wofi.nix
]
else if hostname == "server" then
[
./programs/git.nix
./programs/btop.nix
./programs/yazi.nix
./programs/shell.nix
./programs/helix.nix
./programs/fastfetch.nix
]
else [ ];
}

View File

@@ -1,15 +0,0 @@
{ inputs
, pkgs
, ...
}: {
programs.neovim = {
enable = true;
# package = pkgs.neovim;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
defaultEditor = true;
};
}

View File

@@ -1,74 +0,0 @@
{ pkgs, ... }: {
programs.vscode = {
enable = true;
package = pkgs.vscodium.fhsWithPackages (ps: with ps; [
rustup
zlib
openssl.dev
pkg-config
nixfmt-rfc-style
python3
]);
extensions = with pkgs.vscode-extensions; [
ms-python.python
ms-python.debugpy
jnoortheen.nix-ide
mkhl.direnv
arrterian.nix-env-selector
mvllow.rose-pine
github.copilot
# github.copilot-chat
ms-vsliveshare.vsliveshare
rust-lang.rust-analyzer
];
userSettings = {
"editor.fontSize" = 16;
"editor.fontFamily" = "FiraCode Nerd Font";
"explorer.confirmDelete" = false;
"disable-hardware-acceleration" = true;
"explorer.confirmDragAndDrop" = true;
"git.openRepositoryInParentFolders" = "never";
"[python]" = {
"editor.defaultFormatter" = "ms-python.black-formatter";
"editor.formatOnSave" = true;
};
"nix.enableLanguageServer" = true;
"nix.serverPath" = "${pkgs.nixd}/bin/nixd";
"nix.serverSettings" = {
"nixd" = {
"formatting" = {
"command" = [ "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt" ];
};
"nixpkgs" = {
"expr" = "import <nixpkgs> { }";
"options" = {
"nixos" = {
"expr" = ''
(builtins.getFlake "/home/mike/.files").nixosConfigurations.zion.options'';
};
};
};
};
};
"editor.formatOnSave" = true;
"editor.fontLigatures" = true;
"editor.formatOnPaste" = true;
"editor.minimap.enabled" = false;
# "symbols.hidesExplorerArrows" = false;
"workbench.iconTheme" = "rose-pine-icons";
"workbench.colorTheme" = "Rosé Pine";
"workbench.preferredDarkColorTheme" = "Rosé Pine";
"workbench.preferredHighContrastColorTheme" = "Rosé Pine";
};
};
}

View File

@@ -1,25 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [ libnotify ];
services.dunst = {
enable = true;
package = pkgs.dunst;
settings = {
global = {
follow = "mouse";
width = "0 , 600";
height = "400";
origin = "top-center";
offset = "0x10";
};
fullscreen_delay_everything = {
fullscreen = "delay";
};
};
};
}

View File

@@ -1,23 +0,0 @@
{
lib,
config,
pkgs,
...
}: {
qt = {
enable = true;
platformTheme = "qtct";
style = {
name = "kvantum";
};
};
xdg.configFile = {
"Kvantum/kvantum.kvconfig".text = ''
[General]
theme=GraphiteNordDark
'';
"Kvantum/GraphiteNord".source = "${pkgs.graphite-kde-theme}/share/Kvantum/GraphiteNord";
};
}

View File

@@ -1,574 +0,0 @@
{ pkgs, ... }:
{
programs.waybar = {
enable = true;
package = pkgs.waybar.overrideAttrs (oa: { mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ]; });
settings.mainBar = {
layer = "top"; # Waybar at top layer
height = 32; # Waybar height (to be removed for auto height)
spacing = 0; # Gaps between modules (4px)
position = "top";
margin = "10 20 0";
# Choose the order of the modules
modules-left = [
"hyprland/workspaces"
"custom/media"
];
modules-center = ["hyprland/window"];
modules-right = [
"mpris"
# "idle_inhibitor",
"pulseaudio"
# "network",
"cpu"
"memory"
# "temperature",
"backlight"
# "keyboard-state",
"battery"
"clock"
"tray"
];
# Modules configuration
# sway/workspaces = {
# "disable-scroll = true,
# "all-outputs = true,
# "warp-on-scroll = false,
# "format = "{name}: {icon}",
# "format-icons = {
# "1 = "",
# "2 = "",
# "3 = "",
# "4 = "",
# "5 = "",
# "urgent = "",
# "focused = "",
# "default = ""
# }
# },
"hyprland/workspaces" = {
active-only = false;
format = "{icon}";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"7" = "";
"8" = "";
"9" = "";
"10" = "";
"11" = "";
"12" = "";
"13" = "";
"14" = "";
"15" = "";
"16" = "";
"17" = "";
"18" = "";
"19" = "";
"20" = "";
"21" = "";
"22" = "";
"23" = "";
"24" = "";
"25" = "";
"26" = "";
"27" = "";
"28" = "";
"29" = "";
"30" = "";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
persistent-workspaces = {
HDMI-A-1 = [1 2 3 4 5 6 7 8 9 10];
DP-1 = [11 12 13 14 15 16 17 18 19 20];
DP-2 = [21 22 23 24 25 26 27 28 29 30];
};
};
keyboard-state = {
numlock = false;
capslock = true;
format = "{name} {icon}";
format-icons = {
locked = "";
unlocked = "";
};
};
"sway/mode" = {
format = "<span style=\"italic\">{}</span>";
};
"sway/scratchpad" = {
format = "{icon} {count}";
show-empty = false;
format-icons = ["" ""];
tooltip = true;
tooltip-format = "{app}: {title}";
};
mpris = {
interval = 1;
format = "{player_icon} {status_icon}";
format-paused = "{player_icon} {status_icon}";
tooltip-format = "{player_icon} {dynamic}";
tooltip-format-paused = "{player_icon} {dynamic}";
player-icons = {
default = "󰎄";
mpv = "󰝚";
vlc = "󰕼";
spotify = "";
};
status-icons = {
playing = "";
paused = "";
stopped = "";
};
# "ignored-players = ["firefox"]
};
mpd = {
format = "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) {songPosition}|{queueLength} {volume}% ";
format-disconnected = "Disconnected ";
format-stopped = "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ";
unknown-tag = "N/A";
interval = 2;
consume-icons = {
on = " ";
};
random-icons = {
off = "<span color=\"#f53c3c\"></span> ";
on = " ";
};
repeat-icons = {
on = " ";
};
single-icons = {
on = "1 ";
};
state-icons = {
paused = "";
playing = "";
};
tooltip-format = "MPD (connected)";
tooltip-format-disconnected = "MPD (disconnected)";
};
idle_inhibitor = {
format = "{icon}";
format-icons = {
activated = "󰅶";
deactivated = "󰾪";
};
};
tray = {
# "icon-size = 21,
spacing = 10;
show-passive-items = true;
};
clock = {
format = "{:%b %d %I:%M %p}";
tooltip-format = "<big>{:%d %B %Y}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = "{:%Y-%m-%d %I:%M %p}";
};
cpu = {
format = "{usage}% ";
tooltip = false;
};
memory = {
format = "{}% ";
};
temperature = {
# "thermal-zone = 2,
# "hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input",
critical-threshold = 80;
# "format-critical = "{temperatureC}°C {icon}",
format = "{temperatureC}°C {icon}";
format-icons = ["" "" " "];
};
backlight = {
# "device = "acpi_video1",
format = "{percent}% {icon}";
format-icons = ["" "" "" "" "" "" "" "" ""];
};
battery = {
bat = "BAT0";
states = {
# good = 95,
warning = 30;
critical = 15;
};
format = "{capacity}% {icon}";
format-charging = "{capacity}% ";
format-plugged = "{capacity}% ";
format-alt = "{time} {icon}";
# "format-good = "", # An empty format will hide the module
# "format-full = "",
format-icons = ["" "" "" "" ""];
};
network = {
# "interface = "wlp2*", # (Optional) To force the use of this interface
format-wifi = "{essid} ({signalStrength}%) ";
format-ethernet = "{ipaddr}/{cidr} 󰈀";
tooltip-format = "{ifname} via {gwaddr} ";
format-linked = "{ifname} (No IP) ";
format-disconnected = "Disconnected ";
format-alt = "{ifname}: {ipaddr}/{cidr}";
on-click-right = "kitty nmtui";
};
pulseaudio = {
# "scroll-step = 1, # %, can be a float
format = "{volume}% {icon} {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = "󰝟 {icon} {format_source}";
format-muted = "󰝟 {format_source}";
format-source = " {volume}% ";
format-source-muted = " ";
format-icons = {
headphone = "󰋋";
hands-free = "󰟅";
headset = "󰋎";
phone = "";
portable = "";
car = "";
default = ["" "" ""];
};
on-click = "pavucontrol";
};
"custom/media" = {
format = "{icon} {}";
return-type = "json";
max-length = 40;
format-icons = {
spotify = "";
default = "🎜";
};
escape = true;
exec = "$HOME/.config/waybar/mediaplayer.py 2> /dev/null"; # Script in resources folder
# exec = "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" # Filter player based on name
};
"custom/archicon" = {
format = "󰣇";
# "on-click":"nwg-menu -d -fm nemo -cmd-lock gtklock -va top",
on-click = "jgmenu_run";
tooltip = false;
};
};
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# CSS Styling
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
style = ''
/*
* Variant: Rosé Pine
* Maintainer: DankChoir
*/
@define-color base #191724;
@define-color surface #1f1d2e;
@define-color overlay #26233a;
@define-color muted #6e6a86;
@define-color subtle #908caa;
@define-color text #e0def4;
@define-color love #eb6f92;
@define-color gold #f6c177;
@define-color rose #ebbcba;
@define-color pine #31748f;
@define-color foam #9ccfd8;
@define-color iris #c4a7e7;
@define-color highlightLow #21202e;
@define-color highlightMed #403d52;
@define-color highlightHigh #524f67;
* {
font-family: "JetBrainsMono Nerd Font", FontAwesome, Roboto, Helvetica,
Arial, sans-serif;
font-size: 16px;
}
window#waybar {
background-color: @surface;
color: @text;
transition-property: background-color;
transition-duration: 0.5s;
border-radius: 10px;
}
window#waybar.hidden {
opacity: 0.2;
}
/*
window#waybar.empty {
background-color: transparent;
}
window#waybar.solo {
background-color: #FFFFFF;
}
*/
/*window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}*/
#workspaces button {
box-shadow: inset 0 -3px transparent;
padding: 0 8px;
background-color: @base;
color: @text;
border: none;
border-radius: 0;
font-weight: 800;
}
#workspaces button:first-child {
border-radius: 10px 0 0 10px;
}
#workspaces button:last-child {
border-radius: 0 10px 10px 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
background-color: @overlay;
/* box-shadow: inset 0 -100px 0 -97px @bright-yellow; */
}
#workspaces button.empty {
color: @muted;
box-shadow: inherit;
text-shadow: inherit;
}
#workspaces button.active {
color: @gold;
box-shadow: inset 0 -100px 0 -97px @bright-yellow;
text-shadow: inherit;
}
#workspaces button.focused {
background-color: @overlay;
color: @text;
/* box-shadow: inset 0 -100px 0 -97px @bright-yellow; */
}
#workspaces button.urgent {
background-color: @love;
color: @base;
}
#mode {
background-color: @overlay;
border-bottom: 3px solid @gold;
}
#cava,
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#pulseaudio.muted,
#pulseaudio.bluetooth,
#wireplumber,
#custom-media,
#tray,
#mpris,
#keyboard-state,
#mode,
#battery,
#idle_inhibitor,
#scratchpad,
#mpd {
padding: 0 10px;
color: @text;
}
#window,
#workspaces {
margin: 0 4px;
padding-top: 0px;
}
.modules-right {
background-color: @overlay;
border-radius: 10px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#mpris {
color: @gold;
}
#clock {
color: @gold;
}
#battery {
color: @foam;
}
#battery.charging,
#battery.plugged {
color: #d3869b;
}
@keyframes blink {
to {
background-color: #fbf1c7;
color: #df3f71;
}
}
#battery.critical:not(.charging) {
background-color: #282828;
color: #d3869b;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
background-color: #000000;
}
#backlight {
color: #458588;
}
#temperature {
color: #fabd2f;
}
#temperature.critical {
background-color: #fbf1c7;
color: #b57614;
}
#cpu {
color: @foam;
}
#memory {
color: @iris;
}
#network {
color: @foam;
}
#network.disconnected {
background-color: @love;
color: @base;
}
/*#disk {
background-color: #964B00;
}*/
#pulseaudio,
#pulseaudio.muted,
#pulseaudio.bluetooth {
color: @pine;
}
#tray {
}
#tray > .needs-attention {
background-color: @love;
color: @base;
}
#idle_inhibitor {
background-color: #282828;
color: #ebdbb2;
}
#idle_inhibitor.activated {
background-color: #fbf1c7;
color: #3c3836;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
#language {
background: #00b093;
color: #740864;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state > label {
padding: 0 5px;
}
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}
'';
};
}

View File

@@ -1,64 +0,0 @@
{ hostname, ... }:
{
imports =
if hostname == "zion" then [
./zion.nix
./modules/adb.nix
./modules/ananicy.nix
# ./modules/bluetooth.nix
./modules/boot.nix
./modules/configuration.nix
./modules/fstrim.nix
./modules/gaming.nix
./modules/greetd.nix
./modules/gsettings.nix
# ./modules/kde.nix
# ./modules/lanzaboot.nix
./modules/network.nix
./modules/nh.nix
./modules/nvidia.nix
./modules/ollama.nix
./modules/packages.nix
./modules/pipewire.nix
./modules/printing.nix
./modules/security.nix
./modules/ssh.nix
./modules/users.nix
./modules/vm.nix
]
else if hostname == "thor" then [
./thor.nix
./modules/nh.nix
./modules/tlp.nix
./modules/boot.nix
./modules/users.nix
./modules/greetd.nix
./modules/fstrim.nix
./modules/network.nix
./modules/security.nix
./modules/pipewire.nix
./modules/gsettings.nix
./modules/bluetooth.nix
./modules/lanzaboot.nix
./modules/configuration.nix
]
else if hostname == "server" then [
./server.nix
./modules/nh.nix
./modules/tlp.nix
./modules/ssh.nix
./modules/boot.nix
./modules/users.nix
./modules/nvidia.nix
./modules/ollama.nix
./modules/fstrim.nix
./modules/system.nix
./modules/network.nix
./modules/configuration.nix
#./modules/lanzaboot.nix
]
else [ ];
}

View File

@@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINlOY3fRdbxMUVFli1jNXtf+x7DOB7xjLObfDOgVDnmd root@nixos

View File

@@ -1,8 +1,8 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.adb.enable = true;
environment.systemPackages = [
pkgs.android-tools
pkgs.universal-android-debloater
];
users.users.mike.extraGroups = ["adbusers"];
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
services.ananicy = {
enable = true;
package = pkgs.ananicy-cpp;

View File

@@ -1,7 +1,8 @@
{ pkgs, hostname, inputs, ... }:
{
imports = if hostname == "zion" then [ inputs.chaotic.nixosModules.default ] else [ ];
pkgs,
inputs,
...
}: {
boot = {
tmp.cleanOnBoot = true;
@@ -15,10 +16,6 @@
};
};
kernelPackages =
if hostname == "zion" then pkgs.linuxPackages_cachyos #linuxPackages_zen #linuxPackages #linuxPackages_latest #linuxPackages_xanmod_latest
else if hostname == "thor" then pkgs.linuxPackages
else if hostname == "server" then pkgs.linuxPackages
else pkgs.linuxPackages_zen;
kernelPackages = pkgs.linuxPackages_zen;
};
}

View File

@@ -1,5 +1,11 @@
{ hostname, inputs, pkgs, ... }:
{
lib,
inputs,
outputs,
pkgs,
config,
...
}: {
time.timeZone = "Europe/Warsaw";
i18n.defaultLocale = "en_US.UTF-8";
@@ -29,15 +35,15 @@
libinput = {
enable = true;
mouse = {
accelProfile = "flat";
accelSpeed = "0.0";
};
# mouse = {
# accelProfile = "flat";
# accelSpeed = "0.0";
# };
};
};
environment = {
sessionVariables.NIXOS_OZONE_WL = "1";
# sessionVariables.NIXOS_OZONE_WL = "1";
shells = with pkgs; [bash zsh];
};
@@ -48,9 +54,30 @@
enable = false;
enableNg = true;
};
autoUpgrade = {
enable = true;
};
};
nixpkgs = {
# You can add overlays here
overlays = [
# Add overlays your own flake exports (from overlays and pkgs dir):
outputs.overlays.additions
outputs.overlays.modifications
outputs.overlays.unstable-packages
# You can also add overlays exported from other flakes:
# neovim-nightly-overlay.overlays.default
# Or define it inline, for example:
# (final: prev: {
# hi = final.hello.overrideAttrs (oldAttrs: {
# patches = [ ./change-hello-to-hi.patch ];
# });
# })
];
config = {
# I'm sorry Richard Stallman
allowUnfree = true;
@@ -66,19 +93,27 @@
nixos.enable = true;
};
nix = {
nix = let
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
in {
daemonCPUSchedPolicy = "batch";
channel.enable = false;
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
# nixPath = ["nixpkgs=${inputs.nixpkgs}"];
optimise = {
automatic = true;
dates = ["daily"];
};
# Opinionated: make flake registry and nix path match flake inputs
registry = lib.mapAttrs (_: flake: {inherit flake;}) flakeInputs;
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
settings = {
auto-optimise-store = true;
experimental-features = ["nix-command" "flakes"];
flake-registry = "";
nix-path = config.nix.nixPath;
substituters = [
"https://cache.nixos.org"

View File

@@ -0,0 +1,79 @@
{
inputs,
pkgs,
rust-overlay,
...
}: {
environment.systemPackages = with pkgs.unstable; [
# general
docker
docker-compose
# iot
platformio
# rust
openssl
rustup
pkg-config
cargo-deny
cargo-edit
cargo-watch
# rust-analyzer
# bash
shellcheck
# nodejs
node2nix
nodejs
nodePackages.pnpm
yarn
# # python
# python311
# python311Packages.pip
uv
# python311Packages.venvShellHook
# cpp
clang-tools
libgcc
gcc
clang
cmake
codespell
conan
cppcheck
doxygen
gtest
lcov
vcpkg
gnumake
# vcpkg-tool
valgrind
# haskell
cabal-install
ghc
haskell-language-server
# nix
cachix
lorri
niv
nixd
nixfmt-classic
statix
haskellPackages.dhall-nix
# java
jdk
jdk8
jdk17
maven
gradle
tex-fmt
];
}

View File

@@ -0,0 +1,14 @@
{pkgs, ...}: {
nix.distributedBuilds = true;
nix.settings.builders-use-substitutes = true;
nix.buildMachines = [
{
hostName = "192.168.0.10";
sshUser = "remotebuild";
sshKey = "/root/.ssh/remotebuild";
system = "x86_64-linux";
supportedFeatures = ["nixos-test" "big-parallel" "kvm"];
}
];
}

View File

@@ -1,6 +1,5 @@
{ pkgs, username, ... }:
{
users.users.${username}.packages = with pkgs; [ heroic ];
{pkgs, ...}: {
users.users.mike.packages = with pkgs; [heroic];
hardware.steam-hardware.enable = true;
programs = {
@@ -11,15 +10,15 @@
};
gamemode = {
enable = false;
enableRenice = false;
enable = true;
enableRenice = true;
settings = {};
};
gamescope = {
enable = false;
enable = true;
args = [
"-w 1920 -h 1080"
"-w 2560 -h 1440"
"-F nis"
"f"
];

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
services.greetd = {
enable = true;
settings = {

View File

@@ -1,5 +1,9 @@
{ lib, pkgs, inputs, ... }:
{
lib,
pkgs,
inputs,
...
}: {
imports = [inputs.lanzaboote.nixosModules.lanzaboote];
environment.systemPackages = [pkgs.sbctl];

View File

@@ -1,12 +1,15 @@
{ hostname, ... }:
{
boot.initrd.systemd.network.wait-online.enable = false;
systemd.services.NetworkManager-wait-online.enable = false;
networking = {
hostName = "${hostname}";
firewall.enable = true;
stevenblack = {
enable = true;
block = ["fakenews" "gambling" "porn"];
};
wireless = {
enable = false;
iwd.enable = false;

View File

@@ -1,8 +1,7 @@
{ username, ... }:
{
programs.nh = {
enable = true;
flake = "/home/${username}/.files";
flake = "/home/mike/.files";
clean = {
enable = true;
dates = "weekly";

View File

@@ -1,56 +1,40 @@
{ config, ... }:
{
config,
pkgs,
...
}: {
nixpkgs.config.nvidia.acceptLicense = true;
services.xserver.videoDrivers = ["nvidia"];
boot = {
kernelModules = ["nvidia" "nvidia-uvm"];
kernelParams = ["nvidia-drm.fbdev=1" "nvidia-drm.modeset=1"];
};
hardware = {
graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [
egl-wayland
vaapiVdpau
libvdpau-va-gl
nvidia-vaapi-driver
];
};
nvidia = {
package = config.boot.kernelPackages.nvidiaPackages.beta;
open = false;
open = true;
nvidiaSettings = true;
modesetting.enable = true;
# dynamicBoost.enable = true;
powerManagement = {
enable = false;
finegrained = false;
};
# prime = {
# amdgpuBusId = "PCI:05:00:0";
# nvidiaBusId = "PCI:01:00:0";
# #sync.enable = true;
# offload = {
# enable = true;
# enableOffloadCmd = true;
# };
# };
};
};
# specialisation = {
# Battery.configuration = {
# system.nixos.tags = [ "Battery" ];
# boot.extraModprobeConfig = ''blacklist nouveau options nouveau modeset=0'';
# boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_drm" "nvidia_modeset" ];
# services.udev.extraRules = ''
# # Remove NVIDIA USB xHCI Host Controller devices, if present
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1"
# # Remove NVIDIA USB Type-C UCSI devices, if present
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1"
# # Remove NVIDIA Audio devices, if present
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1"
# # Remove NVIDIA VGA/3D controller devices
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1"
# '';
# };
# };
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
vim
ntfs3g
@@ -7,10 +6,15 @@
nix-output-monitor
nvd
brightnessctl
piper
alsa-utils
wine
];
programs.nix-ld.enable = true;
services.ratbagd.enable = true;
services.zerotierone = {
enable = true;
};
@@ -28,6 +32,83 @@
programs.zsh.enable = true;
# fonts.packages = with pkgs; [
# nerd-fonts.zed-mono
# # nerd-fonts.victor-mono
# # nerd-fonts.ubuntu-sans
# # nerd-fonts.ubuntu-mono
# nerd-fonts.ubuntu
# # nerd-fonts.tinos
# # nerd-fonts.terminess-ttf
# nerd-fonts.symbols-only
# # nerd-fonts.space-mono
# # nerd-fonts.shure-tech-mono
# nerd-fonts.sauce-code-pro
# nerd-fonts.roboto-mono
# # nerd-fonts.recursive-mono
# # nerd-fonts.proggy-clean-tt
# # nerd-fonts.profont
# # nerd-fonts.overpass
# nerd-fonts.open-dyslexic
# nerd-fonts.noto
# # nerd-fonts.mplus
# # nerd-fonts.mononoki
# # nerd-fonts.monoid
# # nerd-fonts.monofur
# # nerd-fonts.monaspace
# # nerd-fonts.meslo-lg
# # nerd-fonts.martian-mono
# # nerd-fonts.lilex
# nerd-fonts.liberation
# # nerd-fonts.lekton
# nerd-fonts.jetbrains-mono
# # nerd-fonts.iosevka-term-slab
# # nerd-fonts.iosevka-term
# nerd-fonts.iosevka
# # nerd-fonts.intone-mono
# # nerd-fonts.inconsolata-lgc
# # nerd-fonts.inconsolata-go
# nerd-fonts.inconsolata
# # nerd-fonts.im-writing
# # nerd-fonts.hurmit
# # nerd-fonts.heavy-data
# # nerd-fonts.hasklug
# nerd-fonts.hack
# nerd-fonts.gohufont
# # nerd-fonts.go-mono
# # nerd-fonts.geist-mono
# nerd-fonts.fira-mono
# nerd-fonts.fira-code
# # nerd-fonts.fantasque-sans-mono
# # nerd-fonts.envy-code-r
# nerd-fonts.droid-sans-mono
# # nerd-fonts.departure-mono
# nerd-fonts.dejavu-sans-mono
# # nerd-fonts.daddy-time-mono
# # nerd-fonts.d2coding
# # nerd-fonts.cousine
# # nerd-fonts.commit-mono
# nerd-fonts.comic-shanns-mono
# nerd-fonts.code-new-roman
# nerd-fonts.caskaydia-cove
# # nerd-fonts.blex-mono
# # nerd-fonts.bitstream-vera-sans-mono
# # nerd-fonts.bigblue-terminal
# # nerd-fonts.aurulent-sans-mono
# # nerd-fonts.arimo
# # nerd-fonts.anonymice
# # nerd-fonts.agave
# nerd-fonts._3270
# nerd-fonts._0xproto
# noto-fonts
# noto-fonts-cjk-sans
# noto-fonts-emoji
# font-awesome
# source-han-sans
# source-han-sans-japanese
# source-han-serif-japanese
# ];
fonts.packages = with pkgs; [
nerdfonts
noto-fonts
@@ -37,6 +118,8 @@
source-han-sans
source-han-sans-japanese
source-han-serif-japanese
vistafonts
corefonts
];
# Some programs need SUID wrappers, can be configured further or are
@@ -52,5 +135,4 @@
# max-cache-ttl-ssl = 60480000;
};
};
}

View File

@@ -1,3 +1,9 @@
{
services.printing.enable = true;
{pkgs, ...}: {
services.printing = {
enable = true;
drivers = with pkgs; [
samsung-unified-linux-driver
splix
];
};
}

View File

@@ -1,6 +1,5 @@
# Enable Qtile
{ pkgs, ... }:
{
{pkgs, ...}: {
# --------------------------------------
# Enable QTILE
# --------------------------------------

View File

@@ -0,0 +1,30 @@
{
users.users.remotebuild = {
isNormalUser = true;
createHome = false;
group = "remotebuild";
openssh.authorizedKeys.keyFiles = [../keys/remotebuild.pub];
};
users.groups.remotebuild = {};
nix = {
nrBuildUsers = 64;
settings = {
trusted-users = ["remotebuild"];
min-free = 10 * 1024 * 1024;
max-free = 200 * 1024 * 1024;
max-jobs = "auto";
cores = 0;
};
};
systemd.services.nix-daemon.serviceConfig = {
MemoryAccounting = true;
MemoryMax = "90%";
OOMScoreAdjust = 500;
};
}

16
hosts/modules/steam.nix Normal file
View File

@@ -0,0 +1,16 @@
{
inputs,
pkgs,
...
}: {
programs.steam = {
enable = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
gamescopeSession.enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
};
}

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.thunar = {
enable = true;
plugins = with pkgs.xfce; [

View File

@@ -1,5 +1,4 @@
{ config, hostname, ... }:
{
{config, ...}: {
boot = {
kernelModules = ["acpi_call"];
extraModulePackages = with config.boot.kernelPackages; [acpi_call];
@@ -9,16 +8,9 @@
enable = true;
settings = {
TLP_DEFAULT_MODE = "BAT";
TLP_DEFAULT_MODE =
if hostname == "laptop"
then "BAT"
else "AC";
TLP_PERSISTENT_DEFAULT =
if hostname == "laptop"
then 0
else 1;
TLP_PERSISTENT_DEFAULT = 0;
CPU_BOOST_ON_AC = 1;
CPU_BOOST_ON_BAT = 0;

View File

@@ -1,12 +1,15 @@
{ inputs, username, hostname, pkgs, ... }:
{
imports = [ inputs.home-manager.nixosModules.home-manager ];
inputs,
pkgs,
...
}: {
# imports = [inputs.home-manager.nixosModules.home-manager];
users.defaultUserShell = pkgs.zsh;
users.users.${username} = {
users.users.mike = {
isNormalUser = true;
description = "${username}";
description = "mike";
extraGroups = [
"networkmanager"
"wheel"
@@ -17,19 +20,19 @@
];
};
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = { inherit inputs username hostname; };
users.${username} = {
imports = [ ../../home/home.nix ];
programs.home-manager.enable = true;
home = {
stateVersion = "24.05";
username = "${username}";
homeDirectory = "/home/${username}";
};
};
};
# home-manager = {
# useGlobalPkgs = true;
# useUserPackages = true;
# extraSpecialArgs = {inherit inputs username hostname;};
#
# users.${username} = {
# imports = [../../home-manager/home.nix];
# programs.home-manager.enable = true;
# home = {
# stateVersion = "24.05";
# username = "${username}";
# homeDirectory = "/home/${username}";
# };
# };
# };
}

View File

@@ -1,6 +1,4 @@
{ pkgs, username, ... }:
{
users.users.${username}.extraGroups = [ "libvirtd" ];
{pkgs, ...}: {
boot.kernel.sysctl = {"vm.max_map_count" = 2147483642;};
# Install necessary packages
@@ -14,14 +12,14 @@
win-spice
adwaita-icon-theme
distrobox
nvidia-container-toolkit
];
services.spice-vdagentd.enable = true;
virtualisation = {
podman = {
docker = {
enable = true;
dockerCompat = true;
};
spiceUSBRedirection.enable = true;
libvirtd = {

View File

@@ -1,9 +1,141 @@
{ pkgs, ... }:
{
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
dmenu
st
xss-lock
xdg-desktop-portal-gtk
xorg.xrdb
xorg.xrandr
xorg.xset
xorg.xsetroot
xorg.setxkbmap
xorg.xbacklight
xorg.libX11
xorg.libX11.dev
xorg.libxcb
xorg.libXft
xorg.libXinerama
xorg.xinit
xorg.xinput
brightnessctl
xclip
arandr
w3m
fontconfig
freetype
gnumake
nfs-utils
ninja
openssl
polkit_gnome
stdenv
tldr
dconf
];
# X Server settings
services.xserver = {
enable = true;
xkb.layout = "pl";
xkb.variant = "";
excludePackages = [ pkgs.xterm ];
xkb = {
layout = "pl";
variant = "";
};
dpi = 100;
displayManager = {
lightdm = {
enable = false;
};
startx = {
enable = true;
};
setupCommands = ''
LEFT='HDMI-0'
CENTER='DP-2'
RIGHT='DP-0'
${pkgs.xorg.xrandr}/bin/xrandr \
--output $LEFT --mode 1920x1080 --rate 60.00 --pos 0x360 \
--output $CENTER --primary --mode 2560x1440 --rate 74.92 --pos 1920x0 \
--output $RIGHT --mode 2560x1440 --rate 74.92 --pos 4480x0
'';
};
windowManager = {
hypr = {
enable = true;
};
dwm = {
enable = true;
package = pkgs.dwm.overrideAttrs {
src = pkgs.fetchFromGitHub {
owner = "eRgo35";
repo = "dwm";
rev = "main";
hash = "sha256-1syRNBc/i8uSbJ4Kp/4+m8xnh5xkyY1eQvFf1/RXi2U=";
};
};
};
};
desktopManager = {
xfce = {
enable = true;
};
};
xrandrHeads = [
{
output = "HDMI-0";
}
{
output = "DP-2";
primary = true;
}
{
output = "DP-0";
}
];
};
services.autorandr = {
enable = true;
defaultTarget = "zion";
profiles = {
"zion" = {
fingerprint = {
HDMI-0 = "00ffffffffffff004c2db30a000000003416010380301b780a2621a65555a0280d5054bdef80714f81c0810081809500a9c0b3000101023a801871382d40582c4500dd0c1100001e662156aa51001e30468f3300dd0c1100001e000000fd00184b0f5117000a202020202020000000fc00543232433330300a202020202001dc020325f14d901f04130514031220212207162309070783010000e2000f67030c001000b82d011d007251d01e206e285500dd0c1100001e011d00bc52d01e20b8285540dd0c1100001e011d8018711c1620582c2500dd0c1100009e011d80d0721c1620102c2580dd0c1100009e000000000000000000000000000000000000ec";
DP-2 = "00ffffffffffff000472c90672bb9004311e0104b53c22783f0c95ab554ca0240d5054bfef80714f8140818081c081009500b300d1c0565e00a0a0a029503020350055502100001a000000fd00304b70701e010a202020202020000000fc005647323730550a202020202020000000ff005445484545303034383532430a0146020318f14b010203040590111213141f23090707830100009774006ea0a034501720680855502100001a2a4480a0703827403020350055502100001a023a801871382d40582c450055502100001e011d8018711c1620582c250055502100009e011d007251d01e206e28550055502100001e0000000000000000000000000040";
DP-0 = "00ffffffffffff000472c9064bbc9004311e0104b53c22783f0c95ab554ca0240d5054bfef80714f8140818081c081009500b300d1c0565e00a0a0a029503020350055502100001a000000fd00304b70701e010a202020202020000000fc005647323730550a202020202020000000ff005445484545303034383532430a016c020318f14b010203040590111213141f23090707830100009774006ea0a034501720680855502100001a2a4480a0703827403020350055502100001a023a801871382d40582c450055502100001e011d8018711c1620582c250055502100009e011d007251d01e206e28550055502100001e0000000000000000000000000040";
};
config = {
HDMI-0 = {
enable = true;
position = "0x360";
mode = "1920x1080";
rate = "60.00";
};
DP-2 = {
enable = true;
primary = true;
position = "1920x0";
mode = "2560x1440";
rate = "74.92";
};
DP-0 = {
enable = true;
position = "4480x0";
mode = "2560x1440";
rate = "74.92";
};
};
};
};
};
}

View File

@@ -0,0 +1,43 @@
# This is your system's configuration file.
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
{
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
# You can import other NixOS modules here
imports = [
# If you want to use modules your own flake exports (from modules/nixos):
# outputs.nixosModules.example
# Or modules from other flakes (such as nixos-hardware):
# inputs.hardware.nixosModules.common-cpu-amd
# inputs.hardware.nixosModules.common-ssd
# You can also split up your configuration and import pieces of it here:
# ./users.nix
# Import your generated (nixos-generate-config) hardware configuration
./hardware-configuration.nix
../modules/common.nix
../modules/nh.nix
../modules/tlp.nix
../modules/ssh.nix
../modules/boot.nix
../modules/users.nix
../modules/nvidia.nix
../modules/ollama.nix
../modules/fstrim.nix
../modules/system.nix
../modules/network.nix
../modules/configuration.nix
#../modules/lanzaboot.nix
];
networking.hostName = "server";
}

View File

@@ -0,0 +1,59 @@
# This is your system's configuration file.
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
{
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
# You can import other NixOS modules here
imports = [
# If you want to use modules your own flake exports (from modules/nixos):
# outputs.nixosModules.example
# Or modules from other flakes (such as nixos-hardware):
# inputs.hardware.nixosModules.common-cpu-amd
# inputs.hardware.nixosModules.common-ssd
# You can also split up your configuration and import pieces of it here:
# ./users.nix
# Import your generated (nixos-generate-config) hardware configuration
./hardware-configuration.nix
../modules/common.nix
../modules/adb.nix
../modules/ananicy.nix
../modules/bluetooth.nix
../modules/boot.nix
../modules/common.nix
../modules/development.nix
../modules/distributed-builds.nix
../modules/fstrim.nix
../modules/gaming.nix
# ../modules/greetd.nix
../modules/gsettings.nix
# ../modules/kde.nix
# ../modules/lanzaboot.nix
../modules/network.nix
../modules/nh.nix
# ../modules/nvidia.nix
../modules/ollama.nix
../modules/packages.nix
../modules/pipewire.nix
../modules/printing.nix
# ../modules/remote-builder.nix
../modules/security.nix
../modules/ssh.nix
# ../modules/steam.nix
../modules/tlp.nix
../modules/users.nix
../modules/vm.nix
../modules/xserver.nix
];
networking.hostName = "thor";
}

View File

@@ -0,0 +1,43 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/efcf6f2f-7d44-441e-84a9-0a9725be0b72";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/0656-C8A6";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
};
swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -0,0 +1,59 @@
# This is your system's configuration file.
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
{
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
# You can import other NixOS modules here
imports = [
# If you want to use modules your own flake exports (from modules/nixos):
# outputs.nixosModules.example
# Or modules from other flakes (such as nixos-hardware):
# inputs.hardware.nixosModules.common-cpu-amd
# inputs.hardware.nixosModules.common-ssd
# You can also split up your configuration and import pieces of it here:
# ./users.nix
# Import your generated (nixos-generate-config) hardware configuration
./hardware-configuration.nix
../modules/common.nix
../modules/adb.nix
../modules/ananicy.nix
# ../modules/bluetooth.nix
../modules/boot.nix
../modules/common.nix
../modules/development.nix
# ../modules/distributed-builds.nix
../modules/fstrim.nix
../modules/gaming.nix
# ../modules/greetd.nix
../modules/gsettings.nix
# ../modules/kde.nix
# ../modules/lanzaboot.nix
../modules/network.nix
../modules/nh.nix
../modules/nvidia.nix
../modules/ollama.nix
../modules/packages.nix
../modules/pipewire.nix
../modules/printing.nix
../modules/remote-builder.nix
../modules/security.nix
../modules/ssh.nix
../modules/steam.nix
# ../modules/tlp.nix
../modules/users.nix
../modules/vm.nix
../modules/xserver.nix
];
networking.hostName = "zion";
}

View File

@@ -1,11 +1,15 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
@@ -13,19 +17,19 @@
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/9b9ed0c3-1236-499b-b9c3-51e6c4d02483";
fileSystems."/" = {
device = "/dev/disk/by-uuid/9b9ed0c3-1236-499b-b9c3-51e6c4d02483";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/17B9-AFFF";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/17B9-AFFF";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/d6820248-2865-4b52-9893-174309c9e684"; }
swapDevices = [
{device = "/dev/disk/by-uuid/d6820248-2865-4b52-9893-174309c9e684";}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View File

@@ -0,0 +1,6 @@
# Add your reusable home-manager modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
# These should be stuff you would like to share with others, not your personal configurations.
{
# List your module files here
# my-module = import ./my-module.nix;
}

View File

@@ -0,0 +1,6 @@
# Add your reusable NixOS modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
# These should be stuff you would like to share with others, not your personal configurations.
{
# List your module files here
# my-module = import ./my-module.nix;
}

23
overlays/default.nix Normal file
View File

@@ -0,0 +1,23 @@
# This file defines overlays
{inputs, ...}: {
# This one brings our custom packages from the 'pkgs' directory
additions = final: _prev: import ../pkgs final.pkgs;
# This one contains whatever you want to overlay
# You can change versions, add patches, set compilation flags, anything really.
# https://nixos.wiki/wiki/Overlays
modifications = final: prev: {
# example = prev.example.overrideAttrs (oldAttrs: rec {
# ...
# });
};
# When applied, the unstable nixpkgs set (declared in the flake inputs) will
# be accessible through 'pkgs.unstable'
unstable-packages = final: _prev: {
unstable = import inputs.nixpkgs-unstable {
system = final.system;
config.allowUnfree = true;
};
};
}

5
pkgs/default.nix Normal file
View File

@@ -0,0 +1,5 @@
# Custom packages, that can be defined similarly to ones from nixpkgs
# You can build them using 'nix build .#example'
pkgs: {
# example = pkgs.callPackage ./example { };
}