Added base16 themes

This commit is contained in:
marc
2022-11-24 01:30:43 +01:00
parent b907606818
commit 23e0c5a9c8
35 changed files with 362 additions and 255 deletions

View File

@@ -1,6 +1,6 @@
* Installing * Installing
** Fresh system (nixos USB drive) ** Fresh system (nixos USB drive)
1. Open a nix-shell with git: 1. Open a nix-shell with git (if not installed):
#+BEGIN_SRC bash #+BEGIN_SRC bash
nix-shell -p git nix-shell -p git
#+END_SRC #+END_SRC
@@ -76,3 +76,7 @@
#+BEGIN_SRC bash #+BEGIN_SRC bash
sudo nixos-rebuild switch --impure --flake '.#reykjavik' sudo nixos-rebuild switch --impure --flake '.#reykjavik'
#+END_SRC #+END_SRC
* Modules
** Desktop environment
*** Themeing
We use [[https://github.com/Misterio77/nix-colors][nix-colors]] to (try to) keep a consistent theme across all applications. This uses [[https://github.com/chriskempson/base16][base-16 themes]] (here is a [[https://github.com/chriskempson/base16/blob/main/styling.md][styiling guide]] for it).

View File

@@ -5,3 +5,5 @@ font:
normal: normal:
family: Iosevka Nerd Font family: Iosevka Nerd Font
style: Regular style: Regular
import:
- ~/.config/alacritty/theme.yml

View File

@@ -12,20 +12,18 @@ font-0 = "Iosevka:size=10;2"
font-1 = "Iosevka:size=16;2" font-1 = "Iosevka:size=16;2"
font-2 = "Iosevka:size=22;4" font-2 = "Iosevka:size=22;4"
background = ${colours.trans} background = ${colours/bar.bg}
foreground = ${colours.white} foreground = ${colours/bar.fg}
border-bottom-size = 5 border-bottom-size = 5
border-top-size = 5 border-top-size = 5
border-left-size = 10 border-left-size = 10
border-right-size = 10 border-right-size = 10
border-bottom-colour = ${colours.trans} border-bottom-color = ${colours/bar.bg}
border-top-colour = ${colours.trans} border-top-color = ${colours/bar.bg}
border-left-color = ${colours/bar.bg}
border-left-colour = ${colours.trans} border-right-color = ${colours/bar.bg}
border-right-colour = ${colours.trans}
spacing = 0 spacing = 0
padding-left = 0 padding-left = 0
@@ -34,8 +32,8 @@ module-margin-left = 0
separator = | separator = |
separator-padding = .5 separator-padding = .5
separator-foreground = ${colours.trans} separator-foreground = ${colours/bar.bg}
separator-background = ${colours.trans} separator-background = ${colours/bar.bg}
[bar/bottom] [bar/bottom]
inherit = bar/base inherit = bar/base

View File

@@ -4,82 +4,54 @@ white = #fff
black = #000 black = #000
gray = #555 gray = #555
blue- = #498AD4 [colours/bar]
blue = #2B6CB6 bg = ${colours.trans}
blue+ = #173B63 fg = ${colour-scheme.base05}
xanadu- = #B3BCB6
xanadu = #808F85
xanadu+ = #606C64
green- = #CAE2CE
green = #91C499
green+ = #61A86D
linen- = #F9F5F0
linen = #F2E9DC
linen+ = #DEC6A6
pear- = #E8EB5C
pear = #CFD11A
pear+ = #8F9112
orange- = #FEB548
orange = #F18F01
orange+ = #A26201
apricot- = #FFAB85
apricot = #FFCAB1
apricot+ = #FFF1EB
rose- = #CC8FA0
rose = #AB4E68
rose+ = #7E3A4D
[colours/date] [colours/date]
bg = ${colours.pear} bg = ${colour-scheme.base01}
fg = ${colours.gray} fg = ${colour-scheme.base05}
[colours/battery] [colours/battery]
full-bg = ${colours.green+} full-bg = ${colour-scheme.base0C}
full-fg = ${colours.gray} full-fg = ${colour-scheme.base01}
charging-bg = ${colours.green} charging-bg = ${colour-scheme.base0C}
charging-fg = ${colours.gray} charging-fg = ${colour-scheme.base01}
discharging-bg = ${colours.green} discharging-bg = ${colour-scheme.base01}
discharging-fg = ${colours.gray} discharging-fg = ${colour-scheme.base05}
low-bg = ${colours.orange} low-bg = ${colour-scheme.base0E}
low-fg = ${colours.gray} low-fg = ${colour-scheme.base01}
[colours/workspaces] [colours/workspaces]
focused-bg = ${colours.linen+} focused-bg = ${colour-scheme.base02}
focused-fg = ${colours.gray} focused-fg = ${colour-scheme.base04}
unfocused-bg = ${colours.linen} unfocused-bg = ${colour-scheme.base01}
unfocused-fg = ${colours.gray} unfocused-fg = ${colour-scheme.base05}
urgent-bg = ${colours.orange-} urgent-bg = ${colour-scheme.base0E}
urgent-fg = ${colours.gray} urgent-fg = ${colour-scheme.base01}
[colours/i3-mode] [colours/i3-mode]
bg = ${colours.orange} bg = ${colour-scheme.base0E}
fg = ${colours.gray} fg = ${colour-scheme.base01}
[colours/volume] [colours/volume]
volume-bg = ${colours.rose} volume-bg = ${colour-scheme.base0C}
volume-fg = ${colours.white} volume-fg = ${colour-scheme.base01}
muted-bg = ${colours.rose-} muted-bg = ${colour-scheme.base01}
muted-fg = ${colours.white} muted-fg = ${colour-scheme.base05}
[colours/wireless] [colours/wireless]
connected-bg = ${colours.apricot} connected-bg = ${colour-scheme.base0C}
connected-fg = ${colours.gray} connected-fg = ${colour-scheme.base01}
disconnected-bg = ${colours.apricot} disconnected-bg = ${colour-scheme.base01}
disconnected-fg = ${colours.gray} disconnected-fg = ${colour-scheme.base05}
packetloss-bg = ${colours.apricot} packetloss-bg = ${colour-scheme.base0E}
packetloss-fg = ${colours.gray} packetloss-fg = ${colour-scheme.base01}
[colours/bluetooth] [colours/bluetooth]
bg = ${colours.blue} bg = ${colour-scheme.base0C}
fg = ${colours.white} fg = ${colour-scheme.base01}
[colours/spotify] [colours/spotify]
bg = ${colours.green} bg = ${colour-scheme.base0A}
fg = ${colours.gray} fg = ${colour-scheme.base01}

View File

@@ -4,7 +4,7 @@ full-at = 100
low-at = 20 low-at = 20
battery = BAT0 battery = BAT0
adapter = ADP0 adapter = ADP0
poll-interval = 5 poll-interval = 1
format-full = <label-full> format-full = <label-full>
label-full = "%{T2}%{T-} %percentage%%" label-full = "%{T2}%{T-} %percentage%%"

View File

@@ -1,8 +1,8 @@
[module/bluetooth] [module/bluetooth]
type = custom/script type = custom/script
exec = ~/.config/polybar/scripts/bluetooth.sh exec = ~/.config/rofi/menus/bluetooth/bluetooth.sh --status
interval = 5 interval = 5
click-left = ~/.config/rofi/bluetooth/bluetooth.sh click-left = ~/.config/rofi/menus/bluetooth/bluetooth.sh
format-background = ${colours/bluetooth.bg} format-background = ${colours/bluetooth.bg}
format-foreground = ${colours/bluetooth.fg} format-foreground = ${colours/bluetooth.fg}

View File

@@ -2,7 +2,6 @@
type = internal/network type = internal/network
interface-type = wireless interface-type = wireless
interval = 3.0 interval = 3.0
click-left = ~/.config/rofi/wifi/wifi.sh
accumulate-stats = true accumulate-stats = true
;unknown-as-up = true ;unknown-as-up = true

View File

@@ -1 +1,3 @@
# This file is generated by nixos-rebuild
include-file = colour-scheme.ini
include-file = bars/bars.ini include-file = bars/bars.ini

View File

@@ -1,58 +0,0 @@
#!/bin/sh
bluetooth_print() {
if bluetoothctl show | grep -q "Powered: yes"; then
printf ''
devices_paired=$(bluetoothctl paired-devices | grep Device | cut -d ' ' -f 2)
counter=0
for device in $devices_paired; do
device_info=$(bluetoothctl info "$device")
if echo "$device_info" | grep -q "Connected: yes"; then
device_alias=$(echo "$device_info" | grep "Alias" | cut -d ' ' -f 2-)
if [ $counter -gt 0 ]; then
printf ", %s" "$device_alias"
else
printf " %s" "$device_alias"
fi
counter=$((counter + 1))
fi
done
printf '\n'
else
echo " -"
fi
}
bluetooth_toggle() {
if bluetoothctl show | grep -q "Powered: no"; then
bluetoothctl power on >> /dev/null
sleep 1
devices_paired=$(bluetoothctl paired-devices | grep Device | cut -d ' ' -f 2)
echo "$devices_paired" | while read -r line; do
bluetoothctl connect "$line" >> /dev/null
done
else
devices_paired=$(bluetoothctl devices Paired | grep Device | cut -d ' ' -f 2)
echo "$devices_paired" | while read -r line; do
bluetoothctl disconnect "$line" >> /dev/null
done
bluetoothctl power off >> /dev/null
fi
}
case "$1" in
--toggle)
bluetooth_toggle
;;
*)
bluetooth_print
;;
esac

View File

@@ -4,22 +4,13 @@
* *
**/ **/
@import "../../theme.rasi"
/*****----- Configuration -----*****/ /*****----- Configuration -----*****/
configuration { configuration {
show-icons: false; show-icons: false;
} }
/*****----- Global Properties -----*****/
* {
font: "Iosevka Nerd Font 10";
background: #2B6CB6;
background-alt: #498AD4;
foreground: #FFFFFF;
selected: #173B63;
active: #FFCAB1;
urgent: #FFCAB1;
}
/*****----- Main Window -----*****/ /*****----- Main Window -----*****/
window { window {
/* properties for window widget */ /* properties for window widget */
@@ -35,9 +26,9 @@ window {
enabled: true; enabled: true;
margin: 0px; margin: 0px;
padding: 0px; padding: 0px;
border: 0px solid; border: 2px solid;
border-radius: 20px; border-radius: 15px;
border-color: @selected; border-color: @background-alt;
cursor: "default"; cursor: "default";
background-color: @background; background-color: @background;
} }

View File

@@ -24,7 +24,7 @@ goback="Back"
# PREFIX=projects/samfelag/config/ # PREFIX=projects/samfelag/config/
# Rofi command to pipe into, can add any options here # Rofi command to pipe into, can add any options here
dir="$HOME/$PREFIX.config/rofi/bluetooth/" dir="$HOME/$PREFIX.config/rofi/menus/bluetooth/"
theme='bluetooth' theme='bluetooth'
rofi_command="rofi -dmenu -theme ${dir}/${theme}.rasi -i -p" rofi_command="rofi -dmenu -theme ${dir}/${theme}.rasi -i -p"
@@ -195,7 +195,7 @@ toggle_trust() {
# Useful for status bars like polybar, etc. # Useful for status bars like polybar, etc.
print_status() { print_status() {
if power_on; then if power_on; then
printf '' printf ''
paired_devices_cmd="paired-devices" paired_devices_cmd="paired-devices"
@@ -217,7 +217,7 @@ print_status() {
done done
printf "\n" printf "\n"
else else
echo "" echo ""
fi fi
} }

View File

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

View File

@@ -4,6 +4,8 @@
* *
**/ **/
@import "../../theme.rasi"
/*****----- Configuration -----*****/ /*****----- Configuration -----*****/
configuration { configuration {
modi: "drun,run,filebrowser,window"; modi: "drun,run,filebrowser,window";
@@ -16,17 +18,6 @@ configuration {
window-format: "{w} · {c} · {t}"; window-format: "{w} · {c} · {t}";
} }
/*****----- Global Properties -----*****/
* {
font: "Iosevka Nerd Font 10";
background: #2B6CB6;
background-alt: #498AD4;
foreground: #FFFFFF;
selected: #173B63;
active: #999999;
urgent: #808080;
}
/*****----- Main Window -----*****/ /*****----- Main Window -----*****/
window { window {
/* properties for window widget */ /* properties for window widget */
@@ -40,7 +31,9 @@ window {
/* properties for all widgets */ /* properties for all widgets */
enabled: true; enabled: true;
border: 2px solid;
border-radius: 15px; border-radius: 15px;
border-color: @background-alt;
cursor: "default"; cursor: "default";
background-color: @background; background-color: @background;
} }
@@ -57,7 +50,7 @@ mainbox {
imagebox { imagebox {
padding: 20px; padding: 20px;
background-color: transparent; background-color: transparent;
background-image: url("~/.config/rofi/images/flor01.png", width); background-image: url("~/.config/rofi/menus/launcher/flor01.png", width);
orientation: vertical; orientation: vertical;
children: [ "inputbar", "dummy", "mode-switcher" ]; children: [ "inputbar", "dummy", "mode-switcher" ];
} }

View File

@@ -3,8 +3,11 @@
## Author : Marc Sastre, based on Aditya Shakya (adi1090x, Github : @adi1090x) ## Author : Marc Sastre, based on Aditya Shakya (adi1090x, Github : @adi1090x)
## Rofi : Launcher ## Rofi : Launcher
# Current Theme # For debugging/development purposes
dir="$HOME/.config/rofi/launcher/" # PREFIX=projects/samfelag/config/
# Rofi command to pipe into, can add any options here
dir="$HOME/$PREFIX.config/rofi/menus/launcher/"
theme='launcher' theme='launcher'
rofi -show drun -theme ${dir}/${theme}.rasi rofi -show drun -theme ${dir}/${theme}.rasi

View File

@@ -4,22 +4,13 @@
* *
**/ **/
@import "../../theme.rasi"
/*****----- Configuration -----*****/ /*****----- Configuration -----*****/
configuration { configuration {
show-icons: false; show-icons: false;
} }
/*****----- Global Properties -----*****/
* {
font: "Iosevka Nerd Font 10";
background: #F18F01;
background-alt: #FEB548;
foreground: #444444;
selected: #A26201;
active: #FFCAB1;
urgent: #FFCAB1;
}
/*****----- Main Window -----*****/ /*****----- Main Window -----*****/
window { window {
/* properties for window widget */ /* properties for window widget */
@@ -35,9 +26,9 @@ window {
enabled: true; enabled: true;
margin: 0px; margin: 0px;
padding: 0px; padding: 0px;
border: 0px solid; border: 2px solid;
border-radius: 20px; border-radius: 15px;
border-color: @selected; border-color: @background-alt;
cursor: "default"; cursor: "default";
background-color: @background; background-color: @background;
} }

View File

@@ -4,7 +4,7 @@
## Rofi : Power Menu ## Rofi : Power Menu
# Current Theme # Current Theme
dir="$HOME/.config/rofi/powermenu/" dir="$HOME/.config/rofi/menus/powermenu/"
theme='powermenu' theme='powermenu'
# CMDs # CMDs

View File

@@ -4,22 +4,13 @@
* *
**/ **/
@import "../../theme.rasi"
/*****----- Configuration -----*****/ /*****----- Configuration -----*****/
configuration { configuration {
show-icons: false; show-icons: false;
} }
/*****----- Global Properties -----*****/
* {
font: "Iosevka Nerd Font 10";
background: #FFAB85;
background-alt: #FFCAB1;
foreground: #444444;
selected: #CC8FA0;
active: #7E3A4D;
urgent: #7E3A4D;
}
/*****----- Main Window -----*****/ /*****----- Main Window -----*****/
window { window {
/* properties for window widget */ /* properties for window widget */
@@ -35,9 +26,9 @@ window {
enabled: true; enabled: true;
margin: 0px; margin: 0px;
padding: 0px; padding: 0px;
border: 0px solid; border: 2px solid;
border-radius: 20px; border-radius: 15px;
border-color: @selected; border-color: @background-alt;
cursor: "default"; cursor: "default";
background-color: @background; background-color: @background;
} }

View File

@@ -10,7 +10,7 @@
# PREFIX=projects/samfelag/config/ # PREFIX=projects/samfelag/config/
# Rofi command to pipe into, can add any options here # Rofi command to pipe into, can add any options here
dir="$HOME/$PREFIX.config/rofi/wifi/" dir="$HOME/$PREFIX.config/rofi/menus/wifi/"
theme='wifi' theme='wifi'
rofi_command="rofi -dmenu -i -theme ${dir}/${theme}.rasi" rofi_command="rofi -dmenu -i -theme ${dir}/${theme}.rasi"

View File

@@ -9,30 +9,21 @@
(setq user-full-name "Marc Sastre Rienitz" (setq user-full-name "Marc Sastre Rienitz"
user-mail-address "marc@sastre.cat") user-mail-address "marc@sastre.cat")
;; Doom exposes five (optional) variables for controlling fonts in Doom. Here
;; are the three important ones:
;;
;; + `doom-font'
;; + `doom-variable-pitch-font'
;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for
;; presentations or streaming.
;;
;; They all accept either a font-spec, font string ("Input Mono-12"), or xlfd
;; font string. You generally only need these two:
;; (setq doom-font (font-spec :family "monospace" :size 12 :weight 'semi-light)
;; doom-variable-pitch-font (font-spec :family "sans" :size 13))
(setq doom-font (font-spec :family "Iosevka" :size 15))
(setq doom-unicode-font (font-spec :family "Iosevka Nerd Font" :size 15))
;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the
;; `load-theme' function. This is the default:
(setq doom-theme 'doom-zenburn)
;; This determines the style of line numbers in effect. If set to `nil', line ;; This determines the style of line numbers in effect. If set to `nil', line
;; numbers are disabled. For relative line numbers, set this to `relative'. ;; numbers are disabled. For relative line numbers, set this to `relative'.
(setq display-line-numbers-type t) (setq display-line-numbers-type t)
;; Fonts
(setq doom-font (font-spec :family "Iosevka" :size 15))
(setq doom-unicode-font (font-spec :family "Iosevka Nerd Font" :size 15))
;; Themeing
;; (load! "themes/base16-samfelag.el")
(use-package base16-theme
:init (add-to-list 'custom-theme-load-path "~/.config/doom/themes")
:ensure t
:config
(load-theme 'base16-samfelag t))
;; Here are some additional functions/macros that could help you configure Doom: ;; Here are some additional functions/macros that could help you configure Doom:
;; ;;
@@ -143,15 +134,16 @@
;; ----------------------------------------------------------------------------- ;; -----------------------------------------------------------------------------
;; Appearance - Prettify ;; Appearance - Prettify
;; ----------------------------------------------------------------------------- ;; -----------------------------------------------------------------------------
(load! "prettify-utils.el") (load! "modules/prettify-utils.el")
(pretty-hook python-mode (pretty-hook python-mode
;; ("def" "𝙛") ;; ("def" "𝙛")
;; ("class" "𝙘") ;; ("class" "𝙘")
("None" "") '("None" "")
("lambda" "λ") '("lambda" "λ")
("not in" "") '("not in" "")
("in" "")) '("in" ""))
(pretty-hook emacs-lisp-mode) (pretty-hook emacs-lisp-mode)
;; ("defun" "𝙛") ;; ("defun" "𝙛")

View File

@@ -49,6 +49,8 @@
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;(unpin! t) ;(unpin! t)
(package! base16-theme)
(package! parinfer) (package! parinfer)
;; Editor ;; Editor

View File

@@ -0,0 +1,25 @@
(require 'base16-theme)
(defvar base16-samfelag-theme-colors
'(:base00 "#383838"
:base01 "#404040"
:base02 "#606060"
:base03 "#6f6f6f"
:base04 "#808080"
:base05 "#dcdccc"
:base06 "#c0c0c0"
:base07 "#ffffff"
:base08 "#dca3a3"
:base09 "#dfaf8f"
:base0A "#e0cf9f"
:base0B "#5f7f5f"
:base0C "#93e0e3"
:base0D "#7cb8bb"
:base0E "#dc8cc3"
:base0F "#000000")
"All colors for Base16 Samfelag are defined here.")
(deftheme base16-samfelag)
(base16-theme-define 'base16-samfelag base16-samfelag-theme-colors)
(provide-theme 'base16-samfelag)
(provide 'base16-samfelag-theme)

BIN
data/wallpapers/globus.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

BIN
data/wallpapers/prat.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

BIN
data/wallpapers/rosa.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

75
flake.lock generated
View File

@@ -1,16 +1,32 @@
{ {
"nodes": { "nodes": {
"base16-schemes": {
"flake": false,
"locked": {
"lastModified": 1654895891,
"narHash": "sha256-xYYmZkHnyLCUBAkqkZ7v1Lc5m39857MukQLMRtGuvdk=",
"owner": "base16-project",
"repo": "base16-schemes",
"rev": "7c247f734eac7f04518c6e28d098635ee8dcabf5",
"type": "github"
},
"original": {
"owner": "base16-project",
"repo": "base16-schemes",
"type": "github"
}
},
"emacs-overlay": { "emacs-overlay": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1667735920, "lastModified": 1669120813,
"narHash": "sha256-EfkJxfLX6vVZfNR/7gZgIgwafJ+6RxHwBKp337i09gA=", "narHash": "sha256-00O/dvvcELCdpuFPde+bsJ9Bw974b/VunUArWlJ+lQA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "emacs-overlay", "repo": "emacs-overlay",
"rev": "c009b388c8c2514b24baf6231c5612192c25745c", "rev": "a9c2a436757f09abc4c7bc0abc4d2529b312e42b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -41,11 +57,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1656169755, "lastModified": 1667907331,
"narHash": "sha256-Nlnm4jeQWEGjYrE6hxi/7HYHjBSZ/E0RtjCYifnNsWk=", "narHash": "sha256-bHkAwkYlBjkupPUFcQjimNS8gxWSWjOTevEuwdnp5m0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "4a3d01fb53f52ac83194081272795aa4612c2381", "rev": "6639e3a837fc5deb6f99554072789724997bc8e5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -55,13 +71,32 @@
"type": "github" "type": "github"
} }
}, },
"nix-colors": {
"inputs": {
"base16-schemes": "base16-schemes",
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1667165773,
"narHash": "sha256-47gEPN7UKrNM+a3OKAFtNQeyc1/sSPgDm3OGCgphCyo=",
"owner": "misterio77",
"repo": "nix-colors",
"rev": "a58fb210eb285920ec10f204d007185b3629cadc",
"type": "github"
},
"original": {
"owner": "misterio77",
"repo": "nix-colors",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1667639549, "lastModified": 1669076005,
"narHash": "sha256-frqZKSG/933Ctwl9voSZnXDwo8CqddXcjQhnCzwNqaM=", "narHash": "sha256-uzMji2q9Pk3jUH+e5nEFtoOZCP4VV1PDRJRLVmriY0M=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cae3751e9f74eea29c573d6c2f14523f41c2821a", "rev": "69335c46c48a73f291d5c6f332fb9fe8b8e22b30",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -69,13 +104,28 @@
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgs-lib": {
"locked": {
"lastModified": 1655599917,
"narHash": "sha256-kjZbt5WdTrnjMxL79okg9TCoRUdADG50x/TWozbyTsE=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "5fb55578aa2f1a502d636a8ac71aece57cb730bb",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1664594436, "lastModified": 1668984258,
"narHash": "sha256-YHowMADGzdi7fKnGlg47qe0PIljq+11VqLarmXDuKxQ=", "narHash": "sha256-0gDMJ2T3qf58xgcSbYoXiRGUkPWmKyr5C3vcathWhKs=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9cac45850280978a21a3eb67b15a18f34cbffa2d", "rev": "cf63ade6f74bbc9d2a017290f1b2e33e8fbfa70a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -89,6 +139,7 @@
"inputs": { "inputs": {
"emacs-overlay": "emacs-overlay", "emacs-overlay": "emacs-overlay",
"home-manager": "home-manager", "home-manager": "home-manager",
"nix-colors": "nix-colors",
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
} }
} }

View File

@@ -8,6 +8,8 @@
home-manager.url = "github:nix-community/home-manager/release-22.05"; home-manager.url = "github:nix-community/home-manager/release-22.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
nix-colors.url = "github:misterio77/nix-colors";
emacs-overlay.url = "github:nix-community/emacs-overlay"; emacs-overlay.url = "github:nix-community/emacs-overlay";
}; };
@@ -33,7 +35,10 @@
hostPath hostPath
{ {
imports = imports =
[ inputs.home-manager.nixosModules.home-manager ] [
inputs.home-manager.nixosModules.home-manager
inputs.nix-colors.homeManagerModule
]
# All my personal modules # All my personal modules
++ (lib.my.mapModulesRec' (toString ./modules) import); ++ (lib.my.mapModulesRec' (toString ./modules) import);
} }

View File

@@ -1,5 +1,10 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, inputs, ... }:
with lib;
let
nix-colors-lib = inputs.nix-colors.lib-contrib { inherit pkgs; };
wallpaper = ../../data/wallpapers/globus.jpg;
in
{ {
imports = [ imports = [
./hardware.nix ./hardware.nix
@@ -15,6 +20,13 @@
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
# - Themeing ---------------------------------
colorScheme = nix-colors-lib.colorSchemeFromPicture {
path = wallpaper;
kind = "dark";
};
# - Modules ------------------------------------ # - Modules ------------------------------------
samfelag.modules = { samfelag.modules = {
@@ -32,6 +44,7 @@
# - Desktop ---------------------------------- # - Desktop ----------------------------------
desktop = { desktop = {
inherit wallpaper;
enable = true; enable = true;
laptop = true; laptop = true;
}; };
@@ -41,7 +54,6 @@
dev.git.userName = "marc"; dev.git.userName = "marc";
dev.git.userEmail = "marc@sastre.cat"; dev.git.userEmail = "marc@sastre.cat";
dev.direnv.enable = true; dev.direnv.enable = true;
# - Other apps ------------------------------- # - Other apps -------------------------------

View File

@@ -16,7 +16,37 @@ in
(nerdfonts.override { fonts = [ "Iosevka" ]; }) (nerdfonts.override { fonts = [ "Iosevka" ]; })
]; ];
hm.xdg.configFile."alacritty".source = ../../config/.config/alacritty; hm.xdg.configFile."alacritty/alacritty.yml".source = ../../config/.config/alacritty/alacritty.yml;
# - Themeing ---------------------------------
hm.xdg.configFile."alacritty/theme.yml".text = ''
colors:
primary:
background: '0x${config.colorScheme.colors.base00}'
foreground: '0x${config.colorScheme.colors.base05}'
cursor:
text: '0x${config.colorScheme.colors.base00}'
cursor: '0x${config.colorScheme.colors.base05}'
normal:
black: '0x${config.colorScheme.colors.base00}'
red: '0x${config.colorScheme.colors.base08}'
green: '0x${config.colorScheme.colors.base0B}'
yellow: '0x${config.colorScheme.colors.base0A}'
blue: '0x${config.colorScheme.colors.base0D}'
magenta: '0x${config.colorScheme.colors.base0E}'
cyan: '0x${config.colorScheme.colors.base0C}'
white: '0x${config.colorScheme.colors.base05}'
bright:
black: '0x${config.colorScheme.colors.base03}'
red: '0x${config.colorScheme.colors.base09}'
green: '0x${config.colorScheme.colors.base01}'
yellow: '0x${config.colorScheme.colors.base02}'
blue: '0x${config.colorScheme.colors.base04}'
magenta: '0x${config.colorScheme.colors.base06}'
cyan: '0x${config.colorScheme.colors.base0F}'
white: '0x${config.colorScheme.colors.base07}'
draw_bold_text_with_bright_colors: false
'';
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable { samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
"${i3Cfg.mod}+Return" = "exec ${pkgs.alacritty}/bin/alacritty"; "${i3Cfg.mod}+Return" = "exec ${pkgs.alacritty}/bin/alacritty";

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, inputs, ... }:
with lib; with lib;
let let
@@ -17,8 +17,7 @@ in
default = false; default = false;
}; };
bgColour = my.mkOpt' types.str "#808F85" "Background colour for the wallpaper"; wallpaper = my.mkOpt' types.path ../../data/wallpaper/flors "Path to wallpaper(s)";
wallpapers = my.mkOpt' types.path ../../data/wallpapers/flors "Path to a folder containing wallpapers";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@@ -64,16 +63,15 @@ in
extraStartup = [ extraStartup = [
{ command = "systemctl --user restart polybar"; always = true; notification = false; } { command = "systemctl --user restart polybar"; always = true; notification = false; }
{ command = "feh --bg-center -B \"${cfg.bgColour}\" -z --no-fehbg ${cfg.wallpapers}"; always = true; notification = false; } { command = "feh --bg-fill -B \"#${config.colorScheme.colors.base00}\" -z --no-fehbg ${cfg.wallpaper}"; always = true; notification = false; }
]; ];
extraKeybindings = { extraKeybindings = {
"${cfg.i3.mod}+space" = "exec $HOME/.config/rofi/launcher/launcher.sh"; "${cfg.i3.mod}+space" = "exec $HOME/.config/rofi/menus/launcher/launcher.sh";
"${cfg.i3.mod}+End" = "exec $HOME/.config/rofi/powermenu/powermenu.sh"; "${cfg.i3.mod}+End" = "exec $HOME/.config/rofi/menus/powermenu/powermenu.sh";
}; };
}; };
}; };
}; };
} }

View File

@@ -54,6 +54,7 @@ in {
}; };
windowManager.i3.enable = true; windowManager.i3.enable = true;
windowManager.i3.package = pkgs.i3-gaps;
}; };
# - Configuration ---------------------------- # - Configuration ----------------------------
@@ -79,10 +80,10 @@ in {
titlebar = false; titlebar = false;
}; };
# gaps = { gaps = {
# inner = 10; inner = 10;
# outer = 5; outer = 0;
# }; };
startup = [ startup = [
{ command = "i3-msg workspace 1"; } { command = "i3-msg workspace 1"; }
@@ -192,6 +193,39 @@ in {
"${mod}+Shift+9" = "move container to workspace 9; workspace 9"; "${mod}+Shift+9" = "move container to workspace 9; workspace 9";
"${mod}+Shift+0" = "move container to workspace 10; workspace 10"; "${mod}+Shift+0" = "move container to workspace 10; workspace 10";
} // cfg.extraKeybindings; } // cfg.extraKeybindings;
# - Themeing ---------------------------------
colors = {
background = "#${config.colorScheme.colors.base00}";
focused = {
border = "#${config.colorScheme.colors.base03}";
background = "#${config.colorScheme.colors.base0B}";
text = "#${config.colorScheme.colors.base03}";
indicator = "#${config.colorScheme.colors.base04}";
childBorder = "#${config.colorScheme.colors.base03}";
};
focusedInactive = {
border = "#${config.colorScheme.colors.base03}";
background = "#${config.colorScheme.colors.base04}";
text = "#${config.colorScheme.colors.base03}";
indicator = "#${config.colorScheme.colors.base04}";
childBorder = "#${config.colorScheme.colors.base03}";
};
unfocused = {
border = "#${config.colorScheme.colors.base02}";
background = "#${config.colorScheme.colors.base01}";
text = "#${config.colorScheme.colors.base03}";
indicator = "#${config.colorScheme.colors.base03}";
childBorder = "#${config.colorScheme.colors.base02}";
};
urgent = {
border = "#${config.colorScheme.colors.base02}";
background = "#${config.colorScheme.colors.base0A}";
text = "#${config.colorScheme.colors.base02}";
indicator = "#${config.colorScheme.colors.base03}";
childBorder = "#${config.colorScheme.colors.base02}";
};
};
}; };
}; };
}; };

View File

@@ -35,12 +35,37 @@ in {
hm.xdg.configFile."polybar/bars".source = paths.bars; hm.xdg.configFile."polybar/bars".source = paths.bars;
hm.xdg.configFile."polybar/scripts".source = paths.scripts; hm.xdg.configFile."polybar/scripts".source = paths.scripts;
# - Themeing ---------------------------------
hm.xdg.configFile."polybar/colour-scheme.ini".text = ''
[colour-scheme]
base00 = #${config.colorScheme.colors.base00}
base01 = #${config.colorScheme.colors.base01}
base02 = #${config.colorScheme.colors.base02}
base03 = #${config.colorScheme.colors.base03}
base04 = #${config.colorScheme.colors.base04}
base05 = #${config.colorScheme.colors.base05}
base06 = #${config.colorScheme.colors.base06}
base07 = #${config.colorScheme.colors.base07}
base08 = #${config.colorScheme.colors.base08}
base09 = #${config.colorScheme.colors.base09}
base0A = #${config.colorScheme.colors.base0A}
base0B = #${config.colorScheme.colors.base0B}
base0C = #${config.colorScheme.colors.base0C}
base0D = #${config.colorScheme.colors.base0D}
base0E = #${config.colorScheme.colors.base0E}
base0F = #${config.colorScheme.colors.base0F}
'';
# - Dependencies -----------------------------
# The polybar modules use rofi # The polybar modules use rofi
samfelag.modules.desktop.rofi.enable = true; samfelag.modules.desktop.rofi.enable = true;
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable { samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf i3Cfg.enable {
"${i3Cfg.mod}+Shift+w" = "exec $HOME/.config/rofi/wifi/wifi.sh"; "${i3Cfg.mod}+Shift+w" = "exec $HOME/.config/rofi/menus/wifi/wifi.sh";
}; };
# - Services ---------------------------------
hm.systemd.user.services.polybar = { hm.systemd.user.services.polybar = {
Unit = { Unit = {
Description = "Polybar status bar"; Description = "Polybar status bar";

View File

@@ -12,6 +12,20 @@ in
rofi rofi
]; ];
hm.xdg.configFile."rofi".source = ../../config/.config/rofi; hm.xdg.configFile."rofi/menus".source = ../../config/.config/rofi/menus;
# Themeing ---------------------------------
hm.xdg.configFile."rofi/theme.rasi".text = ''
* {
font: "Iosevka Nerd Font 10";
background: #${config.colorScheme.colors.base00};
background-alt: #${config.colorScheme.colors.base01};
foreground: #${config.colorScheme.colors.base05};
selected: #${config.colorScheme.colors.base02};
active: #${config.colorScheme.colors.base07};
urgent: #${config.colorScheme.colors.base06};
}
'';
}; };
} }

View File

@@ -80,11 +80,42 @@ in {
env.PATH = [ "$HOME/.config/emacs/bin" ]; env.PATH = [ "$HOME/.config/emacs/bin" ];
hm.xdg.configFile."doom" = { hm.xdg.configFile = {
source = ../../config/doom; "doom/modules".source = ../../config/doom/modules;
recursive = true; "doom/config.el".source = ../../config/doom/config.el;
"doom/custom.el".source = ../../config/doom/custom.el;
"doom/init.el".source = ../../config/doom/init.el;
"doom/packages.el".source = ../../config/doom/packages.el;
# Themeing
"doom/themes/base16-samfelag-theme.el".text = ''
(require 'base16-theme)
(defvar base16-samfelag-theme-colors
'(:base00 "#${config.colorScheme.colors.base00}"
:base01 "#${config.colorScheme.colors.base01}"
:base02 "#${config.colorScheme.colors.base02}"
:base03 "#${config.colorScheme.colors.base03}"
:base04 "#${config.colorScheme.colors.base04}"
:base05 "#${config.colorScheme.colors.base05}"
:base06 "#${config.colorScheme.colors.base06}"
:base07 "#${config.colorScheme.colors.base07}"
:base08 "#${config.colorScheme.colors.base08}"
:base09 "#${config.colorScheme.colors.base09}"
:base0A "#${config.colorScheme.colors.base0A}"
:base0B "#${config.colorScheme.colors.base0B}"
:base0C "#${config.colorScheme.colors.base0C}"
:base0D "#${config.colorScheme.colors.base0D}"
:base0E "#${config.colorScheme.colors.base0E}"
:base0F "#${config.colorScheme.colors.base0F}")
"All colors for Base16 Samfelag are defined here.")
(deftheme base16-samfelag)
(base16-theme-define 'base16-samfelag base16-samfelag-theme-colors)
(provide-theme 'base16-samfelag)
(provide 'base16-samfelag-theme)
'';
}; };
system.userActivationScripts = { system.userActivationScripts = {
installDoomEmacs = '' installDoomEmacs = ''
EMACS_FOLDER="$HOME/.config/emacs" EMACS_FOLDER="$HOME/.config/emacs"

View File

@@ -13,7 +13,7 @@ in
services.blueman.enable = true; services.blueman.enable = true;
samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf desktopCfg.enable { samfelag.modules.desktop.i3.extraKeybindings = lib.mkIf desktopCfg.enable {
"${desktopCfg.i3.mod}+b" = "exec $HOME/.config/rofi/bluetooth/bluetooth.sh"; "${desktopCfg.i3.mod}+b" = "exec $HOME/.config/rofi/menus/bluetooth/bluetooth.sh";
}; };
}; };
} }