Compare commits

..

No commits in common. "9e8054ab6b4d7a73a4523c8b112790537cf962c0" and "e304f05642a5fc4c0330f3aa2578ae2d23bbd73c" have entirely different histories.

13 changed files with 137 additions and 217 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

View file

@ -52,8 +52,8 @@ in
users.users.${username} = {
isNormalUser = true;
description = fullname;
extraGroups = [ "wheel" "networkmanager" "video" ]
++ lib.optionals isMobile [ "dialout" "feedbackd" ];
extraGroups = [ "wheel" "networkmanager" ]
++ lib.optionals isMobile [ "dialout" "feedbackd" "video" ];
shell = pkgs.fish;
inherit hashedPassword;
};

View file

@ -1,16 +1,16 @@
{ config, lib, pkgs, tokyo-night-sddm-src, ... }:
let
tokyo-night-sddm = pkgs.stdenv.mkDerivation {
lib.mkIf (config.platform != "mobile")
(let
tokyo-night-sddm = with pkgs.libsForQt5; pkgs.stdenv.mkDerivation {
name = "tokyo-night-sddm";
src = tokyo-night-sddm-src;
installPhase = ''
cp -f ${./tokyo-night-sddm/theme.conf} ./theme.conf
cp -f ${../assets/background/bg_lock.png} Backgrounds/background.png
mkdir -p $out/share/sddm/themes/tokyo-night-sddm
mv * $out/share/sddm/themes/tokyo-night-sddm
'';
};
in lib.mkIf (config.platform != "mobile") {
in {
environment.systemPackages = with pkgs.libsForQt5; [
tokyo-night-sddm # Theme
qtbase
@ -25,4 +25,4 @@ in lib.mkIf (config.platform != "mobile") {
wayland.enable = true;
theme = "tokyo-night-sddm";
};
}
})

View file

@ -1,19 +1,6 @@
{ config, pkgs, lib, ... }:
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs;
let aspell' = aspellWithDicts.override {
aspell = aspell.overrideAttrs (super: {
postInstall = super.postInstall + ''
mkdir -p $out/etc
cat > $out/etc/aspell.conf << EOF
lang en_US
add-extra-dicts en-computers.rws
add-extra-dicts en_US-science.rws
EOF
'';
});
} (ps: with ps; [ en en-computers en-science ]);
in [
environment.systemPackages = with pkgs; [
gcc
ffmpeg
openssl
@ -34,13 +21,10 @@
gnuplot
graphviz
texlive.combined.scheme-full
aspell'
nil
(aspellWithDicts (ps: with ps; [ en en-computers en-science ]))
];
programs.hyprland.enable = true;
security.pam.services.hyprlock = {};
programs.fish.enable = true;
programs.sway.enable = true;
@ -59,13 +43,4 @@
keep-derivations = true
keep-outputs = true
'';
# WLuma
# services.udev.extraRules = let core = exe: lib.getExe' pkgs.coreutils exe; in ''
# ACTION=="add", SUBSYSTEM=="backlight", RUN+="${core "chgrp"} video /sys/class/backlight/%k/brightness"
# ACTION=="add", SUBSYSTEM=="backlight", RUN+="${core "chmod"} g+w /sys/class/backlight/%k/brightness"
# ACTION=="add", SUBSYSTEM=="leds", RUN+="${core "chgrp"} video /sys/class/leds/%k/brightness"
# ACTION=="add", SUBSYSTEM=="leds", RUN+="${core "chmod"} g+w /sys/class/leds/%k/brightness"
# '';
}

View file

@ -1,9 +1,9 @@
[General]
Background="Backgrounds/background.png"
Background="Backgrounds/shacks.png"
## Path relative to the theme root directory. Most standard image file formats are allowed including support for transparency. (e.g. background.jpeg/illustration.GIF/Foto.png/undraw.svgz)
DimBackgroundImage="0"
DimBackgroundImage="0.3"
## Double between 0 and 1 used for the alpha channel of a darkening overlay. Use to darken your background image on the fly.
ScaleImageCropped="true"
@ -17,7 +17,7 @@ ScreenHeight="1080"
## [Blur Settings]
FullBlur="false"
FullBlur="true"
PartialBlur="false"
## Enable or disable the blur effect; if HaveFormBackground is set to true then PartialBlur will trigger the BackgroundColor of the form element to be partially transparent and blend with the blur.
@ -31,7 +31,7 @@ BlurRadius="65"
HaveFormBackground="false"
## Have a full opacity background color behind the form that takes slightly more than 1/3 of screen estate; if PartialBlur is set to true then HaveFormBackground will trigger the BackgroundColor of the form element to be partially transparent and blend with the blur.
FormPosition="right"
FormPosition="center"
## Position of the form which takes roughly 1/3 of screen estate. Can be left, center or right.
BackgroundImageHAlignment="center"
@ -40,17 +40,17 @@ BackgroundImageHAlignment="center"
BackgroundImageVAlignment="center"
## As before but for the vertical position of the background picture relative to its visible area.
MainColor="#c0caf5"
MainColor="#7aa2f7"
## Used for all elements when not focused/hovered etc. Usually the best effect is achieved by having this be either white or a very dark grey like #444 (not black for smoother antialias)
## Colors can be HEX or Qt names (e.g. red/salmon/blanchedalmond). See https://doc.qt.io/qt-5/qml-color.html
AccentColor="#f6a8cf"
AccentColor="#d372a9"
## Used for elements in focus/hover/pressed. Should be contrasting to the background and the MainColor to achieve the best effect.
BackgroundColor="#0a0a11"
BackgroundColor="#16161e"
## Used for the user and session selection background as well as for ScreenPadding and FormBackground when either is true. If PartialBlur and FormBackground are both enabled this color will blend with the blur effect.
OverrideLoginButtonTextColor="#343b58"
OverrideLoginButtonTextColor="#16161e"
## The text of the login button may become difficult to read depending on your color choices. Use this option to set it independently for legibility.
InterfaceShadowSize="6"
@ -65,7 +65,7 @@ RoundCorners="20"
ScreenPadding="0"
## Integer in pixels. Increase or delete this to have a padding of color BackgroundColor all around your screen. This makes your login greeter appear as if it was a canvas. Cool!
Font="Quicksand"
Font="JetBrainsMono Nerd Font"
## If you want to choose a custom font it will have to be available to the X root user. See https://wiki.archlinux.org/index.php/fonts#Manual_installation
FontSize=""

View file

@ -1,4 +1,4 @@
{ config, pkgs, username, ... }:
{ config, pkgs, username, fullname, email, ... }:
{
home.username = username;
home.homeDirectory = "/home/" + username;
@ -6,4 +6,31 @@
home.stateVersion = "21.11";
imports = [ ./shell ./wayland ./xdg.nix ./tools.nix ./email.nix ];
programs.git = {
enable = true;
userName = fullname;
userEmail = email;
signing.key = "6CB106C25E86A9F7";
signing.signByDefault = true;
extraConfig = {
credential.helper = "store";
git.allowForcePush = true;
push.followTags = true;
init.defaultBranch = "main";
};
delta.enable = true;
delta.options = {
features = "decorations";
relative-paths = true;
decorations = {
file-style = "yellow";
hunk-header-style = "line-number syntax";
};
};
};
}

View file

@ -1,4 +1,4 @@
{ config, pkgs, lib, fullname, email, ... }:
{ config, pkgs, fullname, email, ... }:
let
ksumail = "bsheiban@students.kennesaw.edu";
maildir = "${config.xdg.dataHome}/mail";
@ -18,7 +18,7 @@ in {
address = email;
userName = email;
flavor = "gmail.com";
passwordCommand = "${lib.getExe pass} email/GmailApp/${email}";
passwordCommand = "${pass}/bin/pass Email/GmailApp/${email}";
primary = true;
mbsync = {
enable = true;
@ -34,7 +34,7 @@ in {
address = ksumail;
userName = ksumail;
flavor = "outlook.office365.com";
passwordCommand = "${lib.getExe pass} email/${ksumail}";
passwordCommand = "${pass}/bin/pass Email/${ksumail}";
mbsync = {
enable = true;
create = "both";
@ -51,7 +51,7 @@ in {
services = {
mbsync = {
enable = true;
postExec = "${lib.getExe pkgs.mu} index -m ${maildir}";
postExec = "${pkgs.mu}/bin/mu index -m ${maildir}";
};
};
}

View file

@ -1,4 +1,4 @@
{ pkgs, fullname, email, ... }:
{ pkgs, ... }:
{
# Password Store
@ -18,34 +18,4 @@
programs.mpv.config = {
osc = false;
};
# Git
programs.git = {
enable = true;
userName = fullname;
userEmail = email;
signing.key = "6CB106C25E86A9F7";
signing.signByDefault = true;
extraConfig = {
github.user = "kiana-S";
credential.helper = "store";
git.allowForcePush = true;
push.followTags = true;
init.defaultBranch = "main";
};
delta.enable = true;
delta.options = {
features = "decorations";
relative-paths = true;
decorations = {
file-style = "yellow";
hunk-header-style = "line-number syntax";
};
};
};
}

View file

@ -59,7 +59,7 @@
:halign "end"
:hexpand true
:yalign 0.5
:text {formattime(EWW_TIME, "%a, %Y-%m-%d")})))
:text {formattime(EWW_TIME, "%A, %Y-%m-%d")})))
;; Playerctl
@ -182,16 +182,14 @@
(defwidget bar_battery []
(bar_circular :class "bar-battery"
:critical {EWW_BATTERY["BAT1"].capacity <= 15
&& EWW_BATTERY["BAT1"].status != "Charging"}
:tooltip "Battery: ${EWW_BATTERY["BAT1"].capacity}%${
EWW_BATTERY["BAT1"].status == "Charging" ? " (Charging)" : ""}"
:critical {EWW_BATTERY["BAT1"].capacity <= 15}
:tooltip "Battery: ${EWW_BATTERY["BAT1"].capacity}%"
:value {EWW_BATTERY["BAT1"].capacity}
:symbol {EWW_BATTERY["BAT1"].status == "Charging" ? "󰂄" : "󰁹"}))
(defwidget bar_ram []
(bar_circular :class "bar-ram"
:critical {EWW_RAM.used_mem_perc >= 80}
:critical {EWW_RAM.used_mem_perc >= 95}
:tooltip "RAM: ${round(EWW_RAM.used_mem / 1073741824, 2)
} / ${round(EWW_RAM.total_mem / 1073741824, 2)} GB (${round(EWW_RAM.used_mem_perc, 2)}%)"
:value {EWW_RAM.used_mem_perc}
@ -199,7 +197,6 @@
(defwidget bar_storage []
(bar_circular :class "bar-storage"
:critical {EWW_DISK["/"].used_perc >= 95}
:tooltip "Storage: ${round(EWW_DISK["/"].used / 1073741824, 2)
} / ${round(EWW_DISK["/"].total / 1073741824, 0)} GB (${round(EWW_DISK["/"].used_perc, 2)}%)"
:value {EWW_DISK["/"].used_perc}
@ -255,14 +252,14 @@
:halign "start"
:hexpand true
(bar_window :class-limit 60
:title-limit 50)))
:title-limit 55)))
(defwidget laptop_bar_left_wing []
(box :orientation "h"
:space-evenly false
:halign "end"
:hexpand true
(bar_time :width 175)))
(bar_time :width 195)))
(defwidget laptop_bar_center []
(bar_workspaces))
@ -271,7 +268,7 @@
(box :orientation "h"
:space-evenly false
:hexpand true
(bar_music :width 175
(bar_music :width 195
:artist-limit 30
:title-limit 25)))
@ -320,7 +317,7 @@
:space-evenly false
:halign "end"
:hexpand true
(bar_time :width 175)))
(bar_time :width 195)))
(defwidget desktop_bar_center []
(bar_workspaces))
@ -329,7 +326,7 @@
(box :orientation "h"
:space-evenly false
:hexpand true
(bar_music :width 175
(bar_music :width 195
:artist-limit 30
:title-limit 25)))
@ -344,9 +341,7 @@
(bar_internet)
(bar_sep)
(bar_storage)
(bar_ram)
(bar_sep)
(bar_idleinhibit)))
(bar_ram)))
(defwidget desktop_bar_layout []
(centerbox :class "bar"
@ -356,7 +351,7 @@
:hexpand true
(desktop_bar_left_edge)
(desktop_bar_left_wing))
(desktop_bar_center)
(bar_center)
(box :orientation "h"
:space-evenly false
(desktop_bar_right_wing)

View file

@ -16,14 +16,7 @@ in {
plugins = with pkgs.hyprlandPlugins; [ hy3 ];
settings = let
# Volume using pamixer
audio-disp = "${scripts}/multimedia Volume $(pamixer --get-mute) pamixer $(pamixer --get-volume)";
audio = cmd: "pamixer ${cmd} && ${audio-disp}";
# Brightness using brightnessctl
brightness-disp = ''${scripts}/multimedia Brightness "" brightnessctl $(brightnessctl -e -m | cut -d, -f4 | tr -d "%")'';
brightness = x: "brightnessctl -e set ${x} && ${brightness-disp}";
in {
settings = {
"$mod" = modifier;
"$terminal" = terminal;
"$menu" = "rofi -show drun";
@ -43,7 +36,9 @@ in {
resize_on_border = true;
"col.inactive_border" = "rgb(474f6f)";
"col.active_border" = "rgb(b4f9f8)";
"col.active_border" = "rgb(7bc5e4)";
"col.nogroup_border" = "rgb(d5556f)";
"col.nogroup_border_active" = "rgb(d5556f)";
};
plugin.hy3 = {
@ -52,10 +47,6 @@ in {
tabs = {
height = 6;
render_text = false;
"col.active" = "rgb(b4f9f8)";
"col.inactive" = "rgb(474f6f)";
"col.urgent" = "rgb(f7768e)";
};
};
@ -70,6 +61,9 @@ in {
font_size = 14;
};
windowrulev2 = [
"bordercolor rgb(e0af68), fullscreen:1"
];
layerrule = [
"noanim, ^(notifications)$"
];
@ -93,7 +87,7 @@ in {
"$mod, Return, exec, $terminal"
"$mod, D, exec, $menu"
"$mod Shift, E, exec, ${scripts}/exit"
"$mod, M, exec, hyprlock --immediate"
"$mod, M, exec, swaylock"
# Emacs Everywhere
# "$mod, Q, exec, $HOME/.config/emacs/bin/doom +everywhere"
@ -159,7 +153,7 @@ in {
bindl = [
# XF86 key bindings
", XF86AudioMute, exec, ${audio "--toggle-mute"}"
", XF86AudioMute, exec, pamixer --toggle-mute"
", XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioNext, exec, playerctl next"
@ -170,7 +164,14 @@ in {
"Shift, Print, exec, ${scripts}/screenshot-slurp"
];
bindle = [
bindle = let
# Volume using pamixer
audio-disp = "${scripts}/multimedia Volume pamixer $(pamixer --get-volume)";
audio = cmd: "pamixer ${cmd} && ${audio-disp}";
# Brightness using brightnessctl
brightness-disp = ''${scripts}/multimedia Brightness brightnessctl $(brightnessctl -e -m | cut -d, -f4 | tr -d "%")'';
brightness = x: "brightnessctl -e set ${x} && ${brightness-disp}";
in [
# XF86 key bindings
", XF86AudioRaiseVolume, exec, ${audio "-i 2"}"
", XF86AudioLowerVolume, exec, ${audio "-d 2"}"

View file

@ -21,13 +21,13 @@ in {
services.hypridle.enable = true;
services.hypridle.settings = {
general = {
before_sleep_cmd = "hyprlock --immediate";
before_sleep_cmd = "swaylock -f";
};
listener = [
{
timeout = 120;
on-timeout = "hyprlock";
on-timeout = "swaylock -f --grace=180";
}
{
timeout = 600;
@ -47,7 +47,7 @@ in {
Unit = {
Description = "Inhibit Wayland idling when media is played through pipewire";
Documentation = "https://github.com/rafaelrc7/wayland-pipewire-idle-inhibit";
Documentation= "https://github.com/rafaelrc7/wayland-pipewire-idle-inhibit";
After = [ "graphical-session-pre.target" ];
PartOf = [ "graphical-session.target" ];
ConditionEnvironment = "WAYLAND_DISPLAY";

View file

@ -1,4 +1,4 @@
#!/usr/bin/env bash
notify-send "$1" "$2" -c multimedia -a "$3" \
notify-send "$1" -c multimedia -a "$2" \
$(makoctl list | jaq -r 'first(.data[][]|select(.category.data=="multimedia")|.id.data|["-r",.])[]') \
-h "INT:value:$4"
-h "INT:value:$3"

View file

@ -1,6 +1,7 @@
{ pkgs, lib, config, ... }:
{ pkgs, config, ... }:
{
home.packages = with pkgs; [
swaylock-effects
wl-clipboard
wtype
wlroots
@ -9,7 +10,33 @@
imv
];
xdg.configFile."swaynag/config".text = ''
xdg.configFile = {
"swaylock/config".text = ''
ignore-empty-password
fade-in=0.3
indicator
screenshots
font=JetBrainsMono
text-color=ffffff
color=00000000
ring-color=7da6ff
key-hl-color=7bc5e4
line-uses-inside
indicator-radius=120
indicator-thickness=7
clock
datestr=%a, %Y-%m-%d
effect-scale=0.4
effect-vignette=0.3:0.7
effect-blur=2x2
'';
"swaynag/config".text = ''
font=JetBrainsMono 10
layer=top
@ -21,43 +48,6 @@
button-background=282E49F0
button-border-size=2
'';
# Hyprlock
programs.hyprlock.enable = true;
programs.hyprlock.settings = {
general = {
hide_cursor = true;
disable_loading_bar = true;
grace = 180;
};
background = [
{
monitor = "";
path = "screenshot";
blur_passes = 2;
blur_size = 6;
}
];
input-field = [
{
monitor = "";
size = "500, 50";
position = "0, -80";
dots_center = true;
fade_on_empty = false;
font_color = "rgb(a9b1d6)";
inner_color = "rgb(1a1b26)";
outer_color = "rgb(b4f9f8)";
outline_thickness = 3;
placeholder_text = ''<span foreground="##565f89">Password</span>'';
shadow_passes = 2;
}
];
};
# Rofi
@ -102,7 +92,7 @@
background-color=#1e0909d0
border-color=#ce7284
progress-color=source #bc5469
border-size=2
border-size=3
default-timeout=0
ignore-timeout=1
@ -124,53 +114,15 @@
border-size=1
default-timeout=2000
[category=multimedia app-name=pamixer body=false]
[category=multimedia app-name=pamixer]
background-color=#111111c0
border-color=#787c99
progress-color=source #474f6f
[category=multimedia app-name=pamixer body=true]
background-color=#111111c0
border-color=#ce7284
progress-color=source #bc5469
[category=multimedia app-name=brightnessctl]
background-color=#111111c0
border-color=#ffea63
progress-color=source #a08348
'';
};
# WLuma
# systemd.user.services.wluma = lib.mkIf (config.platform == "laptop") {
# Install.WantedBy = [ "graphical-session.target" ];
# Unit = {
# Description = "Adjust screen brightness based on screen contents and ambient lighting";
# Documentation = "https://github.com/maximbaz/wluma";
# After = [ "graphical-session-pre.target" ];
# PartOf = [ "graphical-session.target" ];
# ConditionEnvironment = "WAYLAND_DISPLAY";
# };
# Service = {
# ExecStart = "${lib.getExe pkgs.wluma}";
# Restart = "always";
# RestartSec = "5";
# PrivateNetwork = "true";
# PrivateMounts = "false";
# };
# };
# xdg.configFile."wluma/config.toml".text = ''
# [als.iio]
# path = "/sys/bus/iio/devices"
# thresholds = { 0 = "night", 20 = "dark", 80 = "dim", 250 = "normal", 500 = "bright", 800 = "outdoors" }
# [[output.backlight]]
# name = "eDP-1"
# path = "/sys/class/backlight/intel_backlight"
# capturer = "wlroots"
# '';
}