diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e2f5dd2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +result \ No newline at end of file diff --git a/modules/default.nix b/modules/default.nix index ca23e72..fee437d 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -23,11 +23,18 @@ in [ { config.dualBoot = true; + config.networking.hostName = "nerv"; } ] ++ mods; }; flake.nixosConfigurations.seele = inputs.nixpkgs.lib.nixosSystem { - modules = mods; + modules = [ + { + config.networking.hostName = "seele"; + } + ] + ++ mods; + }; } diff --git a/modules/home/default.nix b/modules/home/default.nix deleted file mode 100644 index 14fcd00..0000000 --- a/modules/home/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{...}: { - flake.homeModules.lucy = { - - }; -} diff --git a/modules/home/programs/emacs.nix b/modules/home/programs/emacs.nix new file mode 100644 index 0000000..476844c --- /dev/null +++ b/modules/home/programs/emacs.nix @@ -0,0 +1,106 @@ +{ ... }: { + + flake.homeModules.emacs = { pkgs, ... }: { + programs.emacs = { + enable = true; + packages = pkgs.emacs-pgtk; + extraConfig = '' + ;; -*- lexical-binding: t; -*- + (setq make-backup-files nil) + + (add-to-list 'default-frame-alist '(font . "JetBrainsMono Nerd Font Mono-14")) + + (require 'package) + (add-to-list 'package-archives + '("melpa-snapshots" + . + "https://snapshots.melpa.org/packages/") + t) + ;; add packages + (use-package org-view-mode :ensure t) + (use-package envrc :ensure t) + + (use-package nix-mode :ensure t) + (use-package + eldoc-box + :ensure t + :hook (eglot-managed-mode . eldoc-box-hover-mode) + ) + (use-package + elisp-autofmt + :ensure t + :commands (elisp-autofmt-buffer elisp-autofmt-mode) + :hook (emacs-lisp-mode . elisp-autofmt-mode) + :config) + (use-package portage-modes :ensure t) + (use-package + corfu + :ensure t + :init + (setq + corfu-auto t + corfu-auto-prefix 1 + corfu-auto-delay 0.2) + (global-corfu-mode)) + + (setq tab-always-indent 'complete) + (use-package + cape + :ensure t + :bind ("C-c p" . cape-prefix-map) ;; Alternative key: M-, M-p, M-+ + :init (add-hook 'completion-at-point-functions #'cape-file)) + (setq corfu-auto-prefix 2) + (use-package qml-mode :ensure t) + (use-package lua-mode :ensure t) + (use-package elcord :ensure t :init (elcord-mode)) + + (add-to-list + 'display-buffer-alist + '("\\*compilation\\*" (display-buffer-reuse-window + display-buffer-below-selected) + (window-height . 0.3))) + + + ;; remove useless shit and set default opts + (setq org-hide-emphasis-markers t) + (setq ring-bell-function 'ignore) + (menu-bar-mode -1) + (tool-bar-mode -1) + (setq display-line-numbers-type 'relative) + (global-display-line-numbers-mode +1) + (global-tab-line-mode 1) + (scroll-bar-mode -1) + (setq inhibit-splash-screen 1) + (setq custom-file "~/.emacs.d/custom.el") + (load custom-file 'noerror) + + + ;; lsp shit + (add-hook 'nix-mode-hook #'eglot-ensure) + (add-hook 'c-mode-hook #'eglot-ensure) + (add-hook 'qml-mode-hook #'eglot-ensure) + (with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs '(nix-mode . ("nixd"))) + (add-to-list 'eglot-server-programs '(qml-mode . ("qmlls")))) + + ;; keybindings + (keymap-global-set "C-c f" 'eglot-format) + (keymap-global-set "C-c t" 'term) + (keymap-global-set "C-c c" 'compile) + (keymap-global-set "C-c k b" 'kill-current-buffer) + (keymap-global-set "C-c k w" 'kill-buffer-and-window) + (keymap-global-set "C-c v" 'org-view-mode) + (windmove-default-keybindings) + ;; replace dashes with bullets in org mode + (font-lock-add-keywords 'org-mode + '(("^ +\\([-*]\\) " + (0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•")))))) + + (setq org-view-prettify-credentials nil) + (setq org-view-hide-keywords nil) + (envrc-global-mode) + + ''; + }; + }; +} diff --git a/modules/home/programs/niri.nix b/modules/home/programs/niri.nix new file mode 100644 index 0000000..1feea0c --- /dev/null +++ b/modules/home/programs/niri.nix @@ -0,0 +1,163 @@ +{ ... }: { + flake.homeModules.niri = { + wayland.windowManager.niri = { + enable = true; + extraConfig = '' + prefer-no-csd + hotkey-overlay { + skip-at-startup + } + + environment { + GTK_THEME "adw-gtk3-dark" + XDG_CURRENT_DESKTOP "niri" + XDG_SESSION_TYPE "wayland" + XDG_SESSION_DESKTOP "niri" + QT_QPA_PLATFORM "wayland;xcb" + OZONE_PLATFORM "wayland" + ELECTRON_OZONE_PLATFORM_HINT "auto" + } + cursor { + xcursor-size 24 + xcursor-theme "macOS" + } + input { + keyboard { + xkb { + layout "eu" + } + } + + touchpad { + tap + natural-scroll + + } + + mouse { + accel-speed -0.4 + accel-profile "flat" + } + focus-follows-mouse max-scroll-amount="20%" + + } + + output "PNP(BNQ) BenQ EX2710Q K6R04023019" { + mode "2560x1440@165.002" + scale 1 + transform "normal" + position x=1920 y=0 + } + output "Dell Inc. DELL P2317H 9KFDW6C533DB" { + position x=0 y=0 + } + + output "eDP-1" { + scale 1 + } + + + layout { + gaps 16 + center-focused-column "never" + default-column-width { proportion 0.6; } + focus-ring { + off + } + border { + width 2 + active-color "#ffc87f" + inactive-color "#505050" + } + } + spawn-at-startup "qs" + screenshot-path null + animations {} + window-rule { + geometry-corner-radius 16 + clip-to-geometry true + } + + binds { + Mod+return { spawn-sh "ghostty +new-window"; } + Mod+space { spawn "fuzzel"; } + Mod+e { spawn "nautilus"; } + + XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; } + XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } + XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } + XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } + + XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; } + XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; } + XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; } + XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; } + + XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; } + XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; } + + Mod+O repeat=false { toggle-overview; } + Mod+Q repeat=false { close-window; } + + Mod+Left { focus-column-left; } + Mod+Down { focus-window-down; } + Mod+Up { focus-window-up; } + Mod+Right { focus-column-right; } + Mod+H { focus-column-left; } + Mod+J { focus-window-down; } + Mod+K { focus-window-up; } + Mod+L { focus-column-right; } + Mod+Ctrl+Left { move-column-left; } + Mod+Ctrl+Down { move-window-down; } + Mod+Ctrl+Up { move-window-up; } + Mod+Ctrl+Right { move-column-right; } + Mod+Ctrl+H { move-column-left; } + Mod+Ctrl+J { move-window-down; } + Mod+Ctrl+K { move-window-up; } + mod+ctrl+l { move-column-right; } + + Mod+comma { focus-monitor-left; } + Mod+period { focus-monitor-right; } + + Mod+Shift+comma { move-column-to-monitor-left; } + Mod+Shift+period { move-column-to-monitor-right; } + + + Mod+Shift+WheelScrollDown { focus-column-right; } + Mod+Shift+WheelScrollUp { focus-column-left; } + Mod+1 { focus-workspace 1; } + Mod+2 { focus-workspace 2; } + Mod+3 { focus-workspace 3; } + Mod+4 { focus-workspace 4; } + Mod+5 { focus-workspace 5; } + Mod+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + Mod+Shift+1 { move-column-to-workspace 1; } + Mod+Shift+2 { move-column-to-workspace 2; } + Mod+Shift+3 { move-column-to-workspace 3; } + Mod+Shift+4 { move-column-to-workspace 4; } + Mod+Shift+5 { move-column-to-workspace 5; } + Mod+Shift+6 { move-column-to-workspace 6; } + Mod+Shift+7 { move-column-to-workspace 7; } + Mod+Shift+8 { move-column-to-workspace 8; } + Mod+Shift+9 { move-column-to-workspace 9; } + + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + Mod+F { maximize-column; } + + Mod+Minus { set-column-width "-10%"; } + Mod+Equal { set-column-width "+10%"; } + + Mod+V { toggle-window-floating; } + Mod+Shift+S { screenshot; } + Alt+Shift+S { screenshot-screen; } + Alt+Ctrl+S { screenshot-window; } + Mod+Shift+q { quit; } + } + ''; + }; + }; +} diff --git a/modules/home/nixcord.nix b/modules/home/programs/nixcord.nix similarity index 85% rename from modules/home/nixcord.nix rename to modules/home/programs/nixcord.nix index 64ed114..04d9c80 100644 --- a/modules/home/nixcord.nix +++ b/modules/home/programs/nixcord.nix @@ -1,6 +1,6 @@ { inputs, ... }: { flake.homeModules.nixcord = { - imports = [ inputs.nixcord.homeModules.nixord ]; + imports = [ inputs.nixcord.homeModules.nixcord ]; programs.nixcord = { enable = true; discord.enable = false; diff --git a/modules/home/stylix/targets.nix b/modules/home/stylix/targets.nix new file mode 100644 index 0000000..89761d1 --- /dev/null +++ b/modules/home/stylix/targets.nix @@ -0,0 +1,11 @@ +{inputs, ...}: { + flake.homeModules.homeStylix = { + imports = [ inputs.stylix.homeModules.stylix ]; + stylix.targets = { + ghostty.enable = true; + fuzzel.enable = true; + gtk.enable = true; + niri.enable = true; + }; + }; +} diff --git a/modules/system/core/core.nix b/modules/system/core/core.nix index 5fc22ca..9f8ff35 100644 --- a/modules/system/core/core.nix +++ b/modules/system/core/core.nix @@ -18,6 +18,7 @@ polkit.enable = true; # polkit # polkit.enablePkexecWrapper = true; }; + networking.networkmanager.enable = true; nix.settings.experimental-features = [ "nix-command" "flakes" diff --git a/modules/system/core/packages.nix b/modules/system/core/packages.nix index 4e2b312..7fc0c36 100644 --- a/modules/system/core/packages.nix +++ b/modules/system/core/packages.nix @@ -1,6 +1,7 @@ { ... }: { flake.nixosModules.packages = { pkgs, ... }: { nixpkgs.config.allowUnfree = true; + programs.niri.enable = true; environment.systemPackages = with pkgs; [ stow ufetch diff --git a/modules/system/core/user.nix b/modules/system/core/user.nix index e82ccdb..fcd59f2 100644 --- a/modules/system/core/user.nix +++ b/modules/system/core/user.nix @@ -15,7 +15,11 @@ home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { inherit inputs; }; home-manager.sharedModules = with self.homeModules; [ - + nixcord + ghostty + niri + emacs + homeStylix ]; }; }