From 270b92d0c209e29e7c61e13c2959e80bfe432e3a Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Fri, 17 Jun 2022 09:46:23 -0500 Subject: [PATCH] updating config --- LightlyShaders/default.nix | 4 +- README.org | 115 +++++++++++++++++++++++++---- flake.lock | 121 +++++++++++++++++++++++++++++-- flake.nix | 64 ++++++++++++---- scripts/emacslof | 2 +- scripts/yt | 2 +- system/kaladin/configuration.nix | 37 +++++++++- system/syl/configuration.nix | 40 +++++++++- 8 files changed, 339 insertions(+), 46 deletions(-) diff --git a/LightlyShaders/default.nix b/LightlyShaders/default.nix index 80e89c0..18242c7 100644 --- a/LightlyShaders/default.nix +++ b/LightlyShaders/default.nix @@ -28,8 +28,8 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "a-parhom"; repo = "LightlyShaders"; - rev = "0294499afece1620f47fa38fa74fa8604077347f"; - sha256 = "8EL1e4YKY63U7kvqBLfqSzYHdls1BD6OYh4X5+B7EcQ="; + rev = "4d649f8d9874b3ab251588fdaa2eac4bb74b1125"; + sha256 = "c/zbYmOXhl0xX+Rjw5eU48jQqA+OAxsh/pvWXo5bakA="; }; # dontWrapQtApps = true; diff --git a/README.org b/README.org index d058eac..cab6398 100644 --- a/README.org +++ b/README.org @@ -29,18 +29,53 @@ Both include the home-manager module. Primarily I chose that route so that I cou inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - home-manager.url = "github:nix-community/home-manager/master"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; + home-manager = { + url = "github:nix-community/home-manager/master"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + hyprland = { + url = "github:vaxerski/Hyprland"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = { nixpkgs, home-manager, ... }: + outputs = { nixpkgs, home-manager, hyprland, ... }: let system = "x86_64-linux"; username = "chris"; + localOverlay = final: prev: { + myAwesome = final.awesome.overrideAttrs (old: rec { + pname = "myAwesome"; + version = "git-20220508-c539e0e"; + src = prev.fetchFromGitHub { + owner = "awesomeWM"; + repo = "awesome"; + rev = "c539e0e4350a42f813952fc28dd8490f42d934b3"; + sha256 = "EDAL7NnLF2BiVI8DAlEciiZtDmwXOzCPypGTrlN/OoQ="; + }; + }); + qt5ct = final.qt5ct.overrideAttrs (old: rec { + patches = (old.patches or []) ++ [ + ../../qt5ct.patch + ]; + }); + emacsPgtkNativeComp = final.emacsPgtkNativeComp.overrideAttrs (old: rec { + pname = "emacs"; + src = prev.fetchFromTarball { + url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz; + sha256 = "09rsqmz7i7lyays59b9600z11qqr6h6lcskw1zzp54yw2csxn2ix"; + }; + }); + }; + pkgs = import nixpkgs { inherit system; config = { allowUnfree = true; }; + # overlays = [ + # hyprland.overlay + # localOverlay + # ]; }; lib = nixpkgs.lib; @@ -49,14 +84,17 @@ Both include the home-manager module. Primarily I chose that route so that I cou nixosConfigurations = { syl = lib.nixosSystem { inherit system; + # inherit pkgs; modules = [ ./system/syl/configuration.nix home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.chris = import ./user/home.nix; - } + hyprland.nixosModules.default + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.chris = import ./user/home.nix; + programs.hyprland.enable = true; + } ]; }; kaladin = lib.nixosSystem { @@ -64,11 +102,11 @@ Both include the home-manager module. Primarily I chose that route so that I cou modules = [ ./system/kaladin/configuration.nix home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.chris = import ./user/home.nix; - } + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.chris = import ./user/home.nix; + } ]; }; }; @@ -105,7 +143,7 @@ services.xserver = { enable = true; windowManager.awesome = { enable = true; - package = pkgs.myAwesome; + # package = pkgs.myAwesome; }; displayManager.sddm.enable = true; desktopManager.plasma5.enable = true; @@ -150,6 +188,42 @@ programs.fish.enable = true; programs.zsh.enable = true; #+end_src +#+NAME: samba +#+begin_src nix +services.samba-wsdd.enable = true; +services.samba = { + enable = true; + extraConfig = '' + workgroup = WORKGROUP + server string = smbnix + netbios name = smbnix + security = user + #use sendfile = yes + #max protocol = smb2 + # note: localhost is the ipv6 localhost ::1 + hosts allow = 192.168.0. 127.0.0.1 localhost + hosts deny = 0.0.0.0/0 + guest account = nobody + map to guest = bad user + ''; + shares = { + public = { + path = "/home/chris/Public"; + "read only" = false; + browsable = true; + "guest ok" = true; + comment = "Share"; + }; + }; +}; +#+end_src + +#+NAME: podman +#+begin_src nix +virtualisation.podman.enable = true; +virtualisation.docker.enable = true; +#+end_src + *** Packages Here are a list of packages that I like to have on all machines. #+NAME: general-packages @@ -187,6 +261,7 @@ libimobiledevice sddm-kcm ydotool bottles +podman-compose exa imv feh @@ -247,11 +322,15 @@ macchina gimp powertop quickemu +OVMFFull +element-desktop-wayland +# hyprland #+end_src Here are some dev tools that I often have on a few devices. #+NAME: dev-tools #+begin_src nix +android-tools nix-index meson ninja @@ -294,11 +373,11 @@ For some reason the emacs overlay has a specific sha256. So I'll create it in ea { myAwesome = super.awesome.overrideAttrs (old: rec { pname = "myAwesome"; - version = "git-20220508-c539e0e"; + version = "git-20220614-3a54221"; src = super.fetchFromGitHub { owner = "awesomeWM"; repo = "awesome"; - rev = "c539e0e4350a42f813952fc28dd8490f42d934b3"; + rev = "3a542219f3bf129546ae79eb20e384ea28fa9798"; sha256 = "EDAL7NnLF2BiVI8DAlEciiZtDmwXOzCPypGTrlN/OoQ="; }; }); @@ -359,6 +438,8 @@ Notice how I am including all of my software here. It may be a big file, but hav networking.useDHCP = false; networking.interfaces.wlp170s0.useDHCP = true; + <> + # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; @@ -471,6 +552,7 @@ Notice how I am including all of my software here. It may be a big file, but hav ]; <> + <> # Some programs need SUID wrappers, can be configured further or are # started in user sessions. @@ -680,6 +762,7 @@ Kaladin is my desktop machine. A powerhouse for the most part with a recent i7 a ]; <> + <> # Some programs need SUID wrappers, can be configured further or are # started in user sessions. diff --git a/flake.lock b/flake.lock index 6f85733..141dfd3 100644 --- a/flake.lock +++ b/flake.lock @@ -1,17 +1,37 @@ { "nodes": { + "flake-compat": { + "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" + } + }, "home-manager": { "inputs": { + "flake-compat": "flake-compat", "nixpkgs": [ "nixpkgs" - ] + ], + "nmd": "nmd", + "nmt": "nmt", + "utils": "utils" }, "locked": { - "lastModified": 1653153149, - "narHash": "sha256-8B/tWWZziFq4DqnAm9uO7M4Z4PNfllYg5+teX1e5yDQ=", + "lastModified": 1655199284, + "narHash": "sha256-R/g2ZWplGWVOfm2TyB4kR+YcOE/uWkgjkYrl/RYgJ/U=", "owner": "nix-community", "repo": "home-manager", - "rev": "94780dd888881bf35165dfdd334a57ef6b14ead8", + "rev": "87d30c164849a7471d99749aa4d2d28b81564f69", "type": "github" }, "original": { @@ -21,13 +41,34 @@ "type": "github" } }, + "hyprland": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "wlroots": "wlroots" + }, + "locked": { + "lastModified": 1655154988, + "narHash": "sha256-yjVNcLIqUkyhHbOS9lSWFurQx/qKD9YMPpQJpX5nqq4=", + "owner": "vaxerski", + "repo": "Hyprland", + "rev": "fa6530c7e8f5f79041a28456ca91d4641c7ad354", + "type": "github" + }, + "original": { + "owner": "vaxerski", + "repo": "Hyprland", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1653060744, - "narHash": "sha256-kfRusllRumpt33J1hPV+CeCCylCXEU7e0gn2/cIM7cY=", + "lastModified": 1655130522, + "narHash": "sha256-5dzlxE4okyu+M39yeVtHWQXzDZQxFF5rUB1iY9R6Lb4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "dfd82985c273aac6eced03625f454b334daae2e8", + "rev": "13f08d71ceff5101321e0291854495a1ec153a5e", "type": "github" }, "original": { @@ -37,11 +78,77 @@ "type": "github" } }, + "nmd": { + "flake": false, + "locked": { + "lastModified": 1653339422, + "narHash": "sha256-8nc7lcYOgih3YEmRMlBwZaLLJYpLPYKBlewqHqx8ieg=", + "owner": "rycee", + "repo": "nmd", + "rev": "9e7a20e6ee3f6751f699f79c0b299390f81f7bcd", + "type": "gitlab" + }, + "original": { + "owner": "rycee", + "repo": "nmd", + "type": "gitlab" + } + }, + "nmt": { + "flake": false, + "locked": { + "lastModified": 1648075362, + "narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=", + "owner": "rycee", + "repo": "nmt", + "rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae", + "type": "gitlab" + }, + "original": { + "owner": "rycee", + "repo": "nmt", + "type": "gitlab" + } + }, "root": { "inputs": { "home-manager": "home-manager", + "hyprland": "hyprland", "nixpkgs": "nixpkgs" } + }, + "utils": { + "locked": { + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "wlroots": { + "flake": false, + "locked": { + "host": "gitlab.freedesktop.org", + "lastModified": 1654618691, + "narHash": "sha256-8y3u8CoigjoZOVbA2wCWBHlDNEakv0AVxU46/cOC00s=", + "owner": "wlroots", + "repo": "wlroots", + "rev": "b89ed9015c3fbe8d339e9d65cf70fdca6e5645bc", + "type": "gitlab" + }, + "original": { + "host": "gitlab.freedesktop.org", + "owner": "wlroots", + "repo": "wlroots", + "type": "gitlab" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 53d341c..9170906 100644 --- a/flake.nix +++ b/flake.nix @@ -3,18 +3,53 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - home-manager.url = "github:nix-community/home-manager/master"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; + home-manager = { + url = "github:nix-community/home-manager/master"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + hyprland = { + url = "github:vaxerski/Hyprland"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = { nixpkgs, home-manager, ... }: + outputs = { nixpkgs, home-manager, hyprland, ... }: let system = "x86_64-linux"; username = "chris"; + localOverlay = final: prev: { + myAwesome = final.awesome.overrideAttrs (old: rec { + pname = "myAwesome"; + version = "git-20220508-c539e0e"; + src = prev.fetchFromGitHub { + owner = "awesomeWM"; + repo = "awesome"; + rev = "c539e0e4350a42f813952fc28dd8490f42d934b3"; + sha256 = "EDAL7NnLF2BiVI8DAlEciiZtDmwXOzCPypGTrlN/OoQ="; + }; + }); + qt5ct = final.qt5ct.overrideAttrs (old: rec { + patches = (old.patches or []) ++ [ + ../../qt5ct.patch + ]; + }); + emacsPgtkNativeComp = final.emacsPgtkNativeComp.overrideAttrs (old: rec { + pname = "emacs"; + src = prev.fetchFromTarball { + url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz; + sha256 = "09rsqmz7i7lyays59b9600z11qqr6h6lcskw1zzp54yw2csxn2ix"; + }; + }); + }; + pkgs = import nixpkgs { inherit system; config = { allowUnfree = true; }; + # overlays = [ + # hyprland.overlay + # localOverlay + # ]; }; lib = nixpkgs.lib; @@ -23,14 +58,17 @@ nixosConfigurations = { syl = lib.nixosSystem { inherit system; + # inherit pkgs; modules = [ ./system/syl/configuration.nix home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.chris = import ./user/home.nix; - } + hyprland.nixosModules.default + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.chris = import ./user/home.nix; + programs.hyprland.enable = true; + } ]; }; kaladin = lib.nixosSystem { @@ -38,11 +76,11 @@ modules = [ ./system/kaladin/configuration.nix home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.chris = import ./user/home.nix; - } + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.chris = import ./user/home.nix; + } ]; }; }; diff --git a/scripts/emacslof b/scripts/emacslof index 597d03b..cb93092 100755 --- a/scripts/emacslof +++ b/scripts/emacslof @@ -17,7 +17,7 @@ if [ $(pgrep -c emacsclient) -gt 0 ]; then fi else if [ $KDE_FULL_SESSION = "true" ]; then - /home/chris/bin/ww -f emacs -c emacsclient + /home/chris/bin/ww -fa Emacs -c emacsclient exit else # WAYLAND diff --git a/scripts/yt b/scripts/yt index 5cdf56a..cfe7ca8 100755 --- a/scripts/yt +++ b/scripts/yt @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # dependencies: mpv youtube-dl fzf rofi/dmenu # search videos and playlists on youtube and play them in mpv, without an API # usage: diff --git a/system/kaladin/configuration.nix b/system/kaladin/configuration.nix index 8b9158c..bc4f784 100644 --- a/system/kaladin/configuration.nix +++ b/system/kaladin/configuration.nix @@ -48,7 +48,7 @@ enable = true; windowManager.awesome = { enable = true; - package = pkgs.myAwesome; + # package = pkgs.myAwesome; }; displayManager.sddm.enable = true; desktopManager.plasma5.enable = true; @@ -166,6 +166,7 @@ sddm-kcm ydotool bottles + podman-compose exa imv feh @@ -226,12 +227,16 @@ gimp powertop quickemu + OVMFFull + element-desktop-wayland + # hyprland blender neofetch ethminer lutris protonup # Dev tools + android-tools nix-index meson ninja @@ -266,11 +271,11 @@ { myAwesome = super.awesome.overrideAttrs (old: rec { pname = "myAwesome"; - version = "git-20220508-c539e0e"; + version = "git-20220614-3a54221"; src = super.fetchFromGitHub { owner = "awesomeWM"; repo = "awesome"; - rev = "c539e0e4350a42f813952fc28dd8490f42d934b3"; + rev = "3a542219f3bf129546ae79eb20e384ea28fa9798"; sha256 = "EDAL7NnLF2BiVI8DAlEciiZtDmwXOzCPypGTrlN/OoQ="; }; }); @@ -292,6 +297,32 @@ enable = true; package = with pkgs; ((emacsPackagesFor emacsPgtkNativeComp).emacsWithPackages (epkgs: [ epkgs.vterm epkgs.magit epkgs.pdf-tools pkgs.mu ])); }; + services.samba-wsdd.enable = true; + services.samba = { + enable = true; + extraConfig = '' + workgroup = WORKGROUP + server string = smbnix + netbios name = smbnix + security = user + #use sendfile = yes + #max protocol = smb2 + # note: localhost is the ipv6 localhost ::1 + hosts allow = 192.168.0. 127.0.0.1 localhost + hosts deny = 0.0.0.0/0 + guest account = nobody + map to guest = bad user + ''; + shares = { + public = { + path = "/home/chris/Public"; + "read only" = false; + browsable = true; + "guest ok" = true; + comment = "Share"; + }; + }; + }; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. diff --git a/system/syl/configuration.nix b/system/syl/configuration.nix index c647d06..522a3fd 100644 --- a/system/syl/configuration.nix +++ b/system/syl/configuration.nix @@ -32,6 +32,9 @@ networking.useDHCP = false; networking.interfaces.wlp170s0.useDHCP = true; + virtualisation.podman.enable = true; + virtualisation.docker.enable = true; + # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; @@ -55,7 +58,7 @@ enable = true; windowManager.awesome = { enable = true; - package = pkgs.myAwesome; + # package = pkgs.myAwesome; }; displayManager.sddm.enable = true; desktopManager.plasma5.enable = true; @@ -186,6 +189,7 @@ sddm-kcm ydotool bottles + podman-compose exa imv feh @@ -246,6 +250,9 @@ gimp powertop quickemu + OVMFFull + element-desktop-wayland + # hyprland neofetch afetch yafetch @@ -255,6 +262,7 @@ fet-sh macchina # Dev tools + android-tools nix-index meson ninja @@ -289,11 +297,11 @@ { myAwesome = super.awesome.overrideAttrs (old: rec { pname = "myAwesome"; - version = "git-20220508-c539e0e"; + version = "git-20220614-3a54221"; src = super.fetchFromGitHub { owner = "awesomeWM"; repo = "awesome"; - rev = "c539e0e4350a42f813952fc28dd8490f42d934b3"; + rev = "3a542219f3bf129546ae79eb20e384ea28fa9798"; sha256 = "EDAL7NnLF2BiVI8DAlEciiZtDmwXOzCPypGTrlN/OoQ="; }; }); @@ -315,6 +323,32 @@ enable = true; package = with pkgs; ((emacsPackagesFor emacsPgtkNativeComp).emacsWithPackages (epkgs: [ epkgs.vterm epkgs.magit epkgs.pdf-tools pkgs.mu ])); }; + services.samba-wsdd.enable = true; + services.samba = { + enable = true; + extraConfig = '' + workgroup = WORKGROUP + server string = smbnix + netbios name = smbnix + security = user + #use sendfile = yes + #max protocol = smb2 + # note: localhost is the ipv6 localhost ::1 + hosts allow = 192.168.0. 127.0.0.1 localhost + hosts deny = 0.0.0.0/0 + guest account = nobody + map to guest = bad user + ''; + shares = { + public = { + path = "/home/chris/Public"; + "read only" = false; + browsable = true; + "guest ok" = true; + comment = "Share"; + }; + }; + }; # Some programs need SUID wrappers, can be configured further or are # started in user sessions.