Compare commits

...

21 Commits

Author SHA1 Message Date
2572513c44 Do not configure neovim via nix, use lazyvim instead 2024-10-06 17:55:21 +02:00
3baf2453f2 Add conda-direnv package 2024-10-06 17:54:46 +02:00
8457523518 Update config to use updated variable names 2024-10-06 17:10:48 +02:00
84420e427e Use LATEST hyprland 2024-10-06 17:10:32 +02:00
9bc392818f Use kitty instead of wezterm 2024-10-06 14:44:28 +02:00
0ee158677a Remove hardcoded "hyprland" from tuigreet 2024-10-06 14:21:17 +02:00
1fe8d17523 Remove prism 2024-10-06 14:14:49 +02:00
5500164669 Reformat emacs config 2024-10-06 14:14:23 +02:00
f07ab92268 Living on nixpkgs unstable now 2024-10-06 14:13:12 +02:00
f19ce21672 waybar: improve color of active workspace 2024-10-06 08:05:27 +02:00
5d5096f452 Delet unused style files 2024-10-06 08:05:12 +02:00
2f14aa1e9b Add mimeapps management file but not use it 2024-10-05 23:31:28 +02:00
42b5dfeee7 improve sessionVariable declaration
Without this, on wayland I cannot access these vars from the Terminal
2024-10-05 22:03:36 +02:00
7f73da037b Delete unused greetd module 2024-10-05 21:56:16 +02:00
f05eae5b83 Clean up gdm config and disable gdm 2024-10-05 21:56:06 +02:00
739901d174 Add tuigreet module 2024-10-05 21:55:29 +02:00
7b4d461ba1 wayland: use hyprshot-gui instead of grimblast 2024-10-05 21:54:33 +02:00
e55af69ed3 Make hyprland look nicer 2024-10-05 19:04:44 +02:00
ac7e7a16d8 Create lntocp script, install watchexec 2024-10-05 18:36:10 +02:00
a79c1a9af8 Make waybar look nice 2024-10-05 18:36:10 +02:00
63dc618f6d mako: fix default notification timeout 2024-10-05 18:36:10 +02:00
30 changed files with 600 additions and 1131 deletions

209
flake.lock generated
View File

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

View File

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

View File

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

View 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

View File

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

View File

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

View File

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

View File

@ -35,6 +35,6 @@ in
".config/alacritty/alacritty.toml".source = ./alacritty.toml;
};
systemd.user.sessionVariables.TERMINAL = "alacritty";
home.sessionVariables.TERMINAL = "alacritty";
};
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View 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; */
/* } */

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View 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
'';
}

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

View 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
'';
}

View File

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

View File

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

View File

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