I'm Mihai, a B.Sc. student at TUCN, studying Electronics and Telecommunications.
My resume is available here.
You can reach me on Discord @fufexan
, Matrix, or email.
NixOS system config & Home-Manager user config
License: MIT License
Are you using xdg-desktop-portal with home-manager standalone?, if so, do you have any pointers to make it work?
Basically when I wanted to try out your homeConfigurations. It was throwing some weird errors to me. First encounter would be that they don't show on nix flake show
.
I did some digging and readjustments to make it work for me but I'm not any smarter. The issues seems to be related to some weird magic I found here and here. I figured these must be related to this and that you want to somehow bring the parameters usually carried over by flake-parts to be in scope or something but I'm only guessing.
Maybe a GitHub issue isn't the right way to ask but I would love to hear an explanation.
Another thing to mention would be that I tried this in a Non-NixOS system with home-manager installed. So it's not weird that it might break for me when it works for you. The whole point of this issue is just because I want to learn. And then maybe improve on it.
loglevel=3 won't work, nixos will try to add a parameter loglevel=4
at the end, use instead boot.consoleLogLevel
Hey guys, this may be a newbie question, but I'm confused how to install your package. I thought your screen shots were really impressive and I love the look, but I'm confused how to install your software.
Your README mentions nix run github:fufexan/dotfiles#packageName
but then I get an error output about `experimental Nix feature 'nix-command' is disabled; add --extra-experimental-features nix-command' to enable it.
Could you add a "typical" example to your README to get from basic hyprland to your setup. I don't know what I'm supposed to point at and I don't want to have any awkward changes to my machine when I'm done.
when trying to import inputs.fufexan.homeManagerModules.eww-hyprland
it gives me error: attribute 'fufexan' missing.
full log in the github gist and my config is here: https://github.com/2Epik4u/nixos-config
https://gist.github.com/2Epik4u/2cc8e2b9e74ea57db18d5525fa9aa27c
How did you get the nix symbol in starship.nix? i can't render on my current setup.
:)
How can I install this theme on Arch Linux?
I'm looking at using your bar configuration in my new Hyprland system, and I'm wondering as to the status of the eww
configuration - it seems like you primarily use ags
now, and the status in terms of maintenance for eww
isn't quite clear to me. In any case, I'm curious:
gross
to nixpkgs? I wasn't able to find it/an open PR.gross
?
Hello i just saw you screenshot and it look just amazin, simple yet so artistic.
I have just learn about hyprland one month ago and i have it on my arch installation.
But now i iwant to try an nixos installation, with hyperland and eww, i mena like yours.
if i understand correctly i just have to download all this repo and start in a usb and mount the drives and just
nixos-install --flake .#? and i will have exactly the same setup as yours?
thank you for any answer
I use Flake and the .nix-profile file and .nix-defexpr/ folder seem to be useless. Is there any way to prevent them from appearing in my HOME directory?
Hi, I have added your flake to my inputs as so:
fufexan.url = "github:fufexan/dotfiles";
fufexan.inputs.nixpkgs.follows = "nixpkgs";
And to my home-manager config:
And nix complains that error: infinite recursion encountered
.
I think you have changed something in your inputs, but I don't quite understand it.
Thanks
How can I make sure the ags bar is also showing on my secondary screen?
A panel with all your notifications.
2023-07-28T04:31:26.416Z INFO eww > Initializing Eww server. (/run/user/1000/eww-server_82deaed9ce223bca)
Run eww logs
to see any errors while editing your configuration.
2023-07-28T04:31:26.416Z INFO eww::server > Loading paths: config-dir: /home/think-crag/Git/dotfiles/config/eww, ipc-socket: /run/user/1000/eww-server_82deaed9ce223bca, log-file: /home/think-crag/.cache/eww_82deaed9ce223bca.log
error: No variable named EWW_TIME
in scope
┌─ ./modules/clock.yuck:14:29
│
14 │ :text {formattime(EWW_TIME, "%H")}
│ ──────── Used here
│
→ Hint: Either define it as a global variable, or add it to the argument-list of your defwidget
and pass it as an argument
→ Hint: If you meant to use the literal value "EWW_TIME", surround the value in quotes
It's really an awesome desktop setup. But i have encountered some trouble to config it on my Arch Linux. Here are my problems.
eww open bar
. Still, eww bar won't appear until i run it twice or even third times.curl ix.io/xxxx
to get the logs in the terminal.)
RUST_BACKRACE=1
first time: ix.io/4tTMwpctl
with pactl
in the scripts/volume
. But i think that's not the problem why eww didn't show, or is it?)material-symbols-outline
. But, i actually install ttf-material-design-iconic-font
and ttf-material-design-icons
from archlinux aur and try to change the family name
of the icon
, no success.material-icon
and material-symbols
are two things. It seems that icon
are iconic font like awesome font
, but symbols are like svg or png? See herescripts/utils
or scripts/music
. But my XDG_CACHE_HOME
are empty. scripts/utils
sets the XDG_CACHE_HOME
to /home/mihai/.local/cache
, and the scripts/music
doesn't set the value. After i set env to XDG_CACHE_HOME = $HOME/.local/cache
, all programs using caches broken. It seems that $HOME/.cache
is the default cache file on Arch, though not related to XDG_CACHE_HOME
.I'm sry that i am poor in coding. Just like what's said by the elkowar/eww:
Smash your head against the keyboard from frustration (coding is hard)
Any help would be appreciated. Thanks in advance!
Hi @fufexan , I am learning NixOS by looking at others' dotfiles and I find yours quite advanced - especially your Hyprland's config!
I see that you are using systemd-run
to wrap your programs (firefox & alacritty) in this piece of code and I am quite perplexed. I am hoping to learn the benefits of doing it this way.
At first, I thought it is meant to run the program as "singletons" but after trying this out myself, I am ruling that out. May I be enlightened? :)
Distro : Arch
WM : Hyprland
I'm pretty new to eww and followed the steps you told but it spawns errors when trying to open the bar
2023-10-25T06:22:25.040Z INFO eww > Initializing Eww server. (/run/user/1000/eww-server_aa08eec3e14d83d6)
Run `eww logs` to see any errors while editing your configuration.
2023-10-25T06:22:25.040Z INFO eww::server > Loading paths: config-dir: /home/greed/.config/eww, ipc-socket: /run/user/1000/eww-server_aa08eec3e14d83d6, log-file: /home/greed/.cache/eww_aa08eec3e14d83d6.log
error: No variable named `EWW_TIME` in scope
┌─ ./modules/clock.yuck:6:25
│
6 │ :text {formattime(EWW_TIME, "%a %b %d %H:%M")})))
│ ──────── Used here
│
→ Hint: Either define it as a global variable, or add it to the argument-list of your `defwidget` and pass it as an argument
→ Hint: If you meant to use the literal value "EWW_TIME", surround the value in quotes
and doing eww open bar
gives this error
failed to open window `bar`
Caused by:
No window named 'bar' exists in config.
This may also be caused by your config failing to load properly, please check for any other errors in that case.
Sorry for the silly question :(
Hi thanks for the great repo to look at,
I'm trying to use your eww-hyprland module in my own (home-manager) config.
I get the following error:
home-manager switch --flake ~/dotfiles#mesmer
trace: warning: optionsDocBook is deprecated since 23.11 and will be removed in 24.05
trace: warning: optionsDocBook is deprecated since 23.11 and will be removed in 24.05
trace: warning: optionsDocBook is deprecated since 23.11 and will be removed in 24.05
error:
… while calling the 'derivationStrict' builtin
at /builtin/derivation.nix:9:12: (source not available)
… while evaluating derivation 'home-manager-generation'
whose name attribute is located at /nix/store/mcrw5vy0xhxd0vkdzc0iqm83q845z23y-source/pkgs/stdenv/generic/make-derivation.nix:300:7
… while evaluating attribute 'buildCommand' of derivation 'home-manager-generation'
at /nix/store/mcrw5vy0xhxd0vkdzc0iqm83q845z23y-source/pkgs/build-support/trivial-builders/default.nix:87:14:
86| enableParallelBuilding = true;
87| inherit buildCommand name;
| ^
88| passAsFile = [ "buildCommand" ]
(stack trace truncated; use '--show-trace' to show the full trace)
error: attribute 'gross' missing
at /nix/store/cihli3fa1sm1v26lh1jpphg7yl5nfg3y-source/home/programs/eww/default.nix:11:5:
10|
11| inputs.gross.packages.${pkgs.system}.gross
| ^
12| config.wayland.windowManager.hyprland.package
Where my eww.nix
file looks like:
{
inputs,
pkgs,
...
}: {
imports = [inputs.fufexan.homeManagerModules.eww-hyprland];
programs.eww-hyprland = {
enable = true;
# default package
package = pkgs.eww-wayland;
# if you want to change colors
#colors = builtins.readFile ./frappe.scss;
# set to true to reload on change
#autoReload = true;
};
}
I am probably doing something silly, as i'm still newish to nix. Any help would be appreciated.
Eww Expression: https://gitlab.com/hmajid2301/dotfiles/-/blob/b781fba01bf8fc3d23036e9193356e382fc8e173/home-manager/desktops/wayland/eww.nix
I use howdy and found it quite slow to launch the camera, I don't use linux-enable-ir-emitter
my config
howdy = {
enable = true;
package = inputs.nixpkgs-howdy.legacyPackages.${pkgs.system}.howdy;
settings = {
core.no_confirmation = true;
video = {
device_path = "/dev/video0";
force_mjpeg = true;
};
debug.end_report = true;
};
};
Time spent
Starting up: 413ms
Open cam + load libs: 1347ms
Opening the camera: 1347ms
Importing recognition libs: 959ms
Searching for known face: 408ms
Total time: 2168ms
Resolution
Native: 480x-1
Used: 320x427
Frames searched: 1 (2.45 fps)
Black frames ignored: 0
Dark frames ignored: 0
Certainty of winning frame: 2.531
Winning model: 0 ("Model #0")
Is there any way to fix it?
On certain times the mouse cursor gets really big.
I use perSystem.packages
to put the packages in, I try to create a folder firefox-addons like this:
{ fetchurl, lib, stdenv }@args:
let
buildFirefoxXpiAddon = lib.makeOverridable ({ stdenv ? args.stdenv
, fetchurl ? args.fetchurl, pname, version, addonId, url, sha256,...
}:
stdenv.mkDerivation {
name = "${pname}-${version}";
src = fetchurl { inherit url sha256; };
preferLocalBuild = true;
allowSubstitutes = true;
buildCommand = ''
dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
mkdir -p "$dst"
install -v -m644 "$src" "$dst/${addonId}.xpi"
'';
});
in
{
dashlane = buildFirefoxXpiAddon {
pname = "dashlane";
version = "6.2321.2";
addonId = "[email protected]";
url = "https://prod.extensions.dashlane.com/downloads/firefox/dashlane-latest-fx.xpi";
sha256 = "sha256-YcwL/MFfMrIuLDngK3fzclEC58jR02fe7zOh5XWOZwg=";
};
default-zoom = buildFirefoxXpiAddon {
pname = "default-zoom";
version = "1.1.3";
addonId = "[email protected]";
url = "https://addons.mozilla.org/firefox/downloads/file/3567861/default_zoom-1.1.3.xpi";
sha256 = "sha256-bbAC380jFU8Q0ewXfM5O1YcbJXrlnF279WqV2dkgGHY=";
};
aria2 = buildFirefoxXpiAddon {
pname = "aria2-integration";
version = "4.3.0";
addonId = "[email protected]";
url = "https://addons.mozilla.org/firefox/downloads/file/4099805/aria2_extension-4.3.0.xpi";
sha256 = "sha256-MXDHbdSYzaEpQcUz/YXQqKQ5t6q4h83O+84KHN2nAqI=";
};
}
like nur.rycee. I have tried callPackages ./firefox-addons { };
as well as pkgs.recurseIntoAttrs (pkgs.callPackage ./firefox-addons { });
but it doesn't work at all. I don't know where did I go wrong? Can u spare some time for me!
https://github.com/fufexan/dotfiles/blob/main/home/profiles/default.nix#L55
I think it should be ../programs/eww
I want to build a package in flake like anyrun
and upload it to cachix
with github action
before building it on the local machine.
As I know I can build all flake with
nix build -L '.#nixosConfigurations.laptop.config.system.build.toplevel'
Doing so takes up too much space and errors occur. Is there a way to build only 1 packags in my flake?
Here is my github action file
name: build-and-cache
"on":
- push
- workflow_dispatch
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: "Create Dir for Mounting moar Disk Space ❄️ "
run: |
sudo mkdir /nix
- name: "Maximize Disk Space"
uses: easimon/maximize-build-space@v8
with:
build-mount-path: /nix
remove-android: true
remove-codeql: true
remove-docker-images: true
remove-dotnet: true
remove-haskell: true
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: "Install Cachix ❄️ "
uses: cachix/cachix-action@v12
with:
name: hmanhng
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
extraPullNames: nix-community, hyprland, hmanhng, anyrun
- name: Set default git branch (to reduce log spam)
run: git config --global init.defaultBranch tmpfs
- name: Validate Flakes
run: nix flake check --print-build-logs --accept-flake-config
- name: "Build NixOS config ❄️ "
run: |
nix build -L '.#nixosConfigurations.laptop.config.system.build.toplevel'
Hey, I'm currently attempting to clone your config, specifically your "io" host. And while I was able to build the flake into a vm with nixos-rebuild build-vm github:fufexan/dotfiles#io
and boot it up successfully I'm unfortunately getting errors while attempting to deploy it onto baremetal. I'm fairly new to NixOS flakes and while I do have a working flake deployment I'm not really happy with it and am in the process of blowing it away in lieu of the one you have configured as it's fantastic. I've forked your config already and just made a few small alterations such as changing the username, and disabling howdy and the ir-emitter since I'm deploying onto an AMD desktop and don't have any method of biometric authentication. I was hoping you might have some insight into the errors that I'm seeing, and I sincerely appreciate any insight you have.
I can provide you some error logs if you'd like but I'm not sure if I should drop them here or a pastebin service, etc. Just let me know if you'd be willing. Thanks for the consideration.
Add a button to the ags bar to prevent the screen from turning off.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.