style: Split out and fixes
This commit is contained in:
		
							parent
							
								
									1b008c1ae8
								
							
						
					
					
						commit
						43e7a5af46
					
				
					 13 changed files with 111 additions and 91 deletions
				
			
		
							
								
								
									
										36
									
								
								hm/brightness/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								hm/brightness/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | |||
| # Light theme during the day, dark theme during the night (not automatic) | ||||
| { pkgs, lib, config, ... }: | ||||
| let | ||||
|   phases = [ | ||||
|     { command = "jour"; polarity = "light"; } | ||||
|     { command = "crepuscule"; polarity = "dark"; } | ||||
|     { command = "nuit"; polarity = "dark"; } | ||||
|   ]; | ||||
|   phasesBrightness = config.frogeye.desktop.phasesBrightness; | ||||
| in | ||||
| { | ||||
|   config = { | ||||
|     home.packages = map | ||||
|       (phase: (pkgs.writeShellApplication { | ||||
|         name = "${phase.command}"; | ||||
|         runtimeInputs = [ pkgs.brightnessctl ]; | ||||
|         text = (lib.optionalString phasesBrightness.enable '' | ||||
|           brightnessctl set ${builtins.getAttr phase.command phasesBrightness} | ||||
|         '') + '' | ||||
|           switch="/nix/var/nix/profiles/system/specialisation/${phase.polarity}/bin/switch-to-configuration" | ||||
|           if [ -x "$switch" ] | ||||
|           then | ||||
|               # In two steps to get the visual changes slightly earlier | ||||
|               sudo "$switch" test | ||||
|               sudo "$switch" boot | ||||
|           fi | ||||
|         ''; | ||||
|       }) | ||||
|       ) | ||||
|       phases; | ||||
|     xsession.windowManager.i3.config.keybindings = { | ||||
|       "XF86MonBrightnessUp" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set +5%"; | ||||
|       "XF86MonBrightnessDown" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set 5%-"; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -2,6 +2,7 @@ | |||
| { | ||||
|   imports = [ | ||||
|     ../options.nix | ||||
|     ./brightness | ||||
|     ./common.nix | ||||
|     ./desktop | ||||
|     ./dev | ||||
|  | @ -18,7 +19,7 @@ | |||
|     ./rebuild | ||||
|     ./shell | ||||
|     ./ssh.nix | ||||
|     ./style.nix | ||||
|     ./theme | ||||
|     ./tmux | ||||
|     ./usernix | ||||
|     ./vim | ||||
|  |  | |||
							
								
								
									
										13
									
								
								hm/desktop/background/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								hm/desktop/background/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | |||
| { pkgs, config, lib, ... }: | ||||
| { | ||||
|   config = lib.mkIf config.frogeye.desktop.xorg { | ||||
|     stylix.image = builtins.fetchurl { | ||||
|       url = "https://get.wallhere.com/photo/sunlight-abstract-minimalism-green-simple-circle-light-leaf-wave-material-line-wing-computer-wallpaper-font-close-up-macro-photography-124350.png"; | ||||
|       sha256 = "sha256:1zfq3f3v34i45mi72pkfqphm8kbhczsg260xjfl6dbydy91d7y93"; | ||||
|     }; | ||||
|     # This correctly sets the background on some occasions, below does the rest | ||||
|     programs.autorandr.hooks.postswitch = { | ||||
|       background = "${pkgs.feh}/bin/feh --no-fehbg --bg-fill ${config.stylix.image}"; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -7,12 +7,14 @@ in | |||
|   imports = [ | ||||
|     ./audio | ||||
|     ./autorandr | ||||
|     ./background | ||||
|     ./frobar | ||||
|     ./i3.nix | ||||
|     ./lock | ||||
|     ./mpd | ||||
|     ./presentation | ||||
|     ./qutebrowser.nix | ||||
|     ./redness | ||||
|     ./screenshots | ||||
|   ]; | ||||
|   config = lib.mkIf config.frogeye.desktop.xorg { | ||||
|  |  | |||
|  | @ -62,9 +62,6 @@ in | |||
|           }"; | ||||
|           "${mod}+Shift+Return" = "exec ${config.programs.urxvt.package}/bin/urxvt"; | ||||
|           "${mod}+p" = "exec ${pkgs.xfce.thunar}/bin/thunar"; | ||||
|           # Backlight | ||||
|           "XF86MonBrightnessUp" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set +5%"; | ||||
|           "XF86MonBrightnessDown" = "exec ${pkgs.brightnessctl}/bin/brightnessctl set 5%-"; | ||||
|           # Misc | ||||
|           "${mod}+F10" = "exec ${ pkgs.writeShellScript "show-keyboard-layout" | ||||
|             '' | ||||
|  | @ -214,17 +211,6 @@ in | |||
|         }; | ||||
|         mod_enter = "Escape"; | ||||
|       }; | ||||
|       "Temperature [R] Red [D] Dust storm [C] Campfire [O] Normal [A] All nighter [B] Blue" = { | ||||
|         bindings = { | ||||
|           "r" = "exec ${pkgs.sct}/bin/sct 1000"; | ||||
|           "d" = "exec ${pkgs.sct}/bin/sct 2000"; | ||||
|           "c" = "exec ${pkgs.sct}/bin/sct 4500"; | ||||
|           "o" = "exec ${pkgs.sct}/bin/sct"; | ||||
|           "a" = "exec ${pkgs.sct}/bin/sct 8000"; | ||||
|           "b" = "exec ${pkgs.sct}/bin/sct 10000"; | ||||
|         }; | ||||
|         mod_enter = "y"; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
|   options = { | ||||
|  |  | |||
							
								
								
									
										28
									
								
								hm/desktop/redness/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								hm/desktop/redness/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | |||
| { pkgs, lib, config, ... }: | ||||
| let | ||||
|   # UPST | ||||
|   sct = pkgs.sct.overrideAttrs | ||||
|     (old: { | ||||
|       patches = (old.patches or [ ]) ++ [ | ||||
|         ./sct_aarch64.patch | ||||
|       ]; | ||||
|     }); | ||||
| in | ||||
| { | ||||
|   config = lib.mkIf config.frogeye.desktop.xorg { | ||||
|     frogeye.desktop.i3.bindmodes = { | ||||
|       "Temperature [R] Red [D] Dust storm [C] Campfire [O] Normal [A] All nighter [B] Blue" = { | ||||
|         bindings = { | ||||
|           "r" = "exec ${sct}/bin/sct 1000"; | ||||
|           "d" = "exec ${sct}/bin/sct 2000"; | ||||
|           "c" = "exec ${sct}/bin/sct 4500"; | ||||
|           "o" = "exec ${sct}/bin/sct"; | ||||
|           "a" = "exec ${sct}/bin/sct 8000"; | ||||
|           "b" = "exec ${sct}/bin/sct 10000"; | ||||
|         }; | ||||
|         mod_enter = "y"; | ||||
|       }; | ||||
|     }; | ||||
|     home.packages = [ sct ]; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										59
									
								
								hm/style.nix
									
										
									
									
									
								
							
							
						
						
									
										59
									
								
								hm/style.nix
									
										
									
									
									
								
							|  | @ -1,59 +0,0 @@ | |||
| { pkgs, config, lib, ... }: | ||||
| let | ||||
|   # Currently last commit in https://github.com/danth/stylix/pull/194 | ||||
|   phases = [ | ||||
|     { command = "jour"; polarity = "light"; } | ||||
|     { command = "crepuscule"; polarity = "dark"; } | ||||
|     { command = "nuit"; polarity = "dark"; } | ||||
|   ]; | ||||
|   cfg = config.frogeye.desktop.phasesBrightness; | ||||
| in | ||||
| { | ||||
|   stylix = { | ||||
| 
 | ||||
|     base16Scheme = "${pkgs.base16-schemes}/share/themes/solarized-${config.frogeye.polarity}.yaml"; | ||||
|     image = builtins.fetchurl { | ||||
|       url = "https://get.wallhere.com/photo/sunlight-abstract-minimalism-green-simple-circle-light-leaf-wave-material-line-wing-computer-wallpaper-font-close-up-macro-photography-124350.png"; | ||||
|       sha256 = "sha256:1zfq3f3v34i45mi72pkfqphm8kbhczsg260xjfl6dbydy91d7y93"; | ||||
|     }; | ||||
|     # The background is set on some occasions, autorandr + feh do the rest | ||||
| 
 | ||||
|     fonts = { | ||||
|       monospace = { | ||||
|         package = pkgs.nerdfonts.override { | ||||
|           fonts = [ "DejaVuSansMono" ]; # Choose from https://github.com/NixOS/nixpkgs/blob/6ba3207643fd27ffa25a172911e3d6825814d155/pkgs/data/fonts/nerdfonts/shas.nix | ||||
|         }; | ||||
|         name = "DejaVuSansM Nerd Font"; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   programs.autorandr.hooks.postswitch = { | ||||
|     background = "${pkgs.feh}/bin/feh --no-fehbg --bg-fill ${config.stylix.image}"; | ||||
|   }; | ||||
| 
 | ||||
| 
 | ||||
|   # Fix https://nix-community.github.io/home-manager/index.html#_why_do_i_get_an_error_message_about_literal_ca_desrt_dconf_literal_or_literal_dconf_service_literal | ||||
|   # home.packages = [ pkgs.dconf ]; | ||||
|   dconf.enable = false; # Otherwise standalone home-manager complains it can't find /etc/dbus-1/session.conf on Arch. | ||||
|   # Symlinking it to /usr/share/dbus-1/session.conf goes further but not much. | ||||
| 
 | ||||
|   home.packages = map | ||||
|     (phase: (pkgs.writeShellApplication { | ||||
|       name = "${phase.command}"; | ||||
|       runtimeInputs = [ pkgs.brightnessctl ]; | ||||
|       text = (lib.optionalString cfg.enable '' | ||||
|         brightnessctl set ${builtins.getAttr phase.command cfg} | ||||
|       '') + '' | ||||
|         switch="/nix/var/nix/profiles/system/specialisation/${phase.polarity}/bin/switch-to-configuration" | ||||
|         if [ -x "$switch" ] | ||||
|         then | ||||
|             # In two steps to get the visual changes slightly earlier | ||||
|             sudo "$switch" test | ||||
|             sudo "$switch" boot | ||||
|         fi | ||||
|       ''; | ||||
|     }) | ||||
|     ) | ||||
|     phases; | ||||
| } | ||||
							
								
								
									
										24
									
								
								hm/theme/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								hm/theme/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| { pkgs, config, lib, ... }: | ||||
| let | ||||
|   basetheme = "solarized"; | ||||
| in | ||||
| { | ||||
|   config = { | ||||
|     # Setting a custom base16 theme via nixvim is required so feline works, and | ||||
|     # because stylix makes a config that otherwise only works with dark | ||||
|     # polarity. | ||||
|     programs.nixvim.colorschemes.base16.colorscheme = "${basetheme}-${config.frogeye.polarity}"; | ||||
| 
 | ||||
|     stylix = { | ||||
|       base16Scheme = "${pkgs.base16-schemes}/share/themes/${basetheme}-${config.frogeye.polarity}.yaml"; | ||||
|       fonts = { | ||||
|         monospace = { | ||||
|           package = pkgs.nerdfonts.override { | ||||
|             fonts = [ "DejaVuSansMono" ]; # Choose from https://github.com/NixOS/nixpkgs/blob/6ba3207643fd27ffa25a172911e3d6825814d155/pkgs/data/fonts/nerdfonts/shas.nix | ||||
|           }; | ||||
|           name = "DejaVuSansM Nerd Font"; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -5,6 +5,10 @@ let | |||
| in | ||||
| { | ||||
|   config = lib.mkIf config.frogeye.userNix { | ||||
|     dconf.enable = lib.mkForce false; | ||||
|     # Otherwise standalone home-manager complains it can't find /etc/dbus-1/session.conf. | ||||
|     # Symlinking it to /usr/share/dbus-1/session.conf goes further but not much. | ||||
| 
 | ||||
|     home.activation = { | ||||
|       # When Nix is installed in the user directory via a proot, systemd --user | ||||
|       # is started outside of it, so it cannot access /nix. So we need to: | ||||
|  |  | |||
|  | @ -12,10 +12,6 @@ | |||
|       vim = "nvim"; | ||||
|     }; | ||||
|     programs.nixvim = { | ||||
|       # Setting a custom base16 theme via nixvim is required so feline works, and | ||||
|       # because stylix makes a config that otherwise only works with dark | ||||
|       # polarity. | ||||
|       colorschemes.base16.colorscheme = "solarized-${config.frogeye.polarity}"; | ||||
|       options = { | ||||
|         ignorecase = true; | ||||
|         smartcase = true; | ||||
|  |  | |||
|  | @ -41,18 +41,5 @@ | |||
|         pulseaudio.enable = true; | ||||
|         # TODO Try pipewire | ||||
|     }; | ||||
| 
 | ||||
|     # UPST | ||||
|     # TODO Find a way to override packages either at NixOS level or HM level depending on what is used | ||||
|     nixpkgs.overlays = [ | ||||
|       (final: prev: { | ||||
|         sct = prev.sct.overrideAttrs | ||||
|           (old: { | ||||
|             patches = (old.patches or [ ]) ++ [ | ||||
|               ./sct_aarch64.patch | ||||
|             ]; | ||||
|           }); | ||||
|       }) | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -35,6 +35,8 @@ | |||
|     light.configuration.frogeye.polarity = "light"; | ||||
|   }; | ||||
| 
 | ||||
|   # Fix https://nix-community.github.io/home-manager/index.html#_why_do_i_get_an_error_message_about_literal_ca_desrt_dconf_literal_or_literal_dconf_service_literal | ||||
|   programs.dconf.enable = true; | ||||
| 
 | ||||
|   # Because everything is encrypted and I'm the only user, this is fine. | ||||
|   services.xserver.displayManager.autoLogin.user = "geoffrey"; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue