Compare commits
21 Commits
7d10c8e7d2
...
2572513c44
Author | SHA1 | Date | |
---|---|---|---|
2572513c44 | |||
3baf2453f2 | |||
8457523518 | |||
84420e427e | |||
9bc392818f | |||
0ee158677a | |||
1fe8d17523 | |||
5500164669 | |||
f07ab92268 | |||
f19ce21672 | |||
5d5096f452 | |||
2f14aa1e9b | |||
42b5dfeee7 | |||
7f73da037b | |||
f05eae5b83 | |||
739901d174 | |||
7b4d461ba1 | |||
e55af69ed3 | |||
ac7e7a16d8 | |||
a79c1a9af8 | |||
63dc618f6d |
209
flake.lock
generated
209
flake.lock
generated
@ -135,22 +135,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_4": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1650374568,
|
||||
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
@ -173,24 +157,6 @@
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1696331477,
|
||||
"narHash": "sha256-YkbRa/1wQWdWkVJ01JvV+75KIdM37UErqKgTf0L54Fk=",
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "flake-utils-plus",
|
||||
"rev": "bfc53579db89de750b25b0c5e7af299e0c06d7d3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "flake-utils-plus",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils-plus_2": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1715533576,
|
||||
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
|
||||
@ -242,24 +208,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_4": {
|
||||
"inputs": {
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1694529238,
|
||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -289,38 +237,15 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726989464,
|
||||
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
|
||||
"lastModified": 1728041527,
|
||||
"narHash": "sha256-03liqiJtk9UP7YQHW4r8MduKCK242FQzud8iWvvlK+o=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
|
||||
"rev": "509dbf8d45606b618e9ec3bbe4e936b7c5bc6c1e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"prism",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1698162493,
|
||||
"narHash": "sha256-Zehw3cWiTXGGlDDjzTgIX1BhWG+049D/RcSMAiypAcM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "14b54157201fd574b0fa1b3ce7394c9d3a87fbc1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "master",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
@ -362,7 +287,9 @@
|
||||
"hyprlang": "hyprlang",
|
||||
"hyprutils": "hyprutils",
|
||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems",
|
||||
"xdph": "xdph"
|
||||
},
|
||||
@ -628,15 +555,15 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1727348695,
|
||||
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
|
||||
"owner": "NixOS",
|
||||
"lastModified": 1728018373,
|
||||
"narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
|
||||
"rev": "bc947f541ae55e999ffdb4013441347d83b00feb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
@ -674,6 +601,22 @@
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1728067476,
|
||||
"narHash": "sha256-/uJcVXuBt+VFCPQIX+4YnYrHaubJSx4HoNsJVNRgANM=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6e6b3dd395c3b1eb9be9f2d096383a8d05add030",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable_3": {
|
||||
"locked": {
|
||||
"lastModified": 1725762081,
|
||||
"narHash": "sha256-vNv+aJUW5/YurRy1ocfvs4q/48yVESwlC/yHzjkZSP8=",
|
||||
@ -705,38 +648,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1728067476,
|
||||
"narHash": "sha256-/uJcVXuBt+VFCPQIX+4YnYrHaubJSx4HoNsJVNRgANM=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6e6b3dd395c3b1eb9be9f2d096383a8d05add030",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1697723726,
|
||||
"narHash": "sha256-SaTWPkI8a5xSHX/rrKzUe+/uVNy6zCGMXgoeMb7T9rg=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7c9cc5a6e5d38010801741ac830a3f8fd667a7a0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
@ -765,26 +676,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"prism": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"snowfall-lib": "snowfall-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1714675036,
|
||||
"narHash": "sha256-xGOQz4R8v0yy16tDhQpuswqeOuMm4bNZ9O4lhs6reK8=",
|
||||
"owner": "IogaMaster",
|
||||
"repo": "prism",
|
||||
"rev": "3822346485a01fefb27f12d9f397c890b599ff7e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "IogaMaster",
|
||||
"repo": "prism",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"alacritty-theme": "alacritty-theme",
|
||||
@ -795,10 +686,10 @@
|
||||
"nix-ld": "nix-ld",
|
||||
"nix-matlab": "nix-matlab",
|
||||
"nix-topology": "nix-topology",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-stable": "nixpkgs-stable_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"prism": "prism",
|
||||
"snowfall-lib": "snowfall-lib_2",
|
||||
"snowfall-lib": "snowfall-lib",
|
||||
"sops-nix": "sops-nix",
|
||||
"yazi-flavors": "yazi-flavors"
|
||||
}
|
||||
@ -807,29 +698,6 @@
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-utils-plus": "flake-utils-plus",
|
||||
"nixpkgs": [
|
||||
"prism",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1696432959,
|
||||
"narHash": "sha256-oJQZv2MYyJaVyVJY5IeevzqpGvMGKu5pZcCCJvb+xjc=",
|
||||
"owner": "snowfallorg",
|
||||
"repo": "lib",
|
||||
"rev": "92803a029b5314d4436a8d9311d8707b71d9f0b6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "snowfallorg",
|
||||
"repo": "lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"snowfall-lib_2": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_4",
|
||||
"flake-utils-plus": "flake-utils-plus_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
@ -853,7 +721,7 @@
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||
"nixpkgs-stable": "nixpkgs-stable_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727734513,
|
||||
@ -929,21 +797,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_5": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xdph": {
|
||||
"inputs": {
|
||||
"hyprland-protocols": "hyprland-protocols_2",
|
||||
|
11
flake.nix
11
flake.nix
@ -1,12 +1,14 @@
|
||||
{
|
||||
description = "Home Manager configuration of julian";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||
inputs = rec {
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
nixpkgs = nixpkgs-unstable;
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.05";
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
@ -32,13 +34,14 @@
|
||||
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||
hyprland.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
hyprland-plugins = {
|
||||
url = "github:hyprwm/hyprland-plugins";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
|
||||
nix-colors.url = "github:Misterio77/nix-colors";
|
||||
prism.url = "github:IogaMaster/prism";
|
||||
|
||||
nix-topology.url = "github:oddlama/nix-topology";
|
||||
nix-topology.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
@ -32,8 +32,8 @@
|
||||
};
|
||||
topgrade.enable = true;
|
||||
neovim.enable = true;
|
||||
# kitty.enable = true;
|
||||
wezterm.enable = true;
|
||||
kitty.enable = true;
|
||||
# wezterm.enable = true;
|
||||
yazi.enable = true;
|
||||
emacs.enable = true;
|
||||
|
||||
@ -58,11 +58,11 @@
|
||||
# neocmakelsp # cmake
|
||||
|
||||
# Rust setup
|
||||
unstable.rustc
|
||||
unstable.rustfmt
|
||||
unstable.cargo
|
||||
unstable.clippy
|
||||
unstable.rust-analyzer
|
||||
rustc
|
||||
rustfmt
|
||||
cargo
|
||||
clippy
|
||||
rust-analyzer
|
||||
|
||||
# Further tools
|
||||
cntr # nix debugger
|
||||
@ -92,9 +92,11 @@
|
||||
tor-browser
|
||||
|
||||
## My scripts
|
||||
pkgs.frajul.deploy-to-pianopi
|
||||
pkgs.frajul.edit-config
|
||||
pkgs.frajul.open-messaging
|
||||
frajul.deploy-to-pianopi
|
||||
frajul.open-messaging
|
||||
frajul.edit-config
|
||||
frajul.xwacomcalibrate
|
||||
frajul.lntocp
|
||||
]
|
||||
++ lib.lists.concatMap (packages-list-file: import packages-list-file { inherit pkgs; }) [
|
||||
./fonts.nix
|
||||
|
45
homes/x86_64-linux/julian@aspi/mimeapps.nix
Normal file
45
homes/x86_64-linux/julian@aspi/mimeapps.nix
Normal file
@ -0,0 +1,45 @@
|
||||
# Manage mime-types via home-manager. Sadly the file gets overwritten by some applications and also not all of the desktop file paths are correct
|
||||
# Use from home-manager like this:
|
||||
#
|
||||
# xdg.mimeApps.enable = true;
|
||||
# xdg.mimeApps.defaultApplications = import ./mimeapps.nix {
|
||||
# inherit pkgs;
|
||||
# inherit lib;
|
||||
# };
|
||||
|
||||
{ lib, pkgs, ... }:
|
||||
let
|
||||
package-names = with pkgs; {
|
||||
"x-scheme-handler/tg" = telegram-desktop;
|
||||
"x-scheme-handler/mailto" = thunderbird;
|
||||
"message/rfc822" = thunderbird;
|
||||
"x-scheme-handler/mid" = thunderbird;
|
||||
"x-scheme-handler/webcal" = thunderbird;
|
||||
"text/calendar" = thunderbird;
|
||||
"application/x-extension-ics" = thunderbird;
|
||||
"x-scheme-handler/webcals" = thunderbird;
|
||||
"application/zip" = mate.engrampa;
|
||||
"text/plain" = xfce.mousepad;
|
||||
"image/jpeg" = nomacs;
|
||||
"application/pdf" = evince;
|
||||
"text/html" = firefox;
|
||||
"x-scheme-handler/http" = firefox;
|
||||
"x-scheme-handler/https" = firefox;
|
||||
"x-scheme-handler/chrome" = firefox;
|
||||
"application/x-extension-htm" = firefox;
|
||||
"application/x-extension-html" = firefox;
|
||||
"application/x-extension-shtml" = firefox;
|
||||
"application/xhtml+xml" = firefox;
|
||||
"application/x-extension-xhtml" = firefox;
|
||||
"application/x-extension-xht" = firefox;
|
||||
"image/svg+xml" = inkscape;
|
||||
"image/png" = nomacs;
|
||||
"x-scheme-handler/eclipse+command" = dbeaver-bin;
|
||||
"video/mp4" = vlc;
|
||||
"audio/mpeg" = vlc;
|
||||
"inode/directory" = pcmanfm;
|
||||
};
|
||||
in
|
||||
lib.mapAttrs (mimeType: package: [
|
||||
"${package}/share/applications/${package.pname}.desktop"
|
||||
]) package-names
|
@ -10,7 +10,7 @@ with pkgs;
|
||||
|
||||
# makemkv
|
||||
audacity
|
||||
gnome.cheese
|
||||
cheese
|
||||
zoom-us
|
||||
qutebrowser
|
||||
|
||||
@ -41,7 +41,7 @@ with pkgs;
|
||||
tdesktop # telegram
|
||||
|
||||
tealdeer
|
||||
gcolor2 # gcolor3 does not work
|
||||
gcolor3
|
||||
# cups
|
||||
wget
|
||||
nodejs
|
||||
@ -68,8 +68,8 @@ with pkgs;
|
||||
usbutils # lsusb
|
||||
pciutils # lspci
|
||||
|
||||
gnome.gnome-keyring
|
||||
gnome.seahorse
|
||||
gnome-keyring
|
||||
seahorse
|
||||
polkit_gnome
|
||||
nix-index
|
||||
python3
|
||||
@ -151,13 +151,10 @@ with pkgs;
|
||||
|
||||
audible-cli
|
||||
|
||||
unstable.path-of-building
|
||||
|
||||
## My scripts
|
||||
frajul.edit-config
|
||||
frajul.xwacomcalibrate
|
||||
path-of-building
|
||||
|
||||
conda
|
||||
watchexec # Run command when any file in current dir changes
|
||||
|
||||
pkg-config # Often needed to build something
|
||||
]
|
||||
|
@ -6,11 +6,11 @@ with pkgs;
|
||||
shellcheck
|
||||
|
||||
# Rust setup
|
||||
unstable.rustc
|
||||
unstable.rustfmt
|
||||
unstable.cargo
|
||||
unstable.clippy
|
||||
unstable.rust-analyzer
|
||||
rustc
|
||||
rustfmt
|
||||
cargo
|
||||
clippy
|
||||
rust-analyzer
|
||||
|
||||
# Further tools
|
||||
lazygit
|
||||
@ -18,7 +18,7 @@ with pkgs;
|
||||
|
||||
# makemkv
|
||||
audacity
|
||||
gnome.cheese
|
||||
cheese
|
||||
zoom-us
|
||||
qutebrowser
|
||||
|
||||
@ -54,7 +54,7 @@ with pkgs;
|
||||
tdesktop # telegram
|
||||
|
||||
tealdeer
|
||||
gcolor2 # gcolor3 does not work
|
||||
gcolor3
|
||||
# cups
|
||||
wget
|
||||
gparted
|
||||
@ -83,8 +83,8 @@ with pkgs;
|
||||
usbutils # lsusb
|
||||
pciutils # lspci
|
||||
|
||||
gnome.gnome-keyring
|
||||
gnome.seahorse
|
||||
gnome-keyring
|
||||
seahorse
|
||||
polkit_gnome
|
||||
nix-index
|
||||
python3
|
||||
@ -162,7 +162,7 @@ with pkgs;
|
||||
# cudaPackages.cudatoolkit
|
||||
# openmvg
|
||||
# colmapWithCuda
|
||||
unstable.path-of-building
|
||||
path-of-building
|
||||
|
||||
nheko
|
||||
|
||||
|
@ -3,11 +3,11 @@
|
||||
with pkgs;
|
||||
[
|
||||
# Rust setup
|
||||
unstable.rustc
|
||||
unstable.rustfmt
|
||||
unstable.cargo
|
||||
unstable.clippy
|
||||
unstable.rust-analyzer
|
||||
rustc
|
||||
rustfmt
|
||||
cargo
|
||||
clippy
|
||||
rust-analyzer
|
||||
|
||||
# Further tools
|
||||
cntr # nix debugger
|
||||
|
@ -35,6 +35,6 @@ in
|
||||
".config/alacritty/alacritty.toml".source = ./alacritty.toml;
|
||||
};
|
||||
|
||||
systemd.user.sessionVariables.TERMINAL = "alacritty";
|
||||
home.sessionVariables.TERMINAL = "alacritty";
|
||||
};
|
||||
}
|
||||
|
@ -20,19 +20,10 @@ in
|
||||
};
|
||||
|
||||
# Do not make conditional, just toggle things on and off
|
||||
imports = [
|
||||
inputs.prism.homeModules.prism
|
||||
inputs.nix-colors.homeManagerModules.default
|
||||
];
|
||||
imports = [ inputs.nix-colors.homeManagerModules.default ];
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# systemd.user.sessionVariables.GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark";
|
||||
prism = {
|
||||
enable = true;
|
||||
wallpapers = ./wallpapers;
|
||||
colorscheme = inputs.nix-colors.colorschemes.${cfg.colorscheme};
|
||||
};
|
||||
|
||||
# home.sessionVariables.GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark";
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
|
@ -34,44 +34,47 @@ in
|
||||
config = mkIf cfg.enable {
|
||||
home.sessionPath = [ "/home/julian/.config/emacs/bin" ];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
binutils # native-comp needs 'as', provided by this
|
||||
home.packages =
|
||||
with pkgs;
|
||||
[
|
||||
binutils # native-comp needs 'as', provided by this
|
||||
|
||||
## Doom dependencies
|
||||
git
|
||||
(ripgrep.override { withPCRE2 = true; })
|
||||
## Doom dependencies
|
||||
git
|
||||
(ripgrep.override { withPCRE2 = true; })
|
||||
|
||||
## Optional dependencies
|
||||
fd # faster projectile indexing
|
||||
imagemagick # for image-dired
|
||||
zstd # for undo-fu-session/undo-tree compression
|
||||
## Optional dependencies
|
||||
fd # faster projectile indexing
|
||||
imagemagick # for image-dired
|
||||
zstd # for undo-fu-session/undo-tree compression
|
||||
|
||||
## Module dependencies
|
||||
(aspellWithDicts (
|
||||
ds: with ds; [
|
||||
en
|
||||
en-computers
|
||||
en-science
|
||||
de
|
||||
]
|
||||
))
|
||||
sqlite
|
||||
## Module dependencies
|
||||
(aspellWithDicts (
|
||||
ds: with ds; [
|
||||
en
|
||||
en-computers
|
||||
en-science
|
||||
de
|
||||
]
|
||||
))
|
||||
sqlite
|
||||
|
||||
# Code formatters for use with doom emacs
|
||||
nixfmt-rfc-style # nix
|
||||
dockfmt # docker
|
||||
google-java-format # java
|
||||
black # python
|
||||
unstable.rustfmt # rust
|
||||
shfmt
|
||||
pyright
|
||||
# Code formatters for use with doom emacs
|
||||
nixfmt-rfc-style # nix
|
||||
dockfmt # docker
|
||||
google-java-format # java
|
||||
black # python
|
||||
rustfmt # rust
|
||||
shfmt
|
||||
pyright
|
||||
|
||||
graphviz
|
||||
# Lsps for use with doom emacs
|
||||
# neocmakelsp # cmake
|
||||
graphviz
|
||||
# Lsps for use with doom emacs
|
||||
# neocmakelsp # cmake
|
||||
|
||||
emacs-all-the-icons-fonts
|
||||
] ++ lib.optional config.modules.non-nixos.is-nixos emacs;
|
||||
emacs-all-the-icons-fonts
|
||||
]
|
||||
++ lib.optional config.modules.non-nixos.is-nixos emacs;
|
||||
|
||||
home.activation.installDoomEmacs = lib.home-manager.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
if [ ! -d "/home/julian/.config/emacs" ]; then
|
||||
|
@ -46,7 +46,8 @@ in
|
||||
# hyprpicker # TODO
|
||||
# hyprcursor # TODO
|
||||
brightnessctl
|
||||
grimblast
|
||||
# grimblast
|
||||
frajul.hyprshot-gui
|
||||
];
|
||||
|
||||
# services.hypridle = {
|
||||
@ -86,7 +87,7 @@ in
|
||||
wayland.windowManager.hyprland = {
|
||||
# Whether to enable Hyprland wayland compositor
|
||||
enable = true;
|
||||
# package = inputs.hyprland.packages."${pkgs.system}".hyprland; # does only work with nixos-unstable
|
||||
package = inputs.hyprland.packages."${pkgs.system}".hyprland; # does only work with nixos-unstable
|
||||
|
||||
# The hyprland package to use (simplifies use of plugins)
|
||||
# package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
@ -99,9 +100,9 @@ in
|
||||
# Make PATH available to systemd services
|
||||
systemd.variables = [ "--all" ];
|
||||
|
||||
plugins = with pkgs; [
|
||||
# inputs.hyprland-plugins.packages.${pkgs.system}.hyprbars # does only work with nixos-unstable
|
||||
hyprlandPlugins.hyprbars
|
||||
plugins = [
|
||||
inputs.hyprland-plugins.packages.${pkgs.system}.hyprbars # does only work with nixos-unstable
|
||||
# hyprlandPlugins.hyprbars
|
||||
];
|
||||
|
||||
settings = {
|
||||
@ -135,6 +136,7 @@ in
|
||||
dwindle = {
|
||||
pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true; # You probably want this
|
||||
no_gaps_when_only = 2; # with border
|
||||
};
|
||||
|
||||
# Master layout
|
||||
@ -196,7 +198,8 @@ in
|
||||
# binds
|
||||
bind = [
|
||||
# compositor commands
|
||||
"$mod, Space, togglefloating,"
|
||||
"$mod, Space, focuswindow, floating"
|
||||
"$mod SHIFT, Space, togglefloating,"
|
||||
"$mod, F, fullscreen,"
|
||||
"$mod, X, killactive,"
|
||||
|
||||
@ -205,7 +208,7 @@ in
|
||||
# opening applications
|
||||
"$mod, D, exec, wofi --show drun,run"
|
||||
"$mod, E, exec, pcmanfm"
|
||||
"$mod, Return, exec, wezterm"
|
||||
"$mod, Return, exec, kitty"
|
||||
"$mod, B, exec, firefox"
|
||||
"$mod, C, exec, qalculate-gtk"
|
||||
|
||||
@ -214,7 +217,7 @@ in
|
||||
"$mod, Escape, exec, wlogout -p layer-shell"
|
||||
"$mod, TAB, exec, hyprlock"
|
||||
"$mod SHIFT, R, exec, hyprctl reload"
|
||||
", Print, exec, grimblast --notify copysave area"
|
||||
", Print, exec, hyprshot-gui"
|
||||
|
||||
# "$mod SHIFT, E, exec, pkill Hyprland"
|
||||
# "$mod, G, togglegroup,"
|
||||
@ -296,7 +299,8 @@ in
|
||||
bar_text_size = 10;
|
||||
bar_height = 16;
|
||||
bar_text_font = "Ubuntu Nerd Font";
|
||||
bar_precedence_over_border = false;
|
||||
bar_precedence_over_border = true;
|
||||
bar_color = "rgb(${palette.base01})";
|
||||
|
||||
hyprbars-button = [ "rgb(${palette.base03}), 14, , hyprctl dispatch killactive" ];
|
||||
};
|
||||
|
@ -25,7 +25,7 @@ in
|
||||
|
||||
services.mako = {
|
||||
enable = true;
|
||||
defaultTimeout = 5; # seconds, can be overwritten by notification sender
|
||||
defaultTimeout = 5000; # milliseconds, can be overwritten by notification sender
|
||||
backgroundColor = "#${palette.base00}";
|
||||
textColor = "#${palette.base05}";
|
||||
borderColor = "#${palette.base0D}";
|
||||
|
@ -1,265 +0,0 @@
|
||||
/* Keyframes */
|
||||
|
||||
@keyframes blink-critical {
|
||||
to {
|
||||
/*color: @white;*/
|
||||
background-color: @critical;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Styles */
|
||||
|
||||
/* Colors (gruvbox) */
|
||||
@define-color black #282828;
|
||||
@define-color red #cc241d;
|
||||
@define-color green #98971a;
|
||||
@define-color yellow #d79921;
|
||||
@define-color blue #458588;
|
||||
@define-color purple #b16286;
|
||||
@define-color aqua #689d6a;
|
||||
@define-color gray #a89984;
|
||||
@define-color brgray #928374;
|
||||
@define-color brred #fb4934;
|
||||
@define-color brgreen #b8bb26;
|
||||
@define-color bryellow #fabd2f;
|
||||
@define-color brblue #83a598;
|
||||
@define-color brpurple #d3869b;
|
||||
@define-color braqua #8ec07c;
|
||||
@define-color white #ebdbb2;
|
||||
@define-color bg2 #504945;
|
||||
|
||||
|
||||
@define-color warning @bryellow;
|
||||
@define-color critical @red;
|
||||
@define-color mode @black;
|
||||
@define-color unfocused @bg2;
|
||||
@define-color focused @braqua;
|
||||
@define-color inactive @purple;
|
||||
@define-color sound @brpurple;
|
||||
@define-color network @purple;
|
||||
@define-color memory @braqua;
|
||||
@define-color cpu @green;
|
||||
@define-color temp @brgreen;
|
||||
@define-color layout @bryellow;
|
||||
@define-color battery @aqua;
|
||||
@define-color date @black;
|
||||
@define-color time @white;
|
||||
|
||||
/* Reset all styles */
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
min-height: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
}
|
||||
|
||||
/* The whole bar */
|
||||
#waybar {
|
||||
background: rgba(40, 40, 40, 0.8784313725); /* #282828e0 */
|
||||
color: @white;
|
||||
font-family: JetBrains Mono, Siji;
|
||||
font-size: 10pt;
|
||||
/*font-weight: bold;*/
|
||||
}
|
||||
|
||||
/* Each module */
|
||||
#battery,
|
||||
#clock,
|
||||
#cpu,
|
||||
#language,
|
||||
#memory,
|
||||
#mode,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#temperature,
|
||||
#tray,
|
||||
#backlight,
|
||||
#idle_inhibitor,
|
||||
#disk,
|
||||
#user,
|
||||
#mpris {
|
||||
padding-left: 8pt;
|
||||
padding-right: 8pt;
|
||||
}
|
||||
|
||||
/* Each critical module */
|
||||
#mode,
|
||||
#memory.critical,
|
||||
#cpu.critical,
|
||||
#temperature.critical,
|
||||
#battery.critical.discharging {
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
animation-name: blink-critical;
|
||||
animation-duration: 1s;
|
||||
}
|
||||
|
||||
/* Each warning */
|
||||
#network.disconnected,
|
||||
#memory.warning,
|
||||
#cpu.warning,
|
||||
#temperature.warning,
|
||||
#battery.warning.discharging {
|
||||
color: @warning;
|
||||
}
|
||||
|
||||
/* And now modules themselves in their respective order */
|
||||
|
||||
/* Current sway mode (resize etc) */
|
||||
#mode {
|
||||
color: @white;
|
||||
background: @mode;
|
||||
}
|
||||
|
||||
/* Workspaces stuff */
|
||||
#workspaces button {
|
||||
/*font-weight: bold;*/
|
||||
padding-left: 2pt;
|
||||
padding-right: 2pt;
|
||||
color: @white;
|
||||
background: @unfocused;
|
||||
}
|
||||
|
||||
/* Inactive (on unfocused output) */
|
||||
#workspaces button.visible {
|
||||
color: @white;
|
||||
background: @inactive;
|
||||
}
|
||||
|
||||
/* Active (on focused output) */
|
||||
#workspaces button.focused {
|
||||
color: @black;
|
||||
background: @focused;
|
||||
}
|
||||
|
||||
/* Contains an urgent window */
|
||||
#workspaces button.urgent {
|
||||
color: @black;
|
||||
background: @warning;
|
||||
}
|
||||
|
||||
/* Style when cursor is on the button */
|
||||
#workspaces button:hover {
|
||||
background: @black;
|
||||
color: @white;
|
||||
}
|
||||
|
||||
#window {
|
||||
margin-right: 35pt;
|
||||
margin-left: 35pt;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
background: @sound;
|
||||
color: @black;
|
||||
}
|
||||
|
||||
#network {
|
||||
background: @network;
|
||||
color: @white;
|
||||
}
|
||||
|
||||
#memory {
|
||||
background: @memory;
|
||||
color: @black;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
background: @cpu;
|
||||
color: @white;
|
||||
}
|
||||
|
||||
#temperature {
|
||||
background: @temp;
|
||||
color: @black;
|
||||
}
|
||||
|
||||
#language {
|
||||
background: @layout;
|
||||
color: @black;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background: @battery;
|
||||
color: @white;
|
||||
}
|
||||
|
||||
#tray {
|
||||
background: @date;
|
||||
}
|
||||
|
||||
#clock.date {
|
||||
background: @date;
|
||||
color: @white;
|
||||
}
|
||||
|
||||
#clock.time {
|
||||
background: @time;
|
||||
color: @black;
|
||||
}
|
||||
|
||||
#custom-arrow1 {
|
||||
font-size: 11pt;
|
||||
color: @time;
|
||||
background: @date;
|
||||
}
|
||||
|
||||
#custom-arrow2 {
|
||||
font-size: 11pt;
|
||||
color: @date;
|
||||
background: @layout;
|
||||
}
|
||||
|
||||
#custom-arrow3 {
|
||||
font-size: 11pt;
|
||||
color: @layout;
|
||||
background: @battery;
|
||||
}
|
||||
|
||||
#custom-arrow4 {
|
||||
font-size: 11pt;
|
||||
color: @battery;
|
||||
background: @temp;
|
||||
}
|
||||
|
||||
#custom-arrow5 {
|
||||
font-size: 11pt;
|
||||
color: @temp;
|
||||
background: @cpu;
|
||||
}
|
||||
|
||||
#custom-arrow6 {
|
||||
font-size: 11pt;
|
||||
color: @cpu;
|
||||
background: @memory;
|
||||
}
|
||||
|
||||
#custom-arrow7 {
|
||||
font-size: 11pt;
|
||||
color: @memory;
|
||||
background: @network;
|
||||
}
|
||||
|
||||
#custom-arrow8 {
|
||||
font-size: 11pt;
|
||||
color: @network;
|
||||
background: @sound;
|
||||
}
|
||||
|
||||
#custom-arrow9 {
|
||||
font-size: 11pt;
|
||||
color: @sound;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#custom-arrow10 {
|
||||
font-size: 11pt;
|
||||
color: @unfocused;
|
||||
background: transparent;
|
||||
}
|
@ -1,300 +0,0 @@
|
||||
|
||||
@keyframes blink-warning {
|
||||
70% {
|
||||
color: @light;
|
||||
}
|
||||
|
||||
to {
|
||||
color: @light;
|
||||
background-color: @warning;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes blink-critical {
|
||||
70% {
|
||||
color: @light;
|
||||
}
|
||||
|
||||
to {
|
||||
color: @light;
|
||||
background-color: @critical;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Styles
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
/* COLORS */
|
||||
|
||||
/* Nord */
|
||||
@define-color bg #2E3440;
|
||||
/*@define-color bg #353C4A;*/
|
||||
@define-color light #D8DEE9;
|
||||
/*@define-color dark @nord_dark_font;*/
|
||||
@define-color warning #ebcb8b;
|
||||
@define-color critical #BF616A;
|
||||
@define-color mode #434C5E;
|
||||
/*@define-color workspaces @bg;*/
|
||||
/*@define-color workspaces @nord_dark_font;*/
|
||||
/*@define-color workspacesfocused #434C5E;*/
|
||||
@define-color workspacesfocused #4C566A;
|
||||
@define-color tray @workspacesfocused;
|
||||
@define-color sound #EBCB8B;
|
||||
@define-color network #5D7096;
|
||||
@define-color memory #546484;
|
||||
@define-color cpu #596A8D;
|
||||
@define-color temp #4D5C78;
|
||||
@define-color layout #5e81ac;
|
||||
@define-color battery #88c0d0;
|
||||
@define-color date #434C5E;
|
||||
@define-color time #434C5E;
|
||||
@define-color backlight #434C5E;
|
||||
@define-color nord_bg #434C5E;
|
||||
@define-color nord_bg_blue #546484;
|
||||
@define-color nord_light #D8DEE9;
|
||||
@define-color nord_light_font #D8DEE9;
|
||||
@define-color nord_dark_font #434C5E;
|
||||
|
||||
/* Reset all styles */
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 3px;
|
||||
min-height: 0;
|
||||
margin: 0.1em 0.2em 0.1em 0.2em;
|
||||
}
|
||||
|
||||
/* The whole bar */
|
||||
#waybar {
|
||||
background: @bg;
|
||||
color: @light;
|
||||
font-family: "Cantarell", "Font Awesome 5 Pro";
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Each module */
|
||||
#battery,
|
||||
#clock,
|
||||
#cpu,
|
||||
#custom-layout,
|
||||
#memory,
|
||||
#mode,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#temperature,
|
||||
#custom-alsa,
|
||||
#custom-pacman,
|
||||
#custom-weather,
|
||||
#custom-gpu,
|
||||
#tray,
|
||||
#backlight,
|
||||
#language,
|
||||
#custom-cpugovernor {
|
||||
padding-left: 0.6em;
|
||||
padding-right: 0.6em;
|
||||
}
|
||||
|
||||
/* Each module that should blink */
|
||||
#mode,
|
||||
#memory,
|
||||
#temperature,
|
||||
#battery {
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
/* Each critical module */
|
||||
#memory.critical,
|
||||
#cpu.critical,
|
||||
#temperature.critical,
|
||||
#battery.critical {
|
||||
color: @critical;
|
||||
}
|
||||
|
||||
/* Each critical that should blink */
|
||||
#mode,
|
||||
#memory.critical,
|
||||
#temperature.critical,
|
||||
#battery.critical.discharging {
|
||||
animation-name: blink-critical;
|
||||
animation-duration: 2s;
|
||||
}
|
||||
|
||||
/* Each warning */
|
||||
#network.disconnected,
|
||||
#memory.warning,
|
||||
#cpu.warning,
|
||||
#temperature.warning,
|
||||
#battery.warning {
|
||||
background: @warning;
|
||||
color: @nord_dark_font;
|
||||
}
|
||||
|
||||
/* Each warning that should blink */
|
||||
#battery.warning.discharging {
|
||||
animation-name: blink-warning;
|
||||
animation-duration: 3s;
|
||||
}
|
||||
|
||||
/* And now modules themselves in their respective order */
|
||||
|
||||
#mode { /* Shown current Sway mode (resize etc.) */
|
||||
color: @light;
|
||||
background: @mode;
|
||||
}
|
||||
|
||||
/* Workspaces stuff */
|
||||
|
||||
#workspaces {
|
||||
/* color: #D8DEE9; */
|
||||
/* margin-right: 10px; */
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
font-weight: bold; /* Somewhy the bar-wide setting is ignored*/
|
||||
padding: 0;
|
||||
/* color: #999; */
|
||||
opacity: 1.0;
|
||||
background: @mode;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
#workspaces button.visible {
|
||||
background: @memory;
|
||||
color: #D8DEE9;
|
||||
opacity: 1;
|
||||
padding: 0 0.4em;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
border-color: #c9545d;
|
||||
color: #c9545d;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#window {
|
||||
margin-right: 40px;
|
||||
margin-left: 40px;
|
||||
font-weight: normal;
|
||||
}
|
||||
#bluetooth {
|
||||
background: @nord_bg_blue;
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
padding: 0 0.6em;
|
||||
}
|
||||
#custom-gpu {
|
||||
background: @nord_bg;
|
||||
font-weight: bold;
|
||||
padding: 0 0.6em;
|
||||
}
|
||||
#custom-weather {
|
||||
background: @mode;
|
||||
font-weight: bold;
|
||||
padding: 0 0.6em;
|
||||
}
|
||||
#custom-pacman {
|
||||
background: @nord_light;
|
||||
color: @nord_dark_font;
|
||||
font-weight: bold;
|
||||
padding: 0 0.6em;
|
||||
}
|
||||
#custom-scratchpad-indicator {
|
||||
background: @nord_light;
|
||||
color: @nord_dark_font;
|
||||
font-weight: bold;
|
||||
padding: 0 0.6em;
|
||||
}
|
||||
#idle_inhibitor {
|
||||
background: @memory;
|
||||
/*font-size: 1.6em;*/
|
||||
font-weight: bold;
|
||||
padding: 0 0.6em;
|
||||
}
|
||||
#custom-alsa {
|
||||
background: @sound;
|
||||
}
|
||||
|
||||
#network {
|
||||
background: @nord_bg_blue;
|
||||
}
|
||||
|
||||
#memory {
|
||||
background: @memory;
|
||||
}
|
||||
|
||||
#disk {
|
||||
background: @memory;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
background: @memory;
|
||||
color: #D8DEE9;
|
||||
}
|
||||
#cpu.critical {
|
||||
color: @nord_dark_font;
|
||||
}
|
||||
#language {
|
||||
background: @nord_bg_blue;
|
||||
color: #D8DEE9;
|
||||
padding: 0 0.4em;
|
||||
}
|
||||
#custom-cpugovernor {
|
||||
background-color: @nord_light;
|
||||
color: @nord_dark_font;
|
||||
}
|
||||
#custom-cpugovernor.perf {
|
||||
|
||||
}
|
||||
#temperature {
|
||||
background-color: @nord_bg;
|
||||
color: #D8DEE9;
|
||||
}
|
||||
#temperature.critical {
|
||||
background: @critical;
|
||||
}
|
||||
#custom-layout {
|
||||
background: @layout;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background: @battery;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
background: @backlight;
|
||||
}
|
||||
|
||||
#clock {
|
||||
background: @nord_bg_blue;
|
||||
color: #D8DEE9;
|
||||
}
|
||||
#clock.date {
|
||||
background: @date;
|
||||
}
|
||||
|
||||
#clock.time {
|
||||
background: @mode;
|
||||
}
|
||||
|
||||
#pulseaudio { /* Unsused but kept for those who needs it */
|
||||
background: @nord_bg_blue;
|
||||
color: #D8DEE9;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
background: #BF616A;
|
||||
color: #BF616A;
|
||||
/* No styles */
|
||||
}
|
||||
#pulseaudio.source-muted {
|
||||
background: #D08770;
|
||||
color: #D8DEE9;
|
||||
/* No styles */
|
||||
}
|
||||
#tray {
|
||||
background: #434C5E;
|
||||
}
|
@ -4,7 +4,7 @@
|
||||
"mode": "dock",
|
||||
"exclusive": true,
|
||||
"passtrough": true,
|
||||
"height": 20,
|
||||
"height": 16,
|
||||
|
||||
"modules-left": [
|
||||
"hyprland/workspaces"
|
||||
@ -14,8 +14,24 @@
|
||||
|
||||
"modules-right": ["idle_inhibitor", "disk", "cpu", "memory", "pulseaudio", "battery", "clock", "tray"],
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}"
|
||||
"hyprland/workspaces": {
|
||||
"on-scroll-up": "hyprctl dispatch workspace m+1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace m-1",
|
||||
"all-outputs": false,
|
||||
"on-click": "activate",
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7",
|
||||
"8": "8",
|
||||
"9": "9",
|
||||
"10": "10"
|
||||
}
|
||||
},
|
||||
|
||||
"idle_inhibitor": {
|
||||
@ -25,6 +41,7 @@
|
||||
"deactivated": ""
|
||||
}
|
||||
},
|
||||
|
||||
"disk": {
|
||||
"interval": 30,
|
||||
"format": "Free: {percentage_free}% ({free})",
|
||||
@ -32,44 +49,14 @@
|
||||
"unit": "GB"
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"on-scroll-up": "hyprctl dispatch workspace m+1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace m-1",
|
||||
"all-outputs": false,
|
||||
"on-click": "activate",
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7",
|
||||
"8": "8",
|
||||
"9": "9",
|
||||
"10": "10"
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"format": " {usage}%"
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"format": " {}%"
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 20,
|
||||
"tooltip": false,
|
||||
"spacing": 10
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"tooltip-format": "{calendar}",
|
||||
"format": "{:%a %d.%m %H:%M:%S}",
|
||||
"interval": 1
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": "<big></big>",
|
||||
@ -77,7 +64,7 @@
|
||||
"headphone": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"scroll-step": 5.0,
|
||||
"scroll-step": 5.0,
|
||||
"max-volume": 200,
|
||||
"on-click": "pulseaudio-popup",
|
||||
"on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
@ -93,5 +80,17 @@
|
||||
"format-plugged": " {capacity}% ({time})",
|
||||
"format-full": "{icon} ",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"tooltip-format": "{calendar}",
|
||||
"format": "{:%a %d.%m %H:%M:%S}",
|
||||
"interval": 1
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 20,
|
||||
"tooltip": false,
|
||||
"spacing": 10
|
||||
}
|
||||
}
|
||||
|
@ -24,200 +24,26 @@ in
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
settings.mainBar = builtins.fromJSON (builtins.readFile ./config.json);
|
||||
style = ''
|
||||
* {
|
||||
/* `otf-font-awesome` is required to be installed for icons */
|
||||
font-family: JetBrainsMono Nerd Font;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#custom-notification,
|
||||
#custom-launcher,
|
||||
#custom-power-menu,
|
||||
/*#custom-colorpicker,*/
|
||||
#custom-window,
|
||||
#memory,
|
||||
#disk,
|
||||
#network,
|
||||
#battery,
|
||||
#custom-spotify,
|
||||
#pulseaudio,
|
||||
#window,
|
||||
#idle_inhibitor,
|
||||
#cpu,
|
||||
#tray {
|
||||
padding: 0 15px;
|
||||
border-radius: 12px;
|
||||
background: #${palette.base00};
|
||||
color: #${palette.base07};
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
margin-right: 2px;
|
||||
margin-left: 2px;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: rgba(0, 0, 0, 0.096);
|
||||
border-radius: 17px;
|
||||
}
|
||||
|
||||
window * {
|
||||
background-color: transparent;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#workspaces button label {
|
||||
color: #${palette.base07};
|
||||
}
|
||||
|
||||
#workspaces button.active label {
|
||||
color: #${palette.base00};
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
box-shadow: #${palette.base07} 0 0 0 1.5px;
|
||||
background-color: #${palette.base00};
|
||||
min-width: 50px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background-color: transparent;
|
||||
border-radius: 17px;
|
||||
padding: 0 0px;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
background-color: #${palette.base00};
|
||||
border-radius: 12px;
|
||||
margin-left: 4px;
|
||||
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
min-width: 50px;
|
||||
box-shadow: rgba(0, 0, 0, 0.288) 2 2 5 2px;
|
||||
background-color: #${palette.base0F};
|
||||
background-size: 400% 400%;
|
||||
transition: all 0.3s ease;
|
||||
background: linear-gradient(
|
||||
58deg,
|
||||
#${palette.base0E},
|
||||
#${palette.base0E},
|
||||
#${palette.base0E},
|
||||
#${palette.base0D},
|
||||
#${palette.base0D},
|
||||
#${palette.base0E},
|
||||
#${palette.base08}
|
||||
);
|
||||
background-size: 300% 300%;
|
||||
animation: colored-gradient 20s ease infinite;
|
||||
}
|
||||
|
||||
@keyframes colored-gradient {
|
||||
0% {
|
||||
background-position: 71% 0%;
|
||||
}
|
||||
50% {
|
||||
background-position: 30% 100%;
|
||||
}
|
||||
100% {
|
||||
background-position: 71% 0%;
|
||||
}
|
||||
}
|
||||
|
||||
#custom-power-menu {
|
||||
margin-right: 10px;
|
||||
padding-left: 12px;
|
||||
padding-right: 15px;
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
#custom-spotify {
|
||||
margin-left: 5px;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
padding-top: 3px;
|
||||
color: #${palette.base07};
|
||||
background-color: #${palette.base00};
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
#custom-spotify.playing {
|
||||
color: rgb(180, 190, 254);
|
||||
background: rgba(30, 30, 46, 0.6);
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
#${palette.base02},
|
||||
#${palette.base00},
|
||||
#${palette.base00},
|
||||
#${palette.base00},
|
||||
#${palette.base00},
|
||||
#${palette.base02}
|
||||
);
|
||||
background-size: 400% 100%;
|
||||
animation: grey-gradient 3s linear infinite;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
@keyframes grey-gradient {
|
||||
0% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
100% {
|
||||
background-position: -33% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
#tray menu {
|
||||
color: #${palette.base07};
|
||||
background-color: #${palette.base00};
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
#battery.warning {
|
||||
color: #${palette.base08};
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
color: #${palette.base08};
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
#custom-notification.collapsed,
|
||||
#custom-notification.waiting_done {
|
||||
min-width: 12px;
|
||||
padding-right: 17px;
|
||||
}
|
||||
|
||||
#custom-notification.waiting_start,
|
||||
#custom-notification.expanded {
|
||||
background-color: transparent;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
#${palette.base02},
|
||||
#${palette.base00},
|
||||
#${palette.base00},
|
||||
#${palette.base00},
|
||||
#${palette.base00},
|
||||
#${palette.base02}
|
||||
);
|
||||
background-size: 400% 100%;
|
||||
animation: grey-gradient 3s linear infinite;
|
||||
min-width: 500px;
|
||||
border-radius: 17px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
xdg.configFile."waybar/style.css".source = ./style.css;
|
||||
xdg.configFile."waybar/theme.css".text = ''
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
*/
|
||||
|
||||
/* Main Colors */
|
||||
@define-color background #${palette.base00};
|
||||
@define-color foreground #${palette.base05};
|
||||
|
||||
/* Workspace Button Colors */
|
||||
@define-color hover-bg #${palette.base01};
|
||||
@define-color hover-fg #${palette.base05};
|
||||
@define-color active-bg #${palette.base02};
|
||||
@define-color active-fg #${palette.base0A};
|
||||
@define-color urgent-bg #${palette.base08};
|
||||
@define-color urgent-fg #${palette.base00};
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
94
modules/home/hyprland/waybar/style.css
Normal file
94
modules/home/hyprland/waybar/style.css
Normal file
@ -0,0 +1,94 @@
|
||||
* {
|
||||
/* `otf-font-awesome` is required to be installed for icons */
|
||||
font-family: JetBrainsMono Nerd Font;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* This imports the base16 colors */
|
||||
@import "theme.css";
|
||||
|
||||
/* Main Background */
|
||||
window#waybar { background: @background; }
|
||||
|
||||
/* Tooltip Styling */
|
||||
tooltip {
|
||||
color: @foreground;
|
||||
background: @background;
|
||||
border: solid;
|
||||
border-width: 1.5px;
|
||||
border-radius: 7px;
|
||||
border-color: white;
|
||||
}
|
||||
|
||||
/* Workspace Button */
|
||||
#workspaces button {
|
||||
color: @foreground;
|
||||
border-radius: 5px;
|
||||
box-shadow: none;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
padding: 0px;
|
||||
padding-right: 2px;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
/* Opened workspaces (also on other screen) */
|
||||
#workspaces button.visible{
|
||||
color: @active-fg;
|
||||
background: @hover-bg;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Active Workspace Button */
|
||||
#workspaces button.active {
|
||||
color: @active-fg;
|
||||
background: @active-bg;
|
||||
box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
|
||||
margin-right: 2px;
|
||||
margin-left: 2px;
|
||||
padding-right: 6px;
|
||||
padding-left: 6px;
|
||||
transition: all 0.4s cubic-bezier(.55,-0.68,.48,1.682);
|
||||
}
|
||||
|
||||
/* Hover Effect for Workspace Buttons */
|
||||
#workspaces button.inactive:hover {
|
||||
color: @hover-fg;
|
||||
background: @hover-bg;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Urgent Workspace Buttons */
|
||||
#workspaces button.urgent {
|
||||
color: @urgent-fg;
|
||||
background: @urgent-bg;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* General Module Styling */
|
||||
#idle_inhibitor,
|
||||
#disk,
|
||||
#cpu,
|
||||
#memory,
|
||||
#pulseaudio,
|
||||
#battery,
|
||||
#clock,
|
||||
#tray {
|
||||
color: @foreground;
|
||||
padding: 0 10px;
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
margin-right: 2px;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
/* #battery.warning { */
|
||||
/* color: #${palette.base08}; */
|
||||
/* } */
|
||||
|
||||
/* #pulseaudio.muted { */
|
||||
/* color: #${palette.base08}; */
|
||||
/* padding-right: 16px; */
|
||||
/* } */
|
@ -31,7 +31,7 @@ in
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
shellIntegration.enableFishIntegration = true;
|
||||
theme = "Catppuccin-Mocha";
|
||||
themeFile = "Catppuccin-Mocha";
|
||||
settings = {
|
||||
enable_audio_bell = false;
|
||||
confirm_os_window_close = 0; # no ask on quit
|
||||
@ -43,6 +43,6 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.sessionVariables.TERMINAL = "kitty";
|
||||
home.sessionVariables.TERMINAL = "kitty";
|
||||
};
|
||||
}
|
||||
|
@ -35,6 +35,14 @@ in
|
||||
VISUAL = "nvim";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
git
|
||||
gnumake
|
||||
gcc
|
||||
ripgrep
|
||||
fd
|
||||
];
|
||||
|
||||
programs.neovim =
|
||||
let
|
||||
toLua = str: ''
|
||||
@ -50,39 +58,39 @@ in
|
||||
vimAlias = true;
|
||||
# vimdiffAlias = true;
|
||||
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
{
|
||||
plugin = dracula-nvim;
|
||||
config = "colorscheme dracula";
|
||||
}
|
||||
{
|
||||
plugin = comment-nvim;
|
||||
config = toLua ''require("Comment").setup()'';
|
||||
}
|
||||
# plugins = with pkgs.vimPlugins; [
|
||||
# {
|
||||
# plugin = dracula-nvim;
|
||||
# config = "colorscheme dracula";
|
||||
# }
|
||||
# {
|
||||
# plugin = comment-nvim;
|
||||
# config = toLua ''require("Comment").setup()'';
|
||||
# }
|
||||
|
||||
# nix file support
|
||||
vim-nix
|
||||
# # nix file support
|
||||
# vim-nix
|
||||
|
||||
# Syntax highlighting
|
||||
(nvim-treesitter.withPlugins (p: [
|
||||
p.tree-sitter-nix
|
||||
p.tree-sitter-vim
|
||||
p.tree-sitter-bash
|
||||
p.tree-sitter-lua
|
||||
p.tree-sitter-python
|
||||
p.tree-sitter-json
|
||||
p.tree-sitter-cpp
|
||||
p.tree-sitter-rust
|
||||
]))
|
||||
];
|
||||
# # Syntax highlighting
|
||||
# (nvim-treesitter.withPlugins (p: [
|
||||
# p.tree-sitter-nix
|
||||
# p.tree-sitter-vim
|
||||
# p.tree-sitter-bash
|
||||
# p.tree-sitter-lua
|
||||
# p.tree-sitter-python
|
||||
# p.tree-sitter-json
|
||||
# p.tree-sitter-cpp
|
||||
# p.tree-sitter-rust
|
||||
# ]))
|
||||
# ];
|
||||
|
||||
extraConfig = ''
|
||||
set clipboard=unnamedplus
|
||||
'';
|
||||
# extraConfig = ''
|
||||
# set clipboard=unnamedplus
|
||||
# '';
|
||||
|
||||
extraLuaConfig = ''
|
||||
vim.o.termguicolors = true
|
||||
'';
|
||||
# extraLuaConfig = ''
|
||||
# vim.o.termguicolors = true
|
||||
# '';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.user.sessionVariables.TERMINAL = "wezterm-start-here";
|
||||
home.sessionVariables.TERMINAL = "wezterm-start-here";
|
||||
|
||||
# Otherwise wezterm does not start in directory of parent process
|
||||
home.packages = [
|
||||
|
@ -21,32 +21,19 @@
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.modules.greetd;
|
||||
cfg = config.modules.gdm;
|
||||
in
|
||||
{
|
||||
options.modules.greetd = {
|
||||
options.modules.gdm = {
|
||||
enable = lib.mkOption { default = false; };
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# greetd display manager
|
||||
services.greetd =
|
||||
let
|
||||
session = {
|
||||
command = "${lib.getExe config.programs.hyprland.package}";
|
||||
user = "julian";
|
||||
};
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
terminal.vt = 1;
|
||||
default_session = session;
|
||||
initial_session = session;
|
||||
};
|
||||
};
|
||||
services.xserver.displayManager.gdm = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# unlock GPG keyring on login
|
||||
security.pam.services.greetd.enableGnomeKeyring = true;
|
||||
security.pam.services.gdm.enableGnomeKeyring = true;
|
||||
};
|
||||
}
|
@ -30,8 +30,9 @@ in
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.hyprland.enable = true;
|
||||
# programs.hyprland.package = inputs.hyprland.packages.${pkgs.system}.hyprland; # does only work with nixos-unstable
|
||||
programs.hyprland.package = inputs.hyprland.packages.${pkgs.system}.hyprland; # does only work with nixos-unstable
|
||||
programs.hyprland.xwayland.enable = true;
|
||||
security.pam.services.hyprlock = { };
|
||||
services.displayManager.defaultSession = "hyprland";
|
||||
};
|
||||
}
|
||||
|
57
modules/nixos/tuigreet/default.nix
Normal file
57
modules/nixos/tuigreet/default.nix
Normal file
@ -0,0 +1,57 @@
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
pkgs,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
|
||||
# Additional metadata is provided by Snowfall Lib.
|
||||
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
|
||||
system, # The system architecture for this host (eg. `x86_64-linux`).
|
||||
target, # The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
||||
format, # A normalized name for the system target (eg. `iso`).
|
||||
virtual, # A boolean to determine whether this system is a virtual target using nixos-generators.
|
||||
systems, # An attribute map of your defined hosts.
|
||||
|
||||
# All other arguments come from the module system.
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.modules.tuigreet;
|
||||
in
|
||||
{
|
||||
options.modules.tuigreet = {
|
||||
enable = lib.mkOption { default = false; };
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${lib.getExe pkgs.greetd.tuigreet} --time --remember --remember-session";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# https://www.reddit.com/r/NixOS/comments/u0cdpi/tuigreet_with_xmonad_how/
|
||||
systemd.services.greetd.serviceConfig = {
|
||||
Type = "idle";
|
||||
StandardInput = "tty";
|
||||
StandardOutput = "tty";
|
||||
StandardError = "journal"; # Without this errors will spam on screen
|
||||
# Without these bootlogs will spam on screen
|
||||
TTYReset = true;
|
||||
TTYVHangup = true;
|
||||
TTYVTDisallocate = true;
|
||||
};
|
||||
|
||||
# unlock GPG keyring on login
|
||||
security.pam.services.greetd.enableGnomeKeyring = true;
|
||||
};
|
||||
}
|
@ -6,12 +6,16 @@
|
||||
# pull packages into your overlay.
|
||||
#
|
||||
# All other arguments for this function are your flake inputs.
|
||||
{ nixpkgs-unstable, ... }:
|
||||
{ nixpkgs-stable, nixpkgs-unstable, ... }:
|
||||
final: prev: {
|
||||
# unstable = nixpkgs-unstable.legacyPackages.${prev.system};
|
||||
# use this variant if unfree packages are needed:
|
||||
unstable = import nixpkgs-unstable {
|
||||
system = prev.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
# use this variant if unfree packages are needed:
|
||||
stable = import nixpkgs-stable {
|
||||
system = prev.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
}
|
||||
|
50
packages/conda-direnv/default.nix
Normal file
50
packages/conda-direnv/default.nix
Normal file
@ -0,0 +1,50 @@
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
|
||||
# All other arguments come from NixPkgs. You can use `pkgs` to pull packages or helpers
|
||||
# programmatically or you may add the named attributes as arguments here.
|
||||
pkgs,
|
||||
stdenv,
|
||||
...
|
||||
}:
|
||||
|
||||
pkgs.writeShellApplication {
|
||||
name = "conda-direnv";
|
||||
|
||||
runtimeInputs = with pkgs; [
|
||||
conda
|
||||
yq
|
||||
];
|
||||
|
||||
text = ''
|
||||
if [ ! -f environment.yml ]; then
|
||||
echo "environment.yml does not exist! Exiting..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ENV_NAME=$(${pkgs.yq}/bin/yq ".name" environment.yml -r)
|
||||
if [ "$ENV_NAME" == "" ] || [ "$ENV_NAME" == "null" ]; then
|
||||
echo "Property \"name\" not in environment.yml or empty! Exiting..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo Welcome to your conda environment "$ENV_NAME"! Activating...
|
||||
|
||||
condanew() {
|
||||
conda env create -f environment.yml -n $ENV_NAME
|
||||
conda activate $ENV_NAME
|
||||
}
|
||||
|
||||
exec ${pkgs.conda}/bin/conda-shell
|
||||
conda activate $ENV_NAME || condanew
|
||||
|
||||
echo "Environment active! To update it, run:"
|
||||
echo -e "\tconda env update -f environment.yml -n $ENV_NAME"
|
||||
|
||||
"$SHELL" # needs to be last line so that conda-shell actually enters a shell
|
||||
'';
|
||||
}
|
42
packages/hyprshot-gui/default.nix
Normal file
42
packages/hyprshot-gui/default.nix
Normal file
@ -0,0 +1,42 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hyprshot-gui";
|
||||
version = "2023-10-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ThatOneCalculator";
|
||||
repo = pname;
|
||||
rev = "30a9bc377c1c0a3ad05c63945f2fe92709a99d7b";
|
||||
sha256 = "sha256-XUy6+mFbNL+3zDfS4tWva4DiJeLnRM9S8ECRayTcPfI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with pkgs; [ makeWrapper ];
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
bash
|
||||
hyprshot
|
||||
zenity
|
||||
];
|
||||
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp hyprshot-gui $out/bin/hyprshot-gui
|
||||
wrapProgram $out/bin/hyprshot-gui --prefix PATH : '${lib.makeBinPath buildInputs}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple shell script";
|
||||
homepage = "https://github.com/ThatOneCalculator/hyprshot-gui";
|
||||
platforms = platforms.all;
|
||||
mainProgram = "hyprshot-gui";
|
||||
# maintainers
|
||||
};
|
||||
}
|
71
packages/lntocp/default.nix
Normal file
71
packages/lntocp/default.nix
Normal file
@ -0,0 +1,71 @@
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
|
||||
# All other arguments come from NixPkgs. You can use `pkgs` to pull packages or helpers
|
||||
# programmatically or you may add the named attributes as arguments here.
|
||||
pkgs,
|
||||
stdenv,
|
||||
...
|
||||
}:
|
||||
|
||||
pkgs.writeShellApplication {
|
||||
name = "lntocp";
|
||||
|
||||
runtimeInputs = with pkgs; [ ];
|
||||
|
||||
text = ''
|
||||
#!/bin/bash
|
||||
# This script accepts any number of files or directories as input.
|
||||
# If the input is a symbolic link, it deletes the symlink and copies
|
||||
# the original file or folder (where the symlink points to) to the location
|
||||
# where the symlink was. Non-symlink files or directories are ignored.
|
||||
|
||||
# Function to copy original file/folder in place of the symlink
|
||||
process_symlink() {
|
||||
symlink="$1"
|
||||
|
||||
# Resolve the target (the file or directory the symlink points to)
|
||||
target=$(readlink "$symlink")
|
||||
|
||||
# Check if the target is absolute or relative
|
||||
if [[ ! "$target" =~ ^/ ]]; then
|
||||
# If the target is relative, compute the full path
|
||||
target="$(dirname "$symlink")/$target"
|
||||
fi
|
||||
|
||||
# Check if the target exists
|
||||
if [ -e "$target" ]; then
|
||||
echo "Processing symlink: $symlink -> $target"
|
||||
|
||||
# Remove the symlink
|
||||
rm "$symlink"
|
||||
|
||||
# Copy the original target to the symlink location
|
||||
if [ -d "$target" ]; then
|
||||
# If it's a directory, use 'cp -r'
|
||||
cp -r "$target" "$symlink"
|
||||
else
|
||||
# Otherwise, it's a file, use 'cp'
|
||||
cp "$target" "$symlink"
|
||||
fi
|
||||
echo "Copied $target to $symlink"
|
||||
else
|
||||
echo "Target $target does not exist!"
|
||||
fi
|
||||
}
|
||||
|
||||
# Loop through all arguments (files and directories passed to the script)
|
||||
for item in "$@"; do
|
||||
if [ -L "$item" ]; then
|
||||
# If the item is a symlink, process it
|
||||
process_symlink "$item"
|
||||
else
|
||||
echo "$item is not a symlink. Skipping."
|
||||
fi
|
||||
done
|
||||
'';
|
||||
}
|
@ -73,9 +73,13 @@
|
||||
locales.enable = true;
|
||||
# thunar.enable = true;
|
||||
pcmanfm.enable = true;
|
||||
|
||||
# i3.enable = true;
|
||||
# gdm.enable = true;
|
||||
|
||||
wayland.enable = true;
|
||||
hyprland.enable = true;
|
||||
# i3.enable = true;
|
||||
tuigreet.enable = true;
|
||||
};
|
||||
|
||||
nix.settings.auto-optimise-store = true;
|
||||
@ -97,18 +101,14 @@
|
||||
];
|
||||
};
|
||||
|
||||
hardware.opengl.enable = true;
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
services.xserver.wacom.enable = true;
|
||||
# services.xserver.xautolock = { # TODO: does not work
|
||||
# enable = true;
|
||||
# time = 1;
|
||||
# };
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
displayManager.gdm.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
xkb.layout = "de";
|
||||
xkb.variant = "";
|
||||
};
|
||||
@ -119,8 +119,6 @@
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
|
||||
security.pam.services.gdm.enableGnomeKeyring = true;
|
||||
|
||||
services.blueman.enable = true;
|
||||
services.upower.enable = true;
|
||||
|
||||
@ -159,7 +157,6 @@
|
||||
};
|
||||
|
||||
# Sound
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
|
||||
# needed on aspi for audio to work properly
|
||||
|
@ -95,7 +95,7 @@
|
||||
services.xserver.enable = true;
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
|
||||
hardware.opengl.enable = true;
|
||||
hardware.graphics.enable = true;
|
||||
# hardware.nvidia.modesetting.enable = true; # for wayland
|
||||
|
||||
nix.gc = {
|
||||
|
@ -51,7 +51,7 @@
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
hardware.opengl.enable = true;
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user