diff --git a/flake.nix b/flake.nix index 1d681bd..80e84a8 100644 --- a/flake.nix +++ b/flake.nix @@ -8,7 +8,7 @@ # at the same time. Here's an working example: nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; # Also see the 'unstable-packages' overlay at 'overlays/default.nix'. - + # Home manager home-manager = { url = "github:nix-community/home-manager/release-23.11"; @@ -28,25 +28,25 @@ url = "github:hyprwm/hyprland"; inputs.nixpkgs.follows = "nixpkgs"; }; - + hyprwm-contrib = { url = "github:hyprwm/contrib"; inputs.nixpkgs.follows = "nixpkgs"; }; - + hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; }; }; - outputs = { - self, - nixpkgs, - nixpkgs-unstable, - home-manager, + outputs = { + self, + nixpkgs, + nixpkgs-unstable, + home-manager, ... - } @ inputs: let + } @ inputs: let inherit (self) outputs; # Supported systems for your flake packages, shell, etc. systems = [ @@ -75,7 +75,7 @@ # 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 .#hostname' nixosConfigurations = { @@ -83,14 +83,14 @@ specialArgs = {inherit inputs outputs;}; modules = [ # > Main NixOS configuration file < - ./hosts/zion/configuration.nix + ./hosts/zion/configuration.nix ]; }; thor = nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs outputs;}; modules = [ # > Main NixOS configuration file < - ./hosts/thor/configuration.nix + ./hosts/thor/configuration.nix ]; }; }; diff --git a/home-manager/features/cli/aliases.nix b/home-manager/features/cli/aliases.nix index 625a2b6..2e35e15 100644 --- a/home-manager/features/cli/aliases.nix +++ b/home-manager/features/cli/aliases.nix @@ -2,38 +2,38 @@ myAliases = { ".." = "cd .."; "cd.." = "cd .."; - + ls = "command eza"; grep = "grep --color=auto"; fgrep = "fgrep --color=auto"; egrep = "egrep --color=auto"; - l="eza -G --icons"; - ll="eza -l --icons"; - lg="eza -lG"; - lall="eza -lahF --icons --git"; - lalg="eza -laGhF --icons --git"; - latree="eza -laGghHT --git --icons"; + l = "eza -G --icons"; + ll = "eza -l --icons"; + lg = "eza -lG"; + lall = "eza -lahF --icons --git"; + lalg = "eza -laGhF --icons --git"; + latree = "eza -laGghHT --git --icons"; la = "eza -la --git --icons"; lsd = "eza -laD"; - cls="clear"; + cls = "clear"; # df="df -ahiT --total"; - userlist="cut -d: -f1 /etc/passwd"; - free="free -mt"; - du="du -ach | sort -h"; - ps="ps auxf"; + userlist = "cut -d: -f1 /etc/passwd"; + free = "free -mt"; + du = "du -ach | sort -h"; + ps = "ps auxf"; - sudo="sudo "; - reload="exec $SHELL -l"; + sudo = "sudo "; + reload = "exec $SHELL -l"; xclip = "xclip -selection c"; - mkdir="mkdir -pv"; - psmem="ps -e -orss=,args= | sort -b -k1 -nr"; - psmem10="ps -e -orss=,args= | sort -b -k1 -nr | head -10"; - pscpu="ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr"; - pscpu10="ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr | head -10"; + mkdir = "mkdir -pv"; + psmem = "ps -e -orss=,args= | sort -b -k1 -nr"; + psmem10 = "ps -e -orss=,args= | sort -b -k1 -nr | head -10"; + pscpu = "ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr"; + pscpu10 = "ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr | head -10"; gua = "git remote | xargs -L1 git push --all"; }; diff --git a/home-manager/features/cli/bash.nix b/home-manager/features/cli/bash.nix index d560ec2..d09973b 100644 --- a/home-manager/features/cli/bash.nix +++ b/home-manager/features/cli/bash.nix @@ -1,5 +1,6 @@ -let cli = import ./aliases.nix; in -{ +let + cli = import ./aliases.nix; +in { programs.bash = { enable = true; shellAliases = cli.myAliases; diff --git a/home-manager/features/cli/default.nix b/home-manager/features/cli/default.nix index 49cd01e..9c08fcb 100644 --- a/home-manager/features/cli/default.nix +++ b/home-manager/features/cli/default.nix @@ -12,9 +12,9 @@ bc bottom ncdu - ltex-ls + ltex-ls nil - alejandra + alejandra timer jq diffsitter diff --git a/home-manager/features/cli/git.nix b/home-manager/features/cli/git.nix index 3e1eb4a..8071ef9 100644 --- a/home-manager/features/cli/git.nix +++ b/home-manager/features/cli/git.nix @@ -1,6 +1,6 @@ { programs.git = { - enable = true; + enable = true; userName = "Michał Czyż"; userEmail = "mike@c2yz.com"; signing = { diff --git a/home-manager/features/cli/zsh/default.nix b/home-manager/features/cli/zsh/default.nix index 37159e9..bdb7544 100644 --- a/home-manager/features/cli/zsh/default.nix +++ b/home-manager/features/cli/zsh/default.nix @@ -1,5 +1,9 @@ -{config, pkgs, ...}: let - cli = import ../aliases.nix; +{ + config, + pkgs, + ... +}: let + cli = import ../aliases.nix; in { home.packages = with pkgs; [ ]; @@ -12,7 +16,7 @@ in { history.path = "${config.xdg.dataHome}/zsh/history"; shellAliases = cli.myAliases; - + plugins = [ { name = "powerlevel10k"; @@ -20,13 +24,13 @@ in { file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; } ]; - + enableAutosuggestions = true; syntaxHighlighting = { enable = true; }; - + historySubstringSearch = { enable = true; }; diff --git a/home-manager/features/desktop/common/default.nix b/home-manager/features/desktop/common/default.nix index 9a9e70b..5b6fc13 100644 --- a/home-manager/features/desktop/common/default.nix +++ b/home-manager/features/desktop/common/default.nix @@ -1,9 +1,13 @@ -{lib, pkgs, config, ...}: { +{ + lib, + pkgs, + config, + ... +}: { imports = [ - ]; - - # dconf.settings."org/gnome/desktop/interface".color-scheme = + + # dconf.settings."org/gnome/desktop/interface".color-scheme = # if config.colorscheme.variant == "dark" # then "prefer-dark" # else if config.colorscheme.variant == "light" @@ -11,5 +15,4 @@ # else "default"; # xdg.portal.enable = true; - } diff --git a/home-manager/features/desktop/dwm/betterlockscreen.nix b/home-manager/features/desktop/dwm/betterlockscreen.nix index 3512c92..cea90ac 100644 --- a/home-manager/features/desktop/dwm/betterlockscreen.nix +++ b/home-manager/features/desktop/dwm/betterlockscreen.nix @@ -2,6 +2,5 @@ services.betterlockscreen = { enable = true; package = pkgs.unstable.betterlockscreen; - }; } diff --git a/home-manager/features/desktop/dwm/default.nix b/home-manager/features/desktop/dwm/default.nix index d9d136d..6b746e7 100644 --- a/home-manager/features/desktop/dwm/default.nix +++ b/home-manager/features/desktop/dwm/default.nix @@ -1,5 +1,5 @@ { - lib, + lib, config, pkgs, ... @@ -12,7 +12,7 @@ ./easyeffects.nix ./theming.nix ]; - + home.packages = with pkgs; [ dmenu st @@ -30,7 +30,7 @@ xorg.libxcb xorg.libXft xorg.libXinerama - xorg.xinit + xorg.xinit xorg.xinput brightnessctl xclip @@ -47,7 +47,7 @@ lf pamixer w3m - bat + bat efibootmgr eww fontconfig @@ -78,7 +78,7 @@ source = ./.xinitrc; }; ".zprofile" = { - source = ./.zprofile; + source = ./.zprofile; }; ".config/picom/black_to_transparent.frag" = { source = ./black_to_transparent.frag; diff --git a/home-manager/features/desktop/dwm/picom.nix b/home-manager/features/desktop/dwm/picom.nix index 7afbc46..59a8fca 100644 --- a/home-manager/features/desktop/dwm/picom.nix +++ b/home-manager/features/desktop/dwm/picom.nix @@ -1,5 +1,5 @@ { - lib, + lib, config, pkgs, ... @@ -7,7 +7,7 @@ services.picom = { enable = true; package = pkgs.unstable.picom; - backend = "glx"; + backend = "glx"; shadow = true; shadowOpacity = 0.2; @@ -56,16 +56,16 @@ # 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'" + "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. @@ -95,5 +95,5 @@ #"nordify.glsl:class_g = 'miru'" ]; }; - }; + }; } diff --git a/home-manager/features/desktop/dwm/rofi.nix b/home-manager/features/desktop/dwm/rofi.nix index e4c9abc..4d73fe4 100644 --- a/home-manager/features/desktop/dwm/rofi.nix +++ b/home-manager/features/desktop/dwm/rofi.nix @@ -1,5 +1,5 @@ { - lib, + lib, config, pkgs, ... diff --git a/home-manager/features/desktop/dwm/theming.nix b/home-manager/features/desktop/dwm/theming.nix index 36437a6..ece2780 100644 --- a/home-manager/features/desktop/dwm/theming.nix +++ b/home-manager/features/desktop/dwm/theming.nix @@ -1,4 +1,9 @@ -{lib, config, pkgs, ...}: { +{ + lib, + config, + pkgs, + ... +}: { # enable gtk gtk = { enable = true; diff --git a/home-manager/features/desktop/hyprland/default.nix b/home-manager/features/desktop/hyprland/default.nix index 869e4ec..630b3bb 100644 --- a/home-manager/features/desktop/hyprland/default.nix +++ b/home-manager/features/desktop/hyprland/default.nix @@ -8,7 +8,7 @@ # xdhp = pkgs.inputs.hyprland.xdg-desktop-portal-hyprland.override {inherit hyprland;}; in { imports = [ - ../common + ../common ../common/wayland-wm ]; @@ -26,18 +26,18 @@ in { xdg-desktop-portal-hyprland ]; -# wayland.windowManger.hyprland = { -# enable = true; -# # package = hyprland; -# systemd = { -# enable = true; -# # Same as default but stop graphical-session too -# extraCommands = lib.mkBefore [ -# "systemctl --user stop graphical-session.target" -# "systemctl --user start hyprland-session.target" -# ]; -# }; -# -# #TODO: Add hyprland config -# }; + # wayland.windowManger.hyprland = { + # enable = true; + # # package = hyprland; + # systemd = { + # enable = true; + # # Same as default but stop graphical-session too + # extraCommands = lib.mkBefore [ + # "systemctl --user stop graphical-session.target" + # "systemctl --user start hyprland-session.target" + # ]; + # }; + # + # #TODO: Add hyprland config + # }; } diff --git a/home-manager/features/kitty.nix b/home-manager/features/kitty.nix index 882da61..bd54772 100644 --- a/home-manager/features/kitty.nix +++ b/home-manager/features/kitty.nix @@ -7,7 +7,7 @@ }; theme = "Gruvbox Dark"; - + settings = { confirm_os_window_close = 0; detect_urls = true; diff --git a/home-manager/features/neovim.nix b/home-manager/features/neovim.nix index 950a95c..fabebd3 100644 --- a/home-manager/features/neovim.nix +++ b/home-manager/features/neovim.nix @@ -1,6 +1,9 @@ -{inputs, pkgs, ...}: { - - nixpkgs.overlays = [ +{ + inputs, + pkgs, + ... +}: { + nixpkgs.overlays = [ inputs.neovim-nightly-overlay.overlay ]; diff --git a/home-manager/features/tmux.nix b/home-manager/features/tmux.nix index 4838280..ee80b52 100644 --- a/home-manager/features/tmux.nix +++ b/home-manager/features/tmux.nix @@ -7,7 +7,7 @@ terminal = "screen-256color"; baseIndex = 1; plugins = with pkgs.tmuxPlugins; [ - sensible + sensible vim-tmux-navigator gruvbox yank diff --git a/home-manager/home.nix b/home-manager/home.nix index d112f28..c831fc7 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -1,10 +1,10 @@ # This is your home-manager configuration file # Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix) -{ +{ inputs, outputs, lib, - config, + config, pkgs, ... }: { @@ -18,7 +18,7 @@ # You can also split up your configuration and import pieces of it here: # ./nvim.nix - ./features/cli + ./features/cli ./features/desktop/dwm ./features/kitty.nix ./features/neovim.nix @@ -26,7 +26,7 @@ ./features/neovide.nix ./features/emacs.nix ]; - + colorScheme = inputs.nix-colors.colorSchemes.gruvbox-dark-medium; nixpkgs = { @@ -76,10 +76,10 @@ # The home.packages option allows you to install Nix packages into your # environment. - home.packages = (with pkgs; [ + home.packages = with pkgs; [ # > graphics < tuxpaint - krita + krita # > terminal < kitty @@ -122,11 +122,11 @@ lunarvim evolution rstudio - + # > gaming < prismlauncher classicube - steam + steam # > development < clang @@ -140,10 +140,10 @@ boost gcc-unwrapped gcc.cc.lib - + docker docker-compose - ]); + ]; services.gnome-keyring = { enable = true; @@ -153,9 +153,9 @@ "pkcs11" ]; }; - + home.sessionVariables = { - EDITOR = "nvim"; + EDITOR = "nvim"; }; # Let Home Manager install and manage itself. diff --git a/hosts/common/default.nix b/hosts/common/default.nix index f5cd332..8a23cbf 100644 --- a/hosts/common/default.nix +++ b/hosts/common/default.nix @@ -12,9 +12,9 @@ ./services.nix ./users.nix ./docker.nix + ./x.nix ]; - nixpkgs = { # You can add overlays here overlays = [ @@ -39,7 +39,7 @@ allowUnfree = true; }; }; - + # This will add each flake input as a registry # To make nix3 commands consistent with your flake nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); @@ -75,7 +75,7 @@ boot.loader.efi.canTouchEfiVariables = true; # Enables wireless support via wpa_supplicant - # networking.wireless.enable = true; + # networking.wireless.enable = true; # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; diff --git a/hosts/common/packages.nix b/hosts/common/packages.nix index ba13119..e9c77c6 100644 --- a/hosts/common/packages.nix +++ b/hosts/common/packages.nix @@ -19,7 +19,7 @@ randomizedDelaySec = "45min"; }; - environment.systemPackages = (with pkgs; [ + environment.systemPackages = with pkgs; [ # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # wget ntfs3g @@ -27,9 +27,9 @@ unstable.nh nix-output-monitor nvd - ]); + ]; - fonts.packages = with pkgs; [ + fonts.packages = with pkgs; [ nerdfonts noto-fonts noto-fonts-cjk diff --git a/hosts/common/services.nix b/hosts/common/services.nix index 59951dd..ca09b4f 100644 --- a/hosts/common/services.nix +++ b/hosts/common/services.nix @@ -6,9 +6,8 @@ pkgs, ... }: { - # I use zsh btw - environment.shells = with pkgs; [ bash zsh ]; + environment.shells = with pkgs; [bash zsh]; users.defaultUserShell = pkgs.zsh; programs.zsh.enable = true; @@ -40,11 +39,11 @@ # Some programs need SUID wrappers, can be configured further or are # started in user sessions. - programs.mtr.enable = true; - programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; + programs.mtr.enable = true; + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; # This setups a SSH server. Very important if you're setting up a headless system. # Feel free to remove if you don't need it. diff --git a/hosts/common/users.nix b/hosts/common/users.nix index e23d04f..0d4fe8d 100644 --- a/hosts/common/users.nix +++ b/hosts/common/users.nix @@ -14,7 +14,7 @@ openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDfqPj+a2gmoUl3TuGSZxf0zRBabVWvXRrjLF7sFlqjMbfkx428F3L7C8OC3Z9XDT4ysbpgWcPuVKNtK5kkKGjSLHAgB2CgvD15K11Q+ag1+uyePaiOypZYJewvv1hhqU5IrVcxUbTsbREH/IsdQSlNSuyNFIr3oFnrff5iKEKEwEvSDeiqpqRh56pAkF6Kb15aYqZO7X9rbfoa8Sgj3VJXN0181lXMjXkNsYVa3gDmKv89C6qutg+KOpHlXgn4AfIRcCw8ik6OGBEfi/gUeb3SYpD+7undNLyloxCbGwHQ40IdoqPatyhTNS4jm9kb+Tno4hj0pbLHZSUdXgGaSfGx1W0MVVY0mm0Hu7EmYDBHUTfmPmPxnolWh8UH+XdkNPnwZfyZlyBcVVkVzog1ZCs1i9Y6oS1ZIbzuz+WxBPPDIHMRdmxv6+PMc5kZyrpuX1PgFb7Xt5cRNAL5/wywoi9Z45SS7qP9zNSb443UaaXzUatqnlawZ0GS0qXJh3ljwJ8= mike@odin" ]; - extraGroups = [ "networkmanager" "wheel" "docker" "libvirtd" ]; + extraGroups = ["networkmanager" "wheel" "docker" "libvirtd"]; }; }; } diff --git a/hosts/common/x.nix b/hosts/common/x.nix new file mode 100644 index 0000000..d148146 --- /dev/null +++ b/hosts/common/x.nix @@ -0,0 +1,28 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: { + services.udisks2.enable = true; + security.polkit.enable = true; + services.upower.enable = config.powerManagement.enable; + services.gvfs.enable = true; + + services.autorandr = { + enable = true; + }; + + environment.systemPackages = with pkgs; [ + autorandr + xorg.xrandr + xorg.libX11 + xorg.libX11.dev + xorg.libXft + xorg.libXinerama + xorg.xbacklight + pulseaudioFull + ]; +} diff --git a/hosts/thor/configuration.nix b/hosts/thor/configuration.nix index 15e08c0..d50ec5f 100644 --- a/hosts/thor/configuration.nix +++ b/hosts/thor/configuration.nix @@ -1,13 +1,13 @@ # Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ +{ inputs, outputs, lib, config, pkgs, - ... + ... }: { # You can import other NixOS modules here imports = [ diff --git a/hosts/thor/gui.nix b/hosts/thor/gui.nix index 808cb3a..74126d2 100644 --- a/hosts/thor/gui.nix +++ b/hosts/thor/gui.nix @@ -11,6 +11,7 @@ enable = true; layout = "pl"; xkbVariant = ""; + libinput.enable = true; displayManager = { lightdm = { @@ -20,7 +21,7 @@ enable = true; }; }; - + windowManager = { dwm = { enable = true; @@ -29,7 +30,7 @@ owner = "eRgo35"; repo = "dwm"; rev = "a1725eb3c64d27864972a976c8ee18d63a8d9dad"; - sha256 = "sha256-sY6qFqfkfGtLmi+7mownx3bolM2mVNdhS9VUO6KimKk="; + sha256 = "sha256-sY6qFqfkfGtLmi+7mownx3bolM2mVNdhS9VUO6KimKk="; }; }; }; @@ -42,11 +43,6 @@ }; }; - environment.systemPackages = (with pkgs; [ - autorandr - xorg.xrandr - ]); - services.autorandr = { enable = true; }; diff --git a/hosts/thor/hardware-configuration.nix b/hosts/thor/hardware-configuration.nix index 1ad4e74..f5602b8 100644 --- a/hosts/thor/hardware-configuration.nix +++ b/hosts/thor/hardware-configuration.nix @@ -1,31 +1,40 @@ # 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 = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - boot.kernelParams = [ "resume=/var/swapfile" "resume_offset=16230400" ]; + boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; + boot.kernelParams = ["resume=/var/swapfile" "resume_offset=16230400"]; boot.resumeDevice = "/dev/disk/by-uuid/9bf8fe18-8b72-4e43-a472-546260574b1e"; - fileSystems."/" = - { device = "/dev/disk/by-uuid/9bf8fe18-8b72-4e43-a472-546260574b1e"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/9bf8fe18-8b72-4e43-a472-546260574b1e"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/09BA-3F6F"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/09BA-3F6F"; + fsType = "vfat"; + }; - swapDevices = [ { device = "/var/swapfile"; size = 32 * 1024; } ]; + swapDevices = [ + { + device = "/var/swapfile"; + size = 32 * 1024; + } + ]; # 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 diff --git a/hosts/zion/configuration.nix b/hosts/zion/configuration.nix index c30fb7f..8b2760b 100644 --- a/hosts/zion/configuration.nix +++ b/hosts/zion/configuration.nix @@ -5,8 +5,8 @@ inputs, outputs, lib, - config, - pkgs, + config, + pkgs, ... }: { # You can import other NixOS modules here @@ -22,7 +22,7 @@ # ./users.nix ../common ./gui.nix - + # nvidia drivers ./nvidia.nix diff --git a/hosts/zion/gui.nix b/hosts/zion/gui.nix index bde4f7e..7fbb143 100644 --- a/hosts/zion/gui.nix +++ b/hosts/zion/gui.nix @@ -30,7 +30,7 @@ --output $RIGHT --mode 2560x1440 --rate 74.92 --pos 4480x0 ''; }; - + windowManager = { dwm = { enable = true; @@ -39,7 +39,7 @@ owner = "eRgo35"; repo = "dwm"; rev = "a1725eb3c64d27864972a976c8ee18d63a8d9dad"; - sha256 = "sha256-sY6qFqfkfGtLmi+7mownx3bolM2mVNdhS9VUO6KimKk="; + sha256 = "sha256-sY6qFqfkfGtLmi+7mownx3bolM2mVNdhS9VUO6KimKk="; }; }; }; @@ -50,7 +50,7 @@ enable = false; }; }; - + xrandrHeads = [ { output = "HDMI-0"; @@ -65,12 +65,6 @@ ]; }; - environment.systemPackages = (with pkgs; [ - autorandr - xorg.xrandr - ]); - - services.autorandr = { enable = true; defaultTarget = "zion"; diff --git a/hosts/zion/hardware-configuration.nix b/hosts/zion/hardware-configuration.nix index 565c5ac..3583db5 100644 --- a/hosts/zion/hardware-configuration.nix +++ b/hosts/zion/hardware-configuration.nix @@ -1,31 +1,35 @@ # 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" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-amd"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/8af14034-1aec-4b6f-b8c4-de13e6987ac5"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/8af14034-1aec-4b6f-b8c4-de13e6987ac5"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/CEC7-B082"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/CEC7-B082"; + fsType = "vfat"; + }; - swapDevices = - [ { device = "/dev/disk/by-uuid/00a782e1-71c2-4121-8608-9ed1104d6aa5"; } - ]; + swapDevices = [ + {device = "/dev/disk/by-uuid/00a782e1-71c2-4121-8608-9ed1104d6aa5";} + ]; # 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 diff --git a/hosts/zion/nvidia.nix b/hosts/zion/nvidia.nix index 0656f3b..7787203 100644 --- a/hosts/zion/nvidia.nix +++ b/hosts/zion/nvidia.nix @@ -5,7 +5,7 @@ config, pkgs, ... -}:{ +}: { # Enable OpenGL hardware.opengl = { enable = true; @@ -17,13 +17,12 @@ services.xserver.videoDrivers = ["nvidia"]; hardware.nvidia = { - # Modesetting is required. modesetting.enable = true; # Nvidia power management. Experimental, and can cause sleep/suspend to fail. # Enable this if you have graphical corruption issues or application crashes after waking - # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead + # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead # of just the bare essentials. powerManagement.enable = false; @@ -33,15 +32,15 @@ # Use the NVidia open source kernel module (not to be confused with the # independent third-party "nouveau" open source driver). - # Support is limited to the Turing and later architectures. Full list of - # supported GPUs is at: - # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus + # Support is limited to the Turing and later architectures. Full list of + # supported GPUs is at: + # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus # Only available from driver 515.43.04+ # Currently alpha-quality/buggy, so false is currently the recommended setting. open = false; # Enable the Nvidia settings menu, - # accessible via `nvidia-settings`. + # accessible via `nvidia-settings`. nvidiaSettings = true; # Optionally, you may need to select the appropriate driver version for your specific GPU. diff --git a/overlays/default.nix b/overlays/default.nix index 7c608cf..076bbe3 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -3,9 +3,9 @@ # This one brings our custom packages from the 'pkgs' directory additions = final: _prev: import ../pkgs {pkgs = final;}; - # This one contains whatever you want to overlay - # You can change versions, add patches, set compilation flags, anything really. - # https://nixos.wiki/wiki/Overlays + # 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 { # ... diff --git a/pkgs/papyrus/default.nix b/pkgs/papyrus/default.nix index 14d9324..afc69d5 100644 --- a/pkgs/papyrus/default.nix +++ b/pkgs/papyrus/default.nix @@ -1,3 +1,2 @@ -{ pkgs ? import {} }: - +{pkgs ? import {}}: pkgs.callPackage ./papyrus.nix {} diff --git a/pkgs/papyrus/papyrus.nix b/pkgs/papyrus/papyrus.nix index 39216aa..32466c0 100644 --- a/pkgs/papyrus/papyrus.nix +++ b/pkgs/papyrus/papyrus.nix @@ -1,6 +1,19 @@ -{ stdenv, fetchurl, makeDesktopItem, makeWrapper, autoPatchelfHook, fontconfig, freetype, glib, gtk3, jdk17, lib, xorg, zlib, alsaLib }: -let - +{ + stdenv, + fetchurl, + makeDesktopItem, + makeWrapper, + autoPatchelfHook, + fontconfig, + freetype, + glib, + gtk3, + jdk17, + lib, + xorg, + zlib, + alsaLib, +}: let # Please keep the version x.y.0.z and do not update to x.y.76.z because the # source of the latter disappears much faster. version = "6.6.0"; @@ -23,102 +36,102 @@ let genericName = "SQL Integrated Development Environment"; categories = ["Development"]; }; +in + stdenv.mkDerivation { + pname = "papyrus"; + version = "6.6.0"; -in stdenv.mkDerivation { - pname = "papyrus"; - version = "6.6.0"; + system = "x86_64-linux"; - system = "x86_64-linux"; + inherit src; - inherit src; + nativeBuildInputs = [ + makeWrapper + autoPatchelfHook + ]; - nativeBuildInputs = [ - makeWrapper - autoPatchelfHook - ]; + buildInputs = [ + fontconfig + freetype + glib + gtk3 + jdk17 + xorg.libX11 + xorg.libXrender + xorg.libXtst + zlib + alsaLib + ]; - buildInputs = [ - fontconfig - freetype - glib - gtk3 - jdk17 - xorg.libX11 - xorg.libXrender - xorg.libXtst - zlib - alsaLib - ]; + # Extract and copy executable in $out/bin + installPhase = '' + # Remove the bundled Java Runtime Environment as we will use our own. + rm -rf jre - # Extract and copy executable in $out/bin - installPhase = '' - # Remove the bundled Java Runtime Environment as we will use our own. - rm -rf jre + # Create the directory where DBeaver will reside within the Nix store. + mkdir -p $out/ - # Create the directory where DBeaver will reside within the Nix store. - mkdir -p $out/ + # Copy all the files from the build directory to the Nix store. + cp -r . $out/Papyrus - # Copy all the files from the build directory to the Nix store. - cp -r . $out/Papyrus + # The binaries will be automatically patched by autoPatchelfHook. + # This adds necessary runtime dependencies to the ELF files. - # The binaries will be automatically patched by autoPatchelfHook. - # This adds necessary runtime dependencies to the ELF files. + # Create a wrapper script for launching DBeaver. + # - Sets Java path + # - Sets library path for GTK and X11 + # - Sets GSettings schema path + makeWrapper $out/Papyrus/papyrus $out/bin/Papyrus \ + --prefix PATH : ${jdk17}/bin \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [glib gtk3 xorg.libXtst]} \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" - # Create a wrapper script for launching DBeaver. - # - Sets Java path - # - Sets library path for GTK and X11 - # - Sets GSettings schema path - makeWrapper $out/Papyrus/papyrus $out/bin/Papyrus \ - --prefix PATH : ${jdk17}/bin \ - --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [glib gtk3 xorg.libXtst]} \ - --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" - - # Create a directory for the desktop entry. - mkdir -p $out/share/applications + # Create a directory for the desktop entry. + mkdir -p $out/share/applications - # Copy the generated desktop entry to the appropriate location. - cp ${desktopItem}/share/applications/* $out/share/applications + # Copy the generated desktop entry to the appropriate location. + cp ${desktopItem}/share/applications/* $out/share/applications - # Create a directory for storing the DBeaver icon. - mkdir -p $out/share/pixmaps + # Create a directory for storing the DBeaver icon. + mkdir -p $out/share/pixmaps - # Symlink the DBeaver icon to the standard location. - ln -s $out/Papyrus/icon.xpm $out/share/pixmaps/papyrus.xpm - ''; + # Symlink the DBeaver icon to the standard location. + ln -s $out/Papyrus/icon.xpm $out/share/pixmaps/papyrus.xpm + ''; - meta = with lib; { - homepage = "https://eclipse.dev/papyrus/index.php"; - description = "Open source Model-Based Engineering tool"; - # longDescription = '' - # Multi-platform database tool for developers, SQL programmers, database - # administrators and analysts. Supports all popular databases: MySQL, - # PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, - # Teradata, Firebird, Derby, etc. - # ''; - license = licenses.free; - platforms = ["x86_64-linux"]; - maintainers = [maintainers.eRgo35]; - }; -} - # desktopItem = makeDesktopItem { - # name = "dbeaver-ee"; - # exec = "dbeaver"; - # icon = "dbeaver"; - # desktopName = "dbeaver-ee"; - # comment = "SQL Integrated Development Environment"; - # genericName = "SQL Integrated Development Environment"; - # categories = ["Development"]; - # }; - # - # # src = pkgs.fetchurl { - # # url = "https://download.eclipse.org/modeling/mdt/papyrus/rcp/2023-12/6.6.0/papyrus-2023-12-6.6.0-linux64.tar.gz"; - # # sha512 = "ab1f1c0192fa7791550ef284c221a5445e02a699f4a82ec9b08f2c4b1f894b387751c37a6c5109f7709afea265126210682a266adb00fb26768057c0321ba802"; - # # }; + meta = with lib; { + homepage = "https://eclipse.dev/papyrus/index.php"; + description = "Open source Model-Based Engineering tool"; + # longDescription = '' + # Multi-platform database tool for developers, SQL programmers, database + # administrators and analysts. Supports all popular databases: MySQL, + # PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, + # Teradata, Firebird, Derby, etc. + # ''; + license = licenses.free; + platforms = ["x86_64-linux"]; + maintainers = [maintainers.eRgo35]; + }; + } +# desktopItem = makeDesktopItem { +# name = "dbeaver-ee"; +# exec = "dbeaver"; +# icon = "dbeaver"; +# desktopName = "dbeaver-ee"; +# comment = "SQL Integrated Development Environment"; +# genericName = "SQL Integrated Development Environment"; +# categories = ["Development"]; +# }; +# +# # src = pkgs.fetchurl { +# # url = "https://download.eclipse.org/modeling/mdt/papyrus/rcp/2023-12/6.6.0/papyrus-2023-12-6.6.0-linux64.tar.gz"; +# # sha512 = "ab1f1c0192fa7791550ef284c221a5445e02a699f4a82ec9b08f2c4b1f894b387751c37a6c5109f7709afea265126210682a266adb00fb26768057c0321ba802"; +# # }; +# # unpackPhase = "tar -xf $src -C $out/bin/papyrus --strip-components=1"; +# +# installPhase = '' +# mkdir -p $out/bin +# tar -xf $src -C $out/bin --strip-components=1 +# ''; +# - # # unpackPhase = "tar -xf $src -C $out/bin/papyrus --strip-components=1"; - # - # installPhase = '' - # mkdir -p $out/bin - # tar -xf $src -C $out/bin --strip-components=1 - # ''; - # diff --git a/pkgs/tikz-uml/default.nix b/pkgs/tikz-uml/default.nix index be23808..f12d700 100644 --- a/pkgs/tikz-uml/default.nix +++ b/pkgs/tikz-uml/default.nix @@ -1,4 +1,2 @@ -{ pkgs ? import {} }: - +{pkgs ? import {}}: pkgs.callPackage ./tikzuml.nix {} - diff --git a/pkgs/tikz-uml/tikzuml.nix b/pkgs/tikz-uml/tikzuml.nix index 7e36291..3a1f34e 100644 --- a/pkgs/tikz-uml/tikzuml.nix +++ b/pkgs/tikz-uml/tikzuml.nix @@ -1,6 +1,10 @@ -{ lib, stdenvNoCC, fetchurl, mkShell }: -let - pkgs = import { }; +{ + lib, + stdenvNoCC, + fetchurl, + mkShell, +}: let + pkgs = import {}; version = "1.0"; date = "2016-03-29"; @@ -11,38 +15,38 @@ let url = "http://perso.ensta-paristech.fr/~kielbasi/tikzuml/var/files/src/tikzuml-v${version}-${date}.tbz"; sha256 = "0cbc4a20c8ed40162b3b9ab1400b174293ec1ad7508e640ca879e78c45a105d0"; }; - - tikzuml = { pkgs = [ pkgs.tikzuml ]; }; + + tikzuml = {pkgs = [pkgs.tikzuml];}; texpkgs = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-full; inherit tikzuml; }; +in + stdenvNoCC.mkDerivation (finalAttrs: { + pname = "tikz-uml"; + inherit version; -in stdenvNoCC.mkDerivation (finalAttrs: { - pname = "tikz-uml"; - inherit version; - - inherit src; + inherit src; - installPhase = '' - runHook preInstall + installPhase = '' + runHook preInstall - mkdir -p $out/share/texmf-nix/latex/tikz-uml - mkdir -p $out/share/texmf-nix/doc/tikz-uml - cp -prd doc/. $out/share/texmf-nix/doc/tikz-uml - cp -prd tikz-uml.sty $out/share/texmf-nix/latex/tikz-uml/ + mkdir -p $out/share/texmf-nix/latex/tikz-uml + mkdir -p $out/share/texmf-nix/doc/tikz-uml + cp -prd doc/. $out/share/texmf-nix/doc/tikz-uml + cp -prd tikz-uml.sty $out/share/texmf-nix/latex/tikz-uml/ - # install -Dm644 "$src/tikzuml-v${version}-${date}/tikz-uml.sty" "$out/share/texmf-nix/tex/latex/tikz-uml/tikz-uml.sty" + # install -Dm644 "$src/tikzuml-v${version}-${date}/tikz-uml.sty" "$out/share/texmf-nix/tex/latex/tikz-uml/tikz-uml.sty" - runHook postInstall - ''; + runHook postInstall + ''; - meta = with lib; { - homepage = "https://perso.ensta-paris.fr/~kielbasi/tikzuml/index.php"; - description = "A LaTeX package for drawing UML diagrams using pgf/tikz"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ eRgo35 ]; - platforms = platforms.unix; - }; -}) + meta = with lib; { + homepage = "https://perso.ensta-paris.fr/~kielbasi/tikzuml/index.php"; + description = "A LaTeX package for drawing UML diagrams using pgf/tikz"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [eRgo35]; + platforms = platforms.unix; + }; + })