alejandra and dwm xf86 keys

This commit is contained in:
2024-04-22 08:26:49 +02:00
parent 038bc3b7e5
commit 5d6abd228e
34 changed files with 360 additions and 302 deletions

View File

@@ -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
];
};
};

View File

@@ -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";
};

View File

@@ -1,5 +1,6 @@
let cli = import ./aliases.nix; in
{
let
cli = import ./aliases.nix;
in {
programs.bash = {
enable = true;
shellAliases = cli.myAliases;

View File

@@ -12,9 +12,9 @@
bc
bottom
ncdu
ltex-ls
ltex-ls
nil
alejandra
alejandra
timer
jq
diffsitter

View File

@@ -1,6 +1,6 @@
{
programs.git = {
enable = true;
enable = true;
userName = "Michał Czyż";
userEmail = "mike@c2yz.com";
signing = {

View File

@@ -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;
};

View File

@@ -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;
}

View File

@@ -2,6 +2,5 @@
services.betterlockscreen = {
enable = true;
package = pkgs.unstable.betterlockscreen;
};
}

View File

@@ -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;

View File

@@ -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'"
];
};
};
};
}

View File

@@ -1,5 +1,5 @@
{
lib,
lib,
config,
pkgs,
...

View File

@@ -1,4 +1,9 @@
{lib, config, pkgs, ...}: {
{
lib,
config,
pkgs,
...
}: {
# enable gtk
gtk = {
enable = true;

View File

@@ -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
# };
}

View File

@@ -7,7 +7,7 @@
};
theme = "Gruvbox Dark";
settings = {
confirm_os_window_close = 0;
detect_urls = true;

View File

@@ -1,6 +1,9 @@
{inputs, pkgs, ...}: {
nixpkgs.overlays = [
{
inputs,
pkgs,
...
}: {
nixpkgs.overlays = [
inputs.neovim-nightly-overlay.overlay
];

View File

@@ -7,7 +7,7 @@
terminal = "screen-256color";
baseIndex = 1;
plugins = with pkgs.tmuxPlugins; [
sensible
sensible
vim-tmux-navigator
gruvbox
yank

View File

@@ -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.

View File

@@ -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/";

View File

@@ -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

View File

@@ -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.

View File

@@ -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"];
};
};
}

28
hosts/common/x.nix Normal file
View File

@@ -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
];
}

View File

@@ -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 = [

View File

@@ -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;
};

View File

@@ -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

View File

@@ -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

View File

@@ -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";

View File

@@ -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

View File

@@ -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.

View File

@@ -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 {
# ...

View File

@@ -1,3 +1,2 @@
{ pkgs ? import <nixpkgs> {} }:
{pkgs ? import <nixpkgs> {}}:
pkgs.callPackage ./papyrus.nix {}

View File

@@ -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
# '';
#

View File

@@ -1,4 +1,2 @@
{ pkgs ? import <nixpkgs> {} }:
{pkgs ? import <nixpkgs> {}}:
pkgs.callPackage ./tikzuml.nix {}

View File

@@ -1,6 +1,10 @@
{ lib, stdenvNoCC, fetchurl, mkShell }:
let
pkgs = import <nixpkgs> { };
{
lib,
stdenvNoCC,
fetchurl,
mkShell,
}: let
pkgs = import <nixpkgs> {};
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;
};
})