Compare commits
No commits in common. "a37efb924516d8de08bffc33b0420d03aa17739b" and "e75c2725a7561986ed35baaf116f7ac2f8976d79" have entirely different histories.
a37efb9245
...
e75c2725a7
9
.aliases
9
.aliases
|
@ -8,17 +8,17 @@ alias upnodock='sudo apt-mark hold docker-ce docker-ce-cli && sudo apt update &&
|
|||
|
||||
alias o='xdg-open'
|
||||
alias s='kitty +kitten ssh'
|
||||
alias ssh='kitty +kitten ssh'
|
||||
alias cat='bat'
|
||||
# alias rg='ripgrep'
|
||||
alias ll='eza -ahlF'
|
||||
alias la='eza -Ah'
|
||||
alias ll='ls -ahlF'
|
||||
alias la='ls -Ah'
|
||||
alias l='ls -CF'
|
||||
alias feh='feh -d --scale-down'
|
||||
alias camshot='fswebcam -r 640x480 --jpeg 90 -F 3 -D 1 --no-banner'
|
||||
|
||||
alias ta='tmux attach'
|
||||
|
||||
alias sk='sh ~/git/home-infra/tools/goking.sh'
|
||||
alias sk='sh ~/projects/home-infra/tools/goking.sh'
|
||||
alias wgfsu='sudo wg-quick up fschl-vpn'
|
||||
alias wgfsd='sudo wg-quick down fschl-vpn'
|
||||
|
||||
|
@ -33,7 +33,6 @@ alias act='sudo systemctl -l -t service --state=active'
|
|||
alias fai='sudo systemctl -l -t service --state=failed'
|
||||
|
||||
# basic docker shortcuts
|
||||
alias docker='podman'
|
||||
alias dps='docker container ls -a'
|
||||
alias di='docker image ls'
|
||||
alias dv='docker volume '
|
||||
|
|
|
@ -8,31 +8,25 @@ case $- in
|
|||
*) return;;
|
||||
esac
|
||||
|
||||
# Source global definitions
|
||||
if [ -f /etc/bashrc ]; then
|
||||
. /etc/bashrc
|
||||
fi
|
||||
|
||||
# User specific environment
|
||||
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]; then
|
||||
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
|
||||
fi
|
||||
export PATH
|
||||
|
||||
# don't put duplicate lines or lines starting with space in the history.
|
||||
# See bash(1) for more options
|
||||
HISTCONTROL=ignoreboth
|
||||
|
||||
# allow docker to use X
|
||||
# if [ -f /usr/bin/xhost ]; then
|
||||
# xhost +local:root
|
||||
# fi
|
||||
|
||||
# Load the shell dotfiles, and then some:
|
||||
# * ~/.path can be used to extend `$PATH`.
|
||||
# * ~/.extra can be used for other settings you don’t want to commit.
|
||||
for file in ~/.{bash_aliases,exports}; do
|
||||
for file in ~/.{aliases,bash_prompt,functions,path,dockerfunc,extra,exports}; do
|
||||
[[ -r "$file" ]] && [[ -f "$file" ]] && source "$file"
|
||||
done
|
||||
unset file
|
||||
|
||||
|
||||
for file in /usr/share/fzf/shell/{key-bindings.bash,completion.bash}; do
|
||||
for file in /usr/share/fzf/{key-bindings.bash,completion.bash}; do
|
||||
[[ -r "$file" ]] && [[ -f "$file" ]] && source "$file"
|
||||
done
|
||||
unset file
|
||||
|
@ -123,7 +117,6 @@ if ! shopt -oq posix; then
|
|||
. /etc/bash_completion
|
||||
fi
|
||||
fi
|
||||
|
||||
. "$HOME/.cargo/env"
|
||||
|
||||
ssh-add -l &>/dev/null
|
||||
|
@ -145,9 +138,12 @@ eval "$(starship init bash)"
|
|||
if test -n "$KITTY_INSTALLATION_DIR" -a -e "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; then source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; fi
|
||||
# END_KITTY_SHELL_INTEGRATION
|
||||
|
||||
# Automatically added by the Guix install script.
|
||||
if [ -n "$GUIX_ENVIRONMENT" ]; then
|
||||
if [[ $PS1 =~ (.*)"\\$" ]]; then
|
||||
PS1="${BASH_REMATCH[1]} [env]\\\$ "
|
||||
fi
|
||||
fi
|
||||
# curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||
|
||||
# pnpm
|
||||
export PNPM_HOME="/home/fschl/.local/share/pnpm"
|
||||
export PATH="$PNPM_HOME:$PATH"
|
||||
# pnpm end
|
|
@ -1,11 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
GREEN='\033[1;32m'
|
||||
BLUE='\033[1;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo
|
||||
echo -e "${GREEN}Building ${BLUE}$(hostname)${GREEN}...${NC}"
|
||||
echo
|
||||
|
||||
sudo guix system -v 3 -c 8 -L ~/git/dotfiles/ build ~/git/dotfiles/fschl/systems/$(hostname).scm
|
|
@ -1,14 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
|
||||
GREEN='\033[1;32m'
|
||||
BLUE='\033[1;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo
|
||||
echo -e "${GREEN}Updating ${BLUE}base-channels${GREEN}...${NC}"
|
||||
echo
|
||||
|
||||
cp -f ~/git/dotfiles/fschl/base-channels.scm ~/.config/guix/base-channels.scm
|
||||
guix pull --channels=$HOME/.config/guix/base-channels.scm
|
||||
guix describe --format=channels > ~/.config/guix/channels.scm
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
GREEN='\033[1;32m'
|
||||
BLUE='\033[1;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo
|
||||
echo -e "${GREEN}Updating $HOME for ${BLUE}$(hostname)${GREEN}...${NC}"
|
||||
echo
|
||||
|
||||
RUNNING_GUIX_HOME=1 guix home -v 3 -c 10 -L ~/git/dotfiles/ reconfigure ~/git/dotfiles/fschl/systems/$(hostname).scm
|
|
@ -1,11 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
GREEN='\033[1;32m'
|
||||
BLUE='\033[1;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo
|
||||
echo -e "${GREEN}Updating ${BLUE}$(hostname)${GREEN}...${NC}"
|
||||
echo
|
||||
|
||||
sudo guix system -v 3 -c 10 -L ~/git/dotfiles/ reconfigure ~/git/dotfiles/fschl/systems/$(hostname).scm
|
|
@ -3,41 +3,22 @@ set $mod Mod4
|
|||
|
||||
# Configure displays
|
||||
|
||||
# https://github.com/swaywm/sway/wiki#display-configuration
|
||||
# swaymsg -t get_outputs
|
||||
set $primary 'LG Electronics 24MB65 512NTHM7N489'
|
||||
set $secondary 'BNQ BenQ GW2450H K8D03191SL0'
|
||||
# The annoying thing is that sometimes the display ID changes when hotplugging
|
||||
# my Thunderbolt dock...
|
||||
set $primary DP-7 DP-8 HDMI-A-1
|
||||
set $laptop eDP-1
|
||||
|
||||
output $primary pos 1080 135
|
||||
output $secondary pos 0 0 transform 90
|
||||
output $laptop pos 1920 135 scale 2
|
||||
output DP-7 pos 0 0 scale 2
|
||||
output DP-8 pos 0 0 scale 2
|
||||
output HDMI-A-1 scale 2
|
||||
|
||||
# output * bg ~/.dotfiles/backgrounds/samuel-ferrara-uOi3lg8fGl4-unsplash.jpg fill
|
||||
# output * bg ~/.dotfiles/backgrounds/scott-rodgerson-lRtzEExP0H8-unsplash.jpg fill
|
||||
|
||||
bindsym $mod+Shift+s exec ~/.bin/toggle-display $primary
|
||||
|
||||
# https://github.com/swaywm/sway/wiki#input-configuration
|
||||
# localectl list-x11-keymap-layouts - gives you layouts (~100 on modern systems)
|
||||
# localectl list-x11-keymap-variants de - gives you variants for this layout
|
||||
input "5426:270:Razer_Razer_BlackWidow" {
|
||||
xkb_layout de
|
||||
xkb_options ctrl:nocaps
|
||||
}
|
||||
|
||||
# The internal keyboard of my ThinkPad X13 has a ANSI german keyboard
|
||||
# which uses the variant E2 and moves
|
||||
# < to AltGr+2
|
||||
# > to AltGr+3
|
||||
# | to AltGr+^
|
||||
input "1:1:AT_Translated_Set_2_keyboard" {
|
||||
xkb_layout de
|
||||
xkb_variant e2
|
||||
xkb_options ctrl:nocaps
|
||||
}
|
||||
|
||||
# input "4617:8963:Keyboardio_Atreus" {
|
||||
input "4617:8963:Keyboardio_Atreus_Keyboard" {
|
||||
input type:keyboard {
|
||||
xkb_layout de,de
|
||||
xkb_options ctrl:nocaps
|
||||
}
|
||||
|
@ -55,7 +36,6 @@ bindsym $mod+Shift+r reload
|
|||
bindsym $mod+r mode "resize"
|
||||
|
||||
bindsym $mod+Shift+Return exec kitty
|
||||
# bindsym $mod+Shift+Return exec emacsclient -c --eval '(vterm)'
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+s layout stacking
|
||||
|
@ -68,11 +48,6 @@ bindsym $mod+j focus down
|
|||
bindsym $mod+k focus up
|
||||
bindsym $mod+l focus right
|
||||
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move workspace
|
||||
bindsym $mod+Mod1+h move workspace to output left
|
||||
bindsym $mod+Mod1+l move workspace to output right
|
||||
|
@ -122,13 +97,14 @@ workspace_layout tabbed
|
|||
|
||||
# Configure gaps and borders
|
||||
default_border pixel 1
|
||||
gaps outer 2
|
||||
gaps outer 0
|
||||
gaps inner 4
|
||||
# smart_borders off
|
||||
smart_borders off
|
||||
hide_edge_borders --i3 none
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws0 "chat"
|
||||
set $ws1 "1 "
|
||||
set $ws2 "2 "
|
||||
set $ws3 "3 "
|
||||
|
@ -138,26 +114,26 @@ set $ws5 "5 "
|
|||
set $ws8 "8 "
|
||||
# linux - less often used terminals for background processes
|
||||
set $ws9 "9 "
|
||||
set $ws0 "chat"
|
||||
|
||||
# find application info with =swaymsg -t get_tree=
|
||||
assign [app_id="firefox"] $ws1
|
||||
# assign [class="Emacs"] $ws2
|
||||
assign [class="Emacs"] $ws2
|
||||
assign [title="^DebugScreen"] $ws3
|
||||
assign [app_id="org.keepassxc.KeePassXC"] $ws8
|
||||
|
||||
# Move specific workspaces to outputs
|
||||
workspace $ws0 output $laptop
|
||||
workspace $ws1 output $primary $laptop
|
||||
workspace $ws2 output $primary $laptop
|
||||
workspace $ws3 output $secondary $laptop
|
||||
workspace $ws4 output $secondary $laptop
|
||||
workspace $ws5 output $secondary $laptop
|
||||
workspace $ws8 output $laptop
|
||||
workspace $ws9 output $laptop
|
||||
workspace $ws0 output $laptop
|
||||
workspace $ws3 output $laptop
|
||||
workspace $ws4 output $laptop
|
||||
workspace $ws5 output $laptop
|
||||
|
||||
# Switch to dev workspace by default
|
||||
#workspace $ws1
|
||||
|
||||
# Switch to workspace
|
||||
# bindsym $mod+grave workspace $ws0
|
||||
bindsym $mod+grave workspace $ws0
|
||||
bindsym $mod+1 workspace $ws1
|
||||
bindsym $mod+2 workspace $ws2
|
||||
bindsym $mod+3 workspace $ws3
|
||||
|
@ -167,10 +143,10 @@ bindsym $mod+6 workspace 6
|
|||
bindsym $mod+7 workspace 7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
bindsym $mod+9 workspace $ws9
|
||||
bindsym $mod+0 workspace 0
|
||||
bindsym $mod+0 workspace 10
|
||||
|
||||
# Move focused container to workspace
|
||||
# bindsym $mod+Shift+grave move container to workspace $ws0
|
||||
bindsym $mod+Shift+grave move container to workspace $ws0
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||
|
@ -180,7 +156,7 @@ bindsym $mod+Shift+6 move container to workspace 6
|
|||
bindsym $mod+Shift+7 move container to workspace 7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace 0
|
||||
bindsym $mod+Shift+0 move container to workspace 10
|
||||
|
||||
# Bind hotkeys for brightness and volume
|
||||
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||
|
@ -233,14 +209,13 @@ bindsym Ctrl+Shift+L exec $lock
|
|||
for_window [title=".* - mpv$"] floating enable, sticky enable
|
||||
|
||||
# Autostart applications
|
||||
exec waybar --config ~/.config/waybar/x13-fedora.config
|
||||
# exec waybar --config ~/.config/waybar/$(hostname).config
|
||||
exec waybar
|
||||
exec mako --border-radius=2 --font="Iosevka ss08 10" --max-visible=5 --outer-margin=5 --margin=3 --background="#1c1f26" --border-color="#89AAEB" --border-size=1 --default-timeout=7000
|
||||
exec nm-applet --indicator
|
||||
exec udiskie -t
|
||||
exec gammastep-indicator -l 50.8643:12.1124 -t 6500:3500 -b 1.0:0.7
|
||||
|
||||
exec swaymsg workspace $ws2 && emacs --daemon && emacsclient -c
|
||||
exec emacs
|
||||
exec firefox
|
||||
exec keepassxc
|
||||
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
{
|
||||
"layer": "bottom",
|
||||
"position": "bottom",
|
||||
"height": 24,
|
||||
"height": 20,
|
||||
|
||||
// maybe take another look at e.g. https://gitlab.com/wef/dotfiles/-/blob/master/.config/waybar/config
|
||||
// https://github.com/Alexays/Waybar/wiki/Configuration
|
||||
// https://github.com/Alexays/Waybar/wiki/Examples
|
||||
|
||||
"modules-left": ["sway/workspaces", "sway/mode", "sway/window" ],
|
||||
"modules-center": [ "custom/disk_root", "custom/disk_docs", "custom/disk_store", "network"],
|
||||
"modules-right": [ "custom/mail", "battery", "memory", "tray", "clock" ],
|
||||
"modules-left": ["sway/workspaces", "sway/mode"],
|
||||
"modules-center": [ "custom/disk_root", "network"],
|
||||
"modules-right": [ "memory", "tray", "battery", "clock", ],
|
||||
"sway/mode": {
|
||||
"format": " {}"
|
||||
},
|
||||
|
@ -36,27 +36,12 @@
|
|||
"custom/disk_home": {
|
||||
"format": "🏠 {} ",
|
||||
"interval": 30,
|
||||
"exec": "df -h --output=avail $HOME | tail -1 | tr -d ' '",
|
||||
"tooltip": true ,
|
||||
"tooltip-format": "{path} ({percentage_used}% of {total})"
|
||||
"exec": "df -h --output=avail $HOME | tail -1 | tr -d ' '"
|
||||
},
|
||||
"custom/disk_root": {
|
||||
"format": "root💽{} ",
|
||||
"format": "💽 {} ",
|
||||
"interval": 30,
|
||||
"exec": "df -h --output=avail / | tail -1 | tr -d ' '",
|
||||
"tooltip": true ,
|
||||
"tooltip-format": "{path} ({percentage_used}% of {total})"
|
||||
},
|
||||
|
||||
"custom/disk_store": {
|
||||
"format": "store💽{} ",
|
||||
"interval": 30,
|
||||
"exec": "df -h --output=avail /media/store | tail -1 | tr -d ' '"
|
||||
},
|
||||
"custom/disk_docs": {
|
||||
"format": "docs💽{} ",
|
||||
"interval": 30,
|
||||
"exec": "df -h --output=avail /media/docs | tail -1 | tr -d ' '"
|
||||
"exec": "df -h --output=avail / | tail -1 | tr -d ' '"
|
||||
},
|
||||
"temperature": {
|
||||
// "thermal-zone": 2,
|
||||
|
@ -80,6 +65,7 @@
|
|||
},
|
||||
"network": {
|
||||
// "family": "ipv6",
|
||||
"interface": "wlp3*", // (Optional) To force the use of this interface
|
||||
"format-wifi": "<span color='#589df6'></span> <span color='gray'>{essid}</span> {frequency} <span color='#589df6'>{signaldBm} dB</span> <span color='#589df6'>⇵</span> {bandwidthUpBits}/{bandwidthDownBits}",
|
||||
"format-ethernet": "{ifname}: {ipaddr}/{cidr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
|
@ -2,16 +2,19 @@
|
|||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: Iosevka ss08;
|
||||
font-size: 14px;
|
||||
font-size: 13px;
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
transition-duration: 0s;
|
||||
}
|
||||
|
||||
window.eDP-1 * {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
window {
|
||||
color: #efefff;
|
||||
background: rgba(35, 38, 53, 0.8);
|
||||
margin: 0px 2px 0px 22px;
|
||||
color: #ffffff;
|
||||
background: rgba(35, 38, 53, 0.8);
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
|
@ -40,13 +43,6 @@ window {
|
|||
color: rgba(238, 46, 36, 1);
|
||||
}
|
||||
|
||||
#window {
|
||||
color: #afbfff;
|
||||
background: rgba(15, 18, 43, 0.3);
|
||||
margin: 0px 2px 0px 22px;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
#mode,
|
||||
#battery,
|
||||
#cpu,
|
||||
|
@ -55,23 +51,12 @@ window {
|
|||
#pulseaudio,
|
||||
#idle_inhibitor,
|
||||
#backlight,
|
||||
#wireplumber,
|
||||
#custom-storage,
|
||||
#custom-spotify,
|
||||
#custom-weather,
|
||||
#custom-mail {
|
||||
margin: 0px 6px 0px 10px;
|
||||
min-width: 25px;
|
||||
}
|
||||
|
||||
|
||||
#wireplumber.muted {
|
||||
color: rgba(255, 210, 4, 1);
|
||||
}
|
||||
|
||||
#mode {
|
||||
color: rgba(180, 100, 100, 0.20);
|
||||
margin: 0px 2px 0px 22px;
|
||||
margin: 0px 6px 0px 10px;
|
||||
min-width: 25px;
|
||||
}
|
||||
|
||||
#clock {
|
||||
|
|
|
@ -1,107 +0,0 @@
|
|||
{
|
||||
"layer": "bottom",
|
||||
"position": "bottom",
|
||||
"height": 32,
|
||||
|
||||
// maybe take another look at e.g. https://gitlab.com/wef/dotfiles/-/blob/master/.config/waybar/config
|
||||
// https://github.com/Alexays/Waybar/wiki/Configuration
|
||||
// https://github.com/Alexays/Waybar/wiki/Examples
|
||||
|
||||
"modules-left": ["sway/workspaces", "sway/mode", "sway/window" ],
|
||||
"modules-center": [ "custom/disk_root", "network"],
|
||||
"modules-right": [ "wireplumber", "custom/mail", "cpu", "battery", "tray", "clock" ],
|
||||
"sway/mode": {
|
||||
"format": " {}"
|
||||
},
|
||||
"sway/workspaces": {
|
||||
"format": "{name}",
|
||||
"disable-scroll": true
|
||||
},
|
||||
"sway/window": {
|
||||
"icon": true
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%b %d %H:%M KW%U}",
|
||||
"tooltip": false
|
||||
},
|
||||
"battery": {
|
||||
"format": " {time} ({capacity}%) {icon}",
|
||||
"format-alt": "{capacity}% {icon}",
|
||||
"format-icons": ["", "", "", "", ""],
|
||||
"format-charging": "{capacity}% ",
|
||||
"interval": 30,
|
||||
"states": {
|
||||
"warning": 25,
|
||||
"critical": 10
|
||||
},
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/disk_root": {
|
||||
"format": "💽/{} ",
|
||||
"interval": 30,
|
||||
"exec": "df -h --output=avail / | tail -1 | tr -d ' '",
|
||||
"tooltip": true ,
|
||||
"tooltip-format": "{path} ({percentage_used}% of {total})"
|
||||
},
|
||||
|
||||
"temperature": {
|
||||
// "thermal-zone": 2,
|
||||
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
||||
"critical-threshold": 80,
|
||||
// "format-critical": "{temperatureC}°C {icon}",
|
||||
"format": "<span color='#e88939'>{icon}</span> {temperatureC}°C",
|
||||
"format-icons": ["", "", ""]
|
||||
},
|
||||
"cpu": {
|
||||
"format": "🏭 {usage}%",
|
||||
"tooltip": false
|
||||
},
|
||||
"memory": {
|
||||
"format": "💾 {used:0.1f}G"
|
||||
},
|
||||
"custom/mail": {
|
||||
"format": "📩{}",
|
||||
"interval": 30,
|
||||
"exec": "notmuch count tag:flagged OR tag:inbox AND NOT tag:killed"
|
||||
},
|
||||
"network": {
|
||||
// "family": "ipv6",
|
||||
"format-wifi": "<span color='#589df6'></span> <span color='gray'>{essid}</span> <span color='#589df6'>⇵</span> {bandwidthUpBits}/{bandwidthDownBits}",
|
||||
"tooltip-format-wifi": "Freq: {frequency} <span color='#589df6'>{signaldBm} dB</span>",
|
||||
"format-ethernet": "{ifname}: {ipaddr}/{cidr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format-disconnected": "Disconnected ⚠",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}",
|
||||
"interval": 5
|
||||
},
|
||||
"wireplumber": {
|
||||
"format": "{icon}{volume}%",
|
||||
"format-muted": "MUTED",
|
||||
"on-click": "helvum",
|
||||
"on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
|
||||
"format-icons": ["", "", ""]
|
||||
},
|
||||
//"timer": {
|
||||
// "interval": 1,
|
||||
// "exec": "~/.config/waybar/timer.sh",
|
||||
// "exec-if": "pgrep emacs",
|
||||
// "escape": true
|
||||
//},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
},
|
||||
"tooltip": false
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 18,
|
||||
"show-passive-items": true
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 2,
|
||||
"format": "{icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}",
|
||||
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"],
|
||||
},
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
export PATH=${PATH}:/usr/local/go/bin:/home/fschl/go/bin
|
||||
|
||||
. "$HOME/.cargo/env"
|
102
README.org
102
README.org
|
@ -48,11 +48,6 @@ RSA (NOT ECDSA or DSA).
|
|||
$ ssh-copy-id -i ~/.ssh/<file>.pub -p 22 user@host
|
||||
#+END_SRC
|
||||
|
||||
*** SSH-Agent
|
||||
|
||||
automatically start agent, add keys to agent (after using it for the first time) when entering passphrase.
|
||||
integrates with KeepassXC ([[https://github.com/keepassxreboot/keepassxc/blob/develop/docs/topics/SSHAgent.adoc][GH:KeePass > Docs > SSH-Agent]])
|
||||
|
||||
*** GnuPG
|
||||
|
||||
- https://wiki.mozilla.org/Security/Key_Management
|
||||
|
@ -114,101 +109,6 @@ integrates with KeepassXC ([[https://github.com/keepassxreboot/keepassxc/blob/de
|
|||
- different Desktop/Workstation spins (Gnome, KDE, sway...)
|
||||
- =dnf= package manager, install updates on reboot
|
||||
- "Atomic Desktop", uses Fedora/RedHat CoreOS with rpm-ostree + flatpaks
|
||||
- has problems with video playback (in firefox)
|
||||
- setup syncthing service
|
||||
#+begin_quote
|
||||
https://src.fedoraproject.org/rpms/syncthing/tree/rawhide
|
||||
#+end_quote
|
||||
#+begin_src bash
|
||||
sudo systemctl enable --now syncthing@USER.service
|
||||
#+end_src
|
||||
- setup wireguard
|
||||
https://fedoramagazine.org/configure-wireguard-vpns-with-networkmanager/
|
||||
- add and configure some modern tools:
|
||||
https://github.com/ibraheemdev/modern-unix?tab=readme-ov-file
|
||||
|
||||
*** Basic Packages
|
||||
#+name: update and install packages
|
||||
#+begin_src bash
|
||||
sudo dnf update
|
||||
sudo dnf group install sway-desktop-environment
|
||||
sudo dnf -y install \
|
||||
ImageMagick \
|
||||
bat \
|
||||
brightnessctl \
|
||||
cascadia-code-nf-fonts \
|
||||
cmake \
|
||||
duf \
|
||||
emacs \
|
||||
eza \
|
||||
fd-find \
|
||||
fuzzel \
|
||||
gammastep \
|
||||
gammastep-indicator \
|
||||
gimp \
|
||||
glances \
|
||||
gparted \
|
||||
grimshot \
|
||||
htop \
|
||||
isync \
|
||||
keepassxc \
|
||||
kitty \
|
||||
libtool \
|
||||
network-manager-applet \
|
||||
notmuch \
|
||||
papirus-icon-theme-dark \
|
||||
papirus-icon-theme-light \
|
||||
ripgrep \
|
||||
rustup \
|
||||
syncthing \
|
||||
udiskie \
|
||||
virt-manager \
|
||||
wireguard-tools \
|
||||
wofi \
|
||||
youtube-dl
|
||||
|
||||
rustup_init
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
|
||||
*** setup dotfiles and emacs
|
||||
#+name: link dotfiles and emacs
|
||||
#+begin_src bash
|
||||
ln -s /home/fschl/git/dotfiles/.config/dunst /home/fschl/.config/dunst
|
||||
ln -s /home/fschl/git/dotfiles/.config/git /home/fschl/.config/git
|
||||
ln -s /home/fschl/git/dotfiles/.config/sway /home/fschl/.config/sway
|
||||
ln -s /home/fschl/git/dotfiles/.config/waybar /home/fschl/.config/waybar
|
||||
|
||||
git clone https://gitlab.com/fschl/emacs-config ~/git/emacs
|
||||
cd ~/git/emacs
|
||||
git submodule update --init --recursive
|
||||
ln -s /home/fschl/git/emacs /home/fschl/.config/emacs
|
||||
#+end_src
|
||||
|
||||
*** Tools and Usability stuff
|
||||
|
||||
Install [[https://github.com/typst/typst][Typst]] modern replacement for LaTeX, see [[https://github.com/qjcg/awesome-typst][GH: awesome-typst]]
|
||||
|
||||
- [ ] add [[https://github.com/typst/packages][typst/packages]] (letter, CV)
|
||||
- [ ] https://github.com/Sematre/typst-letter-pro
|
||||
- [ ] https://github.com/mintyfrankie/brilliant-CV
|
||||
#+begin_src sh
|
||||
cargo install --locked starship
|
||||
cargo install --locked typst-cli
|
||||
#+end_src
|
||||
|
||||
Install [[https://difftastic.wilfred.me.uk/][difftastic]] ([[https://github.com/Wilfred/difftastic][Github]]), for improved diff highlighting.
|
||||
#+begin_src sh
|
||||
cargo install --locked difftastic
|
||||
#+end_src
|
||||
|
||||
*** setup development stuff
|
||||
|
||||
https://realpython.com/dependency-management-python-poetry/
|
||||
#+begin_src bash
|
||||
sudo dnf install python3-lsp-server+all
|
||||
#+end_src
|
||||
|
||||
** NEXT Moving to Guix
|
||||
|
||||
|
@ -220,8 +120,6 @@ https://realpython.com/dependency-management-python-poetry/
|
|||
|
||||
*** Disk partitioning
|
||||
|
||||
- https://github.com/david-cortes/snapper-in-debian-guide?tab=readme-ov-file
|
||||
- https://wiki.archlinux.org/title/Snapper#Suggested_filesystem_layout
|
||||
- https://reckoning.dev/blog/ubuntu-btrfs-guide/
|
||||
- https://wiki.systemcrafters.net/guix/nonguix-installation-guide/#partition-the-disks
|
||||
- https://cryptsetup-team.pages.debian.net/cryptsetup/encrypted-boot.html
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
"grimshot" ;; grimshot --notify copy area
|
||||
"feh"
|
||||
"network-manager-applet"
|
||||
"hicolor-icon-theme" ;; needed in waybar by nm-applet, gammastep-indicator
|
||||
|
||||
;; Compatibility for older Xorg applications
|
||||
"xorg-server-xwayland"
|
||||
|
@ -104,7 +103,6 @@
|
|||
"openssh"
|
||||
"zip"
|
||||
"unzip"
|
||||
"udiskie"
|
||||
"trash-cli"))))
|
||||
|
||||
(define (home-desktop-shepherd-services config)
|
||||
|
|
|
@ -1,13 +1,7 @@
|
|||
(define-module (fschl home-services emacs)
|
||||
#:use-module (fschl packages emacs)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages emacs)
|
||||
#:use-module (gnu packages emacs-xyz)
|
||||
#:use-module (gnu packages finance)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages mail)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages rust-apps)
|
||||
#:use-module (gnu home services)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services configuration)
|
||||
|
@ -16,182 +10,198 @@
|
|||
|
||||
#:export (home-emacs-config-service-type))
|
||||
|
||||
(define transform
|
||||
(options->transformation
|
||||
;; 0.0.9 is too old for the mu4e fix
|
||||
;; also, adopt the new ement.el bindings
|
||||
'((with-commit . "emacs-evil-collection=97a57c91d200a278d0bf91199e2eae45f7d875b0"))))
|
||||
|
||||
(define (home-emacs-config-profile-service config)
|
||||
(list
|
||||
((options->transformation
|
||||
;; 2.3.0 does not include the `box :style none` fix
|
||||
'((with-commit . "emacs-doom-themes=3b2422b208d28e8734b300cd3cc6a7f4af5eba55")))
|
||||
emacs-doom-themes)
|
||||
(map (lambda (package-name)
|
||||
(transform
|
||||
(specification->package+output package-name)))
|
||||
(list "emacs-next-pgtk"
|
||||
|
||||
emacs-next-pgtk
|
||||
emacs-tmr
|
||||
emacs-buffer-env
|
||||
emacs-beframe
|
||||
"emacs-tmr"
|
||||
"emacs-buffer-env"
|
||||
|
||||
emacs-no-littering
|
||||
"emacs-no-littering"
|
||||
|
||||
emacs-exwm
|
||||
emacs-desktop-environment
|
||||
"emacs-exwm"
|
||||
"emacs-desktop-environment"
|
||||
|
||||
emacs-god-mode
|
||||
"emacs-god-mode"
|
||||
"emacs-modalka"
|
||||
"emacs-meow"
|
||||
|
||||
emacs-popper
|
||||
"emacs-popper"
|
||||
|
||||
emacs-mpv
|
||||
"emacs-ement"
|
||||
|
||||
emacs-ement
|
||||
"emacs-evil"
|
||||
"emacs-evil-collection"
|
||||
"emacs-undo-tree"
|
||||
|
||||
emacs-lua-mode
|
||||
emacs-fennel-mode
|
||||
"emacs-general"
|
||||
|
||||
emacs-emojify
|
||||
"emacs-doom-themes"
|
||||
"emacs-spacegray-theme"
|
||||
|
||||
emacs-mood-line
|
||||
emacs-minions
|
||||
"emacs-emojify"
|
||||
|
||||
emacs-alert
|
||||
"emacs-mood-line"
|
||||
"emacs-doom-modeline"
|
||||
"emacs-all-the-icons"
|
||||
;"emacs-minions"
|
||||
|
||||
emacs-super-save
|
||||
"emacs-alert"
|
||||
|
||||
emacs-pinentry
|
||||
pinentry-emacs
|
||||
"emacs-super-save"
|
||||
|
||||
emacs-evil-nerd-commenter
|
||||
"emacs-pinentry"
|
||||
"pinentry-emacs"
|
||||
|
||||
emacs-ws-butler
|
||||
"emacs-evil-nerd-commenter"
|
||||
|
||||
emacs-hydra
|
||||
"emacs-ws-butler"
|
||||
|
||||
emacs-vertico
|
||||
emacs-corfu
|
||||
emacs-kind-icon
|
||||
emacs-orderless
|
||||
emacs-consult
|
||||
emacs-wgrep
|
||||
emacs-marginalia
|
||||
emacs-embark
|
||||
"emacs-hydra"
|
||||
|
||||
emacs-avy
|
||||
emacs-ace-window
|
||||
"emacs-vertico"
|
||||
"emacs-corfu"
|
||||
"emacs-kind-icon"
|
||||
"emacs-orderless"
|
||||
"emacs-consult"
|
||||
"emacs-wgrep"
|
||||
"emacs-marginalia"
|
||||
"emacs-embark"
|
||||
|
||||
emacs-default-text-scale
|
||||
emacs-visual-fill-column
|
||||
"emacs-avy"
|
||||
"emacs-ace-window"
|
||||
|
||||
emacs-password-store
|
||||
emacs-auth-source-pass
|
||||
"emacs-default-text-scale"
|
||||
"emacs-visual-fill-column"
|
||||
|
||||
emacs-dired-hacks
|
||||
emacs-all-the-icons-dired
|
||||
"emacs-password-store"
|
||||
"emacs-auth-source-pass"
|
||||
|
||||
emacs-org
|
||||
emacs-org-modern
|
||||
emacs-org-pomodoro
|
||||
emacs-org-make-toc
|
||||
emacs-org-present
|
||||
emacs-org-roam
|
||||
emacs-org-appear
|
||||
emacs-org-ql
|
||||
emacs-htmlize
|
||||
emacs-denote
|
||||
;; "emacs-dired-single"
|
||||
"emacs-dired-hacks"
|
||||
"emacs-all-the-icons-dired"
|
||||
|
||||
emacs-magit
|
||||
emacs-magit-todos
|
||||
"emacs-openwith"
|
||||
|
||||
git
|
||||
(list git "send-email")
|
||||
"emacs-org"
|
||||
"emacs-org-modern"
|
||||
"emacs-org-pomodoro"
|
||||
"emacs-evil-org"
|
||||
"emacs-org-make-toc"
|
||||
"emacs-org-present"
|
||||
"emacs-org-roam"
|
||||
"emacs-org-appear"
|
||||
"emacs-htmlize"
|
||||
"emacs-denote"
|
||||
|
||||
emacs-git-link
|
||||
emacs-git-gutter
|
||||
emacs-git-gutter-fringe
|
||||
"emacs-magit"
|
||||
"emacs-magit-todos"
|
||||
|
||||
;emacs-project
|
||||
ripgrep ;; For consult-ripgrep
|
||||
"git"
|
||||
"git:send-email"
|
||||
|
||||
emacs-lispy
|
||||
emacs-lispyville
|
||||
"emacs-git-link"
|
||||
"emacs-git-gutter"
|
||||
"emacs-git-gutter-fringe"
|
||||
|
||||
emacs-sly
|
||||
emacs-sly-asdf
|
||||
"emacs-project"
|
||||
"ripgrep" ;; For consult-ripgrep
|
||||
|
||||
emacs-js2-mode
|
||||
emacs-typescript-mode
|
||||
emacs-apheleia
|
||||
;; TODO: Use the built-in Eglot for now to avoid problems
|
||||
;; "emacs-eglot"
|
||||
|
||||
emacs-go-mode
|
||||
"emacs-lispy"
|
||||
"emacs-lispyville"
|
||||
|
||||
emacs-rust-mode
|
||||
emacs-zig-mode
|
||||
"emacs-sly"
|
||||
"emacs-sly-asdf"
|
||||
|
||||
emacs-helpful
|
||||
"emacs-js2-mode"
|
||||
"emacs-typescript-mode"
|
||||
"emacs-apheleia"
|
||||
|
||||
emacs-geiser
|
||||
"emacs-go-mode"
|
||||
|
||||
emacs-markdown-mode
|
||||
"emacs-rust-mode"
|
||||
"emacs-zig-mode"
|
||||
|
||||
emacs-web-mode
|
||||
emacs-skewer-mode
|
||||
"emacs-helpful"
|
||||
|
||||
emacs-yaml-mode
|
||||
"emacs-geiser"
|
||||
|
||||
emacs-flycheck
|
||||
"emacs-markdown-mode"
|
||||
|
||||
emacs-yasnippet
|
||||
emacs-yasnippet-snippets
|
||||
"emacs-web-mode"
|
||||
"emacs-skewer-mode"
|
||||
|
||||
emacs-smartparens
|
||||
"emacs-yaml-mode"
|
||||
|
||||
emacs-rainbow-delimiters
|
||||
"emacs-flycheck"
|
||||
|
||||
emacs-rainbow-mode
|
||||
"emacs-yasnippet"
|
||||
"emacs-yasnippet-snippets"
|
||||
|
||||
emacs-posframe
|
||||
emacs-keycast
|
||||
"emacs-smartparens"
|
||||
|
||||
emacs-obs-websocket-el
|
||||
"emacs-rainbow-delimiters"
|
||||
|
||||
emacs-a
|
||||
emacs-request
|
||||
"emacs-rainbow-mode"
|
||||
|
||||
;; TODO: Move to mail profile
|
||||
isync
|
||||
mu
|
||||
emacs-mu4e-alert
|
||||
"emacs-posframe"
|
||||
"emacs-keycast"
|
||||
|
||||
ledger
|
||||
;; hledger
|
||||
emacs-ledger-mode
|
||||
;"emacs-obs-websocket-el"
|
||||
|
||||
emacs-eat
|
||||
emacs-eshell-z
|
||||
emacs-esh-autosuggest
|
||||
emacs-xterm-color
|
||||
emacs-exec-path-from-shell
|
||||
"emacs-a"
|
||||
"emacs-request"
|
||||
|
||||
emacs-pcmpl-args
|
||||
"isync"
|
||||
"mu"
|
||||
"emacs-mu4e-alert"
|
||||
|
||||
emacs-eshell-syntax-highlighting
|
||||
"ledger"
|
||||
;; "hledger"
|
||||
"emacs-ledger-mode"
|
||||
|
||||
emacs-eshell-toggle
|
||||
"emacs-eat"
|
||||
"emacs-eshell-z"
|
||||
"emacs-esh-autosuggest"
|
||||
"emacs-xterm-color"
|
||||
"emacs-exec-path-from-shell"
|
||||
|
||||
emacs-vterm
|
||||
"emacs-pcmpl-args"
|
||||
|
||||
emacs-tracking
|
||||
"emacs-eshell-syntax-highlighting"
|
||||
|
||||
emacs-telega
|
||||
"emacs-eshell-toggle"
|
||||
|
||||
emacs-elfeed
|
||||
"emacs-vterm"
|
||||
|
||||
emacs-elpher
|
||||
"emacs-tracking"
|
||||
|
||||
emacs-guix
|
||||
"emacs-telega"
|
||||
|
||||
emacs-daemons
|
||||
"emacs-elfeed"
|
||||
|
||||
emacs-pulseaudio-control
|
||||
"emacs-elpher"
|
||||
|
||||
emacs-docker
|
||||
emacs-docker-tramp
|
||||
emacs-dockerfile-mode))
|
||||
"emacs-guix"
|
||||
|
||||
"emacs-daemons"
|
||||
|
||||
"emacs-pulseaudio-control"
|
||||
|
||||
"emacs-docker"
|
||||
"emacs-docker-tramp"
|
||||
"emacs-dockerfile-mode")))
|
||||
|
||||
(define home-emacs-config-service-type
|
||||
(service-type (name 'home-emacs-config)
|
||||
|
|
|
@ -10,13 +10,12 @@
|
|||
(use-service-modules guix admin sysctl pm nix avahi dbus cups desktop linux
|
||||
mcron networking xorg ssh docker audio virtualization)
|
||||
|
||||
(use-package-modules audio video nfs certs shells ssh linux bash emacs gnome
|
||||
networking wm fonts libusb cups freedesktop file-systems
|
||||
version-control package-management vim)
|
||||
(use-package-modules nfs certs shells ssh linux bash emacs gnome networking wm fonts libusb
|
||||
cups freedesktop file-systems version-control package-management)
|
||||
|
||||
(define-public base-operating-system
|
||||
(operating-system
|
||||
(host-name "default")
|
||||
(host-name "x230guix")
|
||||
(timezone "Europe/Berlin")
|
||||
(locale "en_US.utf8")
|
||||
|
||||
|
@ -34,10 +33,14 @@
|
|||
|
||||
;; Use the UEFI variant of GRUB with the EFI System
|
||||
;; Partition mounted on /boot/efi.
|
||||
(bootloader (bootloader-configuration
|
||||
(bootloader grub-efi-bootloader)
|
||||
(targets '("/boot/efi"))
|
||||
(bootloader (bootloader-configuration
|
||||
(bootloader grub-bootloader)
|
||||
;;(targets (list "/dev/sda"))
|
||||
(keyboard-layout keyboard-layout)))
|
||||
;; (bootloader (bootloader-configuration
|
||||
;; (bootloader grub-efi-bootloader)
|
||||
;; (targets '("/boot/efi"))
|
||||
;; (keyboard-layout keyboard-layout)))
|
||||
|
||||
;; Guix doesn't like it when there isn't a file-systems
|
||||
;; entry, so add one that is meant to be overridden
|
||||
|
@ -47,6 +50,11 @@
|
|||
(device "none")
|
||||
(type "tmpfs")
|
||||
(check? #f))
|
||||
|
||||
(file-system
|
||||
(device "/dev/sda3")
|
||||
(mount-point "/")
|
||||
(type "ext4"))
|
||||
%base-file-systems))
|
||||
|
||||
(users (cons (user-account
|
||||
|
@ -72,20 +80,23 @@
|
|||
%base-groups))
|
||||
|
||||
;; Install bare-minimum system packages
|
||||
(packages (cons* bluez
|
||||
bluez-alsa
|
||||
brightnessctl
|
||||
emacs-no-x-toolkit
|
||||
exfat-utils
|
||||
fuse-exfat
|
||||
git
|
||||
gvfs ;; Enable user mounts
|
||||
intel-media-driver/nonfree
|
||||
libva-utils
|
||||
ntfs-3g
|
||||
stow
|
||||
vim
|
||||
%base-packages))
|
||||
(packages (append (map specification->package
|
||||
'("git"
|
||||
"ntfs-3g"
|
||||
"exfat-utils"
|
||||
"fuse-exfat"
|
||||
"stow"
|
||||
"vim"
|
||||
"emacs-no-x-toolkit"
|
||||
"brightnessctl"
|
||||
"bluez"
|
||||
"bluez-alsa"
|
||||
"intel-vaapi-driver"
|
||||
"libva-utils"
|
||||
"xf86-input-libinput"
|
||||
"nss-certs" ;; SSL root certificates
|
||||
"gvfs")) ;; Enable user mounts
|
||||
%base-packages))
|
||||
|
||||
;; Configure only the services necessary to run the system
|
||||
(services (append
|
||||
|
|
|
@ -27,10 +27,10 @@
|
|||
("EDITOR" . "emacsclient")
|
||||
|
||||
;; Add some things to $PATH (maybe integrate into other services?)
|
||||
;; ("PATH" . "$HOME/.bin:$HOME/.npm-global/bin:$PATH")
|
||||
;; ("PATH" . "$HOME/.bin:$HOME/.npm-global/bin:$PATH")
|
||||
|
||||
;; Make sure Flatpak apps are visible
|
||||
("XDG_DATA_DIRS" . "$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share")
|
||||
;; ("XDG_DATA_DIRS" . "$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share")
|
||||
|
||||
;; Make sure JAVA_HOME is set
|
||||
;; TODO: Move this to a different service
|
||||
|
@ -48,27 +48,22 @@
|
|||
("QT_QPA_PLATFORM" . "wayland-egl")))
|
||||
|
||||
;; Set up the shell environment
|
||||
(service home-bash-service-type
|
||||
(home-bash-configuration
|
||||
(bash-profile
|
||||
`(,(plain-file "bash-profile-extras"
|
||||
(string-append
|
||||
;; Load the Nix profile
|
||||
"if [ -f /run/current-system/profile/etc/profile.d/nix.sh ]; then\n"
|
||||
" . /run/current-system/profile/etc/profile.d/nix.sh\n"
|
||||
"fi\n"))
|
||||
,(plain-file "bash-sway-login"
|
||||
(string-append
|
||||
"if [ -z \"$WAYLAND_DISPLAY\" ] && [ \"$XDG_VTNR\" -eq 1 ]; then\n"
|
||||
" exec sway\n"
|
||||
"fi\n"))))
|
||||
(bashrc
|
||||
`(,(local-file "../files/bash-prompt")))))
|
||||
;; (service home-bash-service-type
|
||||
;; (home-bash-configuration
|
||||
;; (bash-profile
|
||||
;; `(,(plain-file "bash-profile-extras"
|
||||
;; (string-append
|
||||
;; ;; Load the Nix profile
|
||||
;; "if [ -f /run/current-system/profile/etc/profile.d/nix.sh ]; then\n"
|
||||
;; " . /run/current-system/profile/etc/profile.d/nix.sh\n"
|
||||
;; "fi\n"))))
|
||||
;; (bashrc
|
||||
;; `(,(local-file "../files/bash-prompt")))))
|
||||
|
||||
;; Place other files
|
||||
(simple-service 'profile-files-service
|
||||
home-files-service-type
|
||||
(list `(".inputrc" ,(local-file "../files/inputrc"))))
|
||||
;; (simple-service 'profile-files-service
|
||||
;; home-files-service-type
|
||||
;; (list `(".inputrc" ,(local-file "../files/inputrc"))))
|
||||
|
||||
;; GnuPG configuration
|
||||
;; (service home-gpg-agent-service-type
|
||||
|
@ -92,7 +87,7 @@
|
|||
|
||||
(service home-dotfiles-service-type
|
||||
(home-dotfiles-configuration
|
||||
(directories (list "../../.config"))))
|
||||
(directories (list "../home-services/dotfiles"))))
|
||||
|
||||
;; Start background jobs
|
||||
;; (service home-mcron-service-type
|
||||
|
|
|
@ -1,109 +0,0 @@
|
|||
;; This is an operating system configuration template
|
||||
;; for a "bare bones" setup, with no X11 display server.
|
||||
(define-module (fschl systems minimal-system)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (gnu)
|
||||
#:use-module (gnu services docker)
|
||||
#:use-module (gnu system)
|
||||
#:use-module (gnu system nss)
|
||||
#:use-module (gnu system setuid))
|
||||
|
||||
(use-modules (gnu))
|
||||
(use-service-modules networking
|
||||
;; dbus ; required by dockerd
|
||||
docker
|
||||
guix virtualization ssh)
|
||||
(use-package-modules linux
|
||||
docker
|
||||
;; freedesktop ; required by elogind, which is required by dockerd
|
||||
screen ssh vim certs)
|
||||
|
||||
|
||||
;; (define-public base-operating-system
|
||||
(operating-system
|
||||
(host-name "home-server")
|
||||
(timezone "Europe/Berlin")
|
||||
(locale "en_US.utf8")
|
||||
|
||||
(keyboard-layout (keyboard-layout "de" "altgr-intl" #:model "thinkpad"))
|
||||
|
||||
;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the
|
||||
;; target hard disk, and "my-root" is the label of the target
|
||||
;; root file system.
|
||||
(bootloader (bootloader-configuration
|
||||
(bootloader grub-bootloader)
|
||||
(targets '("/dev/sdX"))))
|
||||
;; It's fitting to support the equally bare bones ‘-nographic’
|
||||
;; QEMU option, which also nicely sidesteps forcing QWERTY.
|
||||
(kernel-arguments (list "console=ttyS0,115200"))
|
||||
(file-systems (cons (file-system
|
||||
(device (file-system-label "my-root"))
|
||||
(mount-point "/")
|
||||
(type "ext4"))
|
||||
%base-file-systems))
|
||||
|
||||
;; This is where user accounts are specified. The "root"
|
||||
;; account is implicit, and is initially created with the
|
||||
;; empty password.
|
||||
(users (cons (user-account
|
||||
(name "fschl")
|
||||
(comment "F S")
|
||||
(group "users")
|
||||
|
||||
;; Adding the account to the "wheel" group makes it a
|
||||
;; sudoer.
|
||||
(supplementary-groups '("wheel"
|
||||
"netdev"
|
||||
;; "docker"
|
||||
)))
|
||||
%base-user-accounts))
|
||||
|
||||
;; Globally-installed packages.
|
||||
(packages (cons* vim
|
||||
net-tools
|
||||
%base-packages))
|
||||
|
||||
;; Add services to the baseline: a DHCP client and
|
||||
;; an SSH server.
|
||||
(services (append (list (service dhcp-client-service-type)
|
||||
;; (service dbus-root-service-type) ;; required by dockerd
|
||||
;; (service elogind-service-type) ;; required by dockerd
|
||||
;; (service docker-service-type)
|
||||
;; (service oci-container-service-type
|
||||
;; (list
|
||||
;; (oci-container-configuration
|
||||
;; (image "jellyfin/jellyfin")
|
||||
;; (provision "jellyfin")
|
||||
;; (network "host")
|
||||
;; (ports
|
||||
;; '(("8096" . "8096")))
|
||||
;; (volumes
|
||||
;; '("jellyfin-config:/config"
|
||||
;; "jellyfin-cache:/cache"
|
||||
;; "/home/daviwil/Media:/media")))))
|
||||
;; (service oci-container-service-type
|
||||
;; (list
|
||||
;; (oci-container-configuration
|
||||
;; (image "pihole/pihole:latest")
|
||||
;; (provision "pihole")
|
||||
;; (network "host")
|
||||
;; (ports
|
||||
;; '("53:53/tcp"
|
||||
;; "53:53/udp"
|
||||
;; "67:67/udp" ; Only required if using Pi-hole as DHCP server
|
||||
;; "80:80/tcp"))
|
||||
;; (environment
|
||||
;; '(("TZ" . "America/Chicago")))
|
||||
;; ; Uncomment and set a secure password, or it will be random
|
||||
;; ; '(("WEBPASSWORD" . "set a secure password here"))
|
||||
;; (volumes
|
||||
;; '("/docker/Pihole:/etc/pihole"
|
||||
;; "/docker/Dnsmasq:/etc/dnsmasq.d")))))
|
||||
(service openssh-service-type
|
||||
(openssh-configuration
|
||||
(openssh openssh-sans-x)
|
||||
(port-number 2222))))
|
||||
%base-services)))
|
||||
|
||||
|
||||
;; (base-operating-system)
|
|
@ -1,73 +0,0 @@
|
|||
(define-module (fschl systems tower-guix)
|
||||
#:use-module (fschl utils)
|
||||
#:use-module (fschl systems base)
|
||||
#:use-module (fschl systems common)
|
||||
;; #:use-module (fschl home-services pipewire)
|
||||
#:use-module (fschl home-services xsettingsd)
|
||||
#:use-module (gnu)
|
||||
#:use-module (gnu home)
|
||||
#:use-module (gnu home services xdg)
|
||||
#:use-module (gnu home services sound)
|
||||
#:use-module (gnu packages file-systems)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services docker)
|
||||
#:use-module (gnu system)
|
||||
#:use-module (gnu system uuid)
|
||||
#:use-module (gnu system file-systems)
|
||||
#:use-module (gnu system mapped-devices)
|
||||
#:use-module (nongnu packages linux))
|
||||
|
||||
(define home
|
||||
(home-environment
|
||||
(services (cons*
|
||||
(service home-xsettingsd-service-type
|
||||
(home-xsettingsd-configuration
|
||||
(dpi 180)))
|
||||
;; (service home-pipewire-service-type)
|
||||
(simple-service
|
||||
'xdg-user-directories-config-service
|
||||
home-xdg-user-directories-service-type
|
||||
(home-xdg-user-directories-configuration
|
||||
(desktop "$HOME/desktop")
|
||||
(documents "/media/store/Documents")
|
||||
(download "/media/store/Downloads")
|
||||
(music "/media/store/Music")
|
||||
(pictures "/media/store/Pictures")
|
||||
(publicshare "/media/store/Public")
|
||||
(templates "/media/store/Templates")
|
||||
(videos "/media/store/Videos")))
|
||||
common-home-services))))
|
||||
|
||||
(define system
|
||||
(operating-system
|
||||
(inherit base-operating-system)
|
||||
(host-name "tower-guix")
|
||||
|
||||
(keyboard-layout (keyboard-layout "de" "altgr-intl" #:options '("ctrl:nocaps")))
|
||||
(bootloader (bootloader-configuration
|
||||
(bootloader grub-efi-bootloader)
|
||||
(targets '("/boot/efi"))
|
||||
(keyboard-layout keyboard-layout)))
|
||||
|
||||
(file-systems (cons*
|
||||
(file-system
|
||||
(device "/dev/nvme0n1p3")
|
||||
(mount-point "/")
|
||||
(type "ext4"))
|
||||
(file-system
|
||||
(device "/dev/sdd1")
|
||||
(mount-point "/media/store")
|
||||
(type "ext4"))
|
||||
(file-system
|
||||
(device "/dev/sda1")
|
||||
(mount-point "/media/docs")
|
||||
(type "ext4"))
|
||||
(file-system
|
||||
;; (device "/dev/nvme0n1p1")
|
||||
(device (uuid "7241-D6CA" 'fat))
|
||||
(mount-point "/boot/efi")
|
||||
(type "vfat"))
|
||||
%base-file-systems))))
|
||||
|
||||
;; Return home or system config based on environment variable
|
||||
(if (getenv "RUNNING_GUIX_HOME") home system)
|
|
@ -1,4 +1,4 @@
|
|||
(define-module (fschl systems x230)
|
||||
(define-module (fschl systems x230ding)
|
||||
#:use-module (fschl utils)
|
||||
#:use-module (fschl systems base)
|
||||
#:use-module (fschl systems common)
|
||||
|
@ -25,7 +25,7 @@
|
|||
(define system
|
||||
(operating-system
|
||||
(inherit base-operating-system)
|
||||
(host-name "x230")
|
||||
(host-name "x230guix")
|
||||
|
||||
;; Add sof-firmware drivers for audio on ThinkPad x230
|
||||
;; (firmware (list linux-firmware sof-firmware))
|
||||
|
|
|
@ -0,0 +1,79 @@
|
|||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||
# for examples
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
|
||||
# don't put duplicate lines or lines starting with space in the history.
|
||||
# See bash(1) for more options
|
||||
HISTCONTROL=ignoreboth
|
||||
|
||||
# Load the shell dotfiles, and then some:
|
||||
# * ~/.path can be used to extend `$PATH`.
|
||||
# * ~/.extra can be used for other settings you don’t want to commit.
|
||||
for file in ~/.{aliases,bash_prompt,functions,path,extra,exports}; do
|
||||
[[ -r "$file" ]] && [[ -f "$file" ]] && source "$file"
|
||||
done
|
||||
unset file
|
||||
|
||||
# Case-insensitive globbing (used in pathname expansion)
|
||||
shopt -s nocaseglob
|
||||
|
||||
# append to the history file, don't overwrite it
|
||||
shopt -s histappend
|
||||
|
||||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||
HISTSIZE=1000000
|
||||
HISTFILESIZE=20000000
|
||||
|
||||
export TERMINAL="alacritty";
|
||||
export TERM="alacritty";
|
||||
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
shopt -s checkwinsize
|
||||
|
||||
# If set, the pattern "**" used in a pathname expansion context will
|
||||
# match all files and zero or more directories and subdirectories.
|
||||
#shopt -s globstar
|
||||
|
||||
# make less more friendly for non-text input files, see lesspipe(1)
|
||||
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||
|
||||
# set variable identifying the chroot you work in (used in the prompt below)
|
||||
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||
debian_chroot=$(cat /etc/debian_chroot)
|
||||
fi
|
||||
|
||||
PS1="\[\e[01;36m\]\u\[\e[0m\]\[\e[00;37m\]@\[\e[0m\]\[\e[01;33m\]\h\[\e[0m\]\[\e[00;36m\][\w]\[\e[0m\]\[\e[01;31m\]\n\\$\[\e[0m\]\[\e[00;37m\] \[\e[0m\]"
|
||||
|
||||
# If this is an xterm set the title to user@host:dir
|
||||
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
fi
|
||||
|
||||
# Add an "alert" alias for long running commands. Use like so:
|
||||
# sleep 10; alert
|
||||
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||
|
||||
# enable programmable completion features (you don't need to enable
|
||||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||
# sources /etc/bash.bashrc).
|
||||
if ! shopt -oq posix; then
|
||||
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||
. /usr/share/bash-completion/bash_completion
|
||||
elif [ -f /etc/bash_completion ]; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
fi
|
|
@ -0,0 +1,2 @@
|
|||
export MOZ_ENABLE_WAYLAND=1
|
||||
export QT_QPA_PLATFORM=wayland
|
|
@ -0,0 +1,224 @@
|
|||
set $mod Mod4
|
||||
# at some point check https://github.com/swaywm/sway/wiki/Useful-add-ons-for-sway
|
||||
|
||||
# Configure displays
|
||||
|
||||
# The annoying thing is that sometimes the display ID changes when hotplugging
|
||||
# my Thunderbolt dock...
|
||||
set $primary DP-7 DP-8 HDMI-A-1
|
||||
set $laptop eDP-1
|
||||
|
||||
output $laptop pos 1920 135 scale 2
|
||||
output DP-7 pos 0 0 scale 2
|
||||
output DP-8 pos 0 0 scale 2
|
||||
output HDMI-A-1 scale 2
|
||||
|
||||
# output * bg ~/.dotfiles/backgrounds/samuel-ferrara-uOi3lg8fGl4-unsplash.jpg fill
|
||||
# output * bg ~/.dotfiles/backgrounds/scott-rodgerson-lRtzEExP0H8-unsplash.jpg fill
|
||||
|
||||
bindsym $mod+Shift+s exec ~/.bin/toggle-display $primary
|
||||
|
||||
input type:keyboard {
|
||||
xkb_layout de,de
|
||||
xkb_options ctrl:nocaps
|
||||
}
|
||||
|
||||
font pango:Iosevka ss08 7
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
bindsym $mod+Shift+x exit
|
||||
bindsym $mod+Shift+r reload
|
||||
# bindsym $mod+r resize
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
bindsym $mod+Shift+Return exec kitty
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# use vim keys for window movement
|
||||
bindsym $mod+h focus left
|
||||
bindsym $mod+j focus down
|
||||
bindsym $mod+k focus up
|
||||
bindsym $mod+l focus right
|
||||
|
||||
# move workspace
|
||||
bindsym $mod+Mod1+h move workspace to output left
|
||||
bindsym $mod+Mod1+l move workspace to output right
|
||||
bindsym $mod+Mod1+Left move workspace to output left
|
||||
bindsym $mod+Mod1+Right move workspace to output right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Shift+Left move left 30 px
|
||||
bindsym $mod+Shift+Down move down 30 px
|
||||
bindsym $mod+Shift+Up move up 30 px
|
||||
bindsym $mod+Shift+Right move right 30 px
|
||||
bindsym $mod+Shift+h move left 30 px
|
||||
bindsym $mod+Shift+j move down 30 px
|
||||
bindsym $mod+Shift+k move up 30 px
|
||||
bindsym $mod+Shift+l move right 30 px
|
||||
|
||||
# split in horizontal orientation
|
||||
# bindsym $mod+s split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym $mod+v split v
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+f floating toggle
|
||||
|
||||
# toggle pinned floating window
|
||||
bindsym $mod+Shift+p sticky toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+Control+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# focus the child container
|
||||
#bindsym $mod+d focus child
|
||||
|
||||
# App launcher
|
||||
bindsym $mod+space exec fuzzel -w 50 -x 8 -y 8 -r 3 -b 232635ff -t A6Accdff -s A6Accdff -S 232635ff -C c792eacc -m c792eacc -f "Iosevka ss08:weight=light:size=11" --no-fuzzy --icon-theme="Papirus-Dark"
|
||||
|
||||
# Set defaults
|
||||
default_orientation horizontal
|
||||
workspace_layout tabbed
|
||||
|
||||
# Configure gaps and borders
|
||||
default_border pixel 1
|
||||
gaps outer 0
|
||||
gaps inner 4
|
||||
smart_borders off
|
||||
hide_edge_borders --i3 none
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws0 "chat"
|
||||
set $ws1 "1 "
|
||||
set $ws2 "2 "
|
||||
set $ws3 "3 "
|
||||
set $ws4 "4 "
|
||||
set $ws5 "5 "
|
||||
# unlock-alt - keepassxc defaults here
|
||||
set $ws8 "8 "
|
||||
# linux - less often used terminals for background processes
|
||||
set $ws9 "9 "
|
||||
|
||||
assign [class="^Firefox$"] $ws1
|
||||
assign [class="^DebugScreen"] $ws3
|
||||
assign [class="^Thunderbird$"] $ws4
|
||||
assign [class=".*ee.*ass.*"] $ws8
|
||||
|
||||
# Move specific workspaces to outputs
|
||||
workspace $ws0 output $laptop
|
||||
workspace $ws1 output $primary $laptop
|
||||
workspace $ws2 output $primary $laptop
|
||||
workspace $ws3 output $laptop
|
||||
workspace $ws4 output $laptop
|
||||
workspace $ws5 output $laptop
|
||||
|
||||
# Switch to dev workspace by default
|
||||
#workspace $ws1
|
||||
|
||||
# Switch to workspace
|
||||
bindsym $mod+grave workspace $ws0
|
||||
bindsym $mod+1 workspace $ws1
|
||||
bindsym $mod+2 workspace $ws2
|
||||
bindsym $mod+3 workspace $ws3
|
||||
bindsym $mod+4 workspace $ws4
|
||||
bindsym $mod+5 workspace $ws5
|
||||
bindsym $mod+6 workspace 6
|
||||
bindsym $mod+7 workspace 7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
bindsym $mod+9 workspace $ws9
|
||||
bindsym $mod+0 workspace 10
|
||||
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+grave move container to workspace $ws0
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace 6
|
||||
bindsym $mod+Shift+7 move container to workspace 7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace 10
|
||||
|
||||
# Bind hotkeys for brightness and volume
|
||||
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
|
||||
bindsym --locked $mod+p exec playerctl play-pause
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym j resize shrink width 10 px or 10 ppt
|
||||
bindsym i resize grow height 10 px or 10 ppt
|
||||
bindsym k resize shrink height 10 px or 10 ppt
|
||||
bindsym l resize grow width 10 px or 10 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or Escape
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
# Screenshots
|
||||
bindsym Print exec grimshot --notify save output
|
||||
bindsym Alt+Print exec grimshot --notify save area
|
||||
|
||||
# Style the UI
|
||||
client.focused #c792eacc #232635dd #ffffffff #ffffffff #c792eacc
|
||||
client.unfocused #c792eacc #1c1f2bef #ffffffff #ffffffff #c792eacc
|
||||
|
||||
# Set up screen locking
|
||||
set $lock 'swaylock -f -i ~/.dotfiles/backgrounds/samuel-ferrara-uOi3lg8fGl4-unsplash.jpg -s fill --font "Iosevka ss08" --indicator-idle-visible'
|
||||
exec swayidle -w \
|
||||
timeout 900 $lock \
|
||||
timeout 960 'swaymsg "output * dpms off"' \
|
||||
resume 'swaymsg "output * dpms on"' \
|
||||
before-sleep $lock
|
||||
|
||||
bindsym Ctrl+Shift+L exec $lock
|
||||
# Window rules
|
||||
#for_window [title="Firefox — Sharing Indicator"] kill
|
||||
for_window [title=".* - mpv$"] floating enable, sticky enable
|
||||
|
||||
# Autostart applications
|
||||
exec waybar
|
||||
exec mako --border-radius=2 --font="Iosevka ss08 10" --max-visible=5 --outer-margin=5 --margin=3 --background="#1c1f26" --border-color="#89AAEB" --border-size=1 --default-timeout=7000
|
||||
exec nm-applet --indicator
|
||||
exec udiskie -t
|
||||
exec gammastep-indicator -l 50.8643:12.1124 -t 6500:3500 -b 1.0:0.7
|
||||
exec emacs
|
||||
|
||||
# Set GNOME settings (requires "glib:bin" in Guix)
|
||||
exec gsettings set org.gnome.desktop.interface gtk-theme "Matcha-dark-azul"
|
||||
exec gsettings set org.gnome.desktop.interface icon-theme "Papirus-Dark"
|
||||
exec gsettings set org.gnome.desktop.interface font-name "Iosevka Aile 11"
|
||||
|
||||
# Update DBUS activation records to ensure Flatpak apps work
|
||||
exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
|
|
@ -0,0 +1,27 @@
|
|||
sort=-time
|
||||
layer=overlay
|
||||
background-color=#1e1420
|
||||
width=380
|
||||
height=110
|
||||
border-size=2
|
||||
border-color=#88c0d0
|
||||
border-radius=15
|
||||
icons=0
|
||||
max-icon-size=64
|
||||
default-timeout=5000
|
||||
ignore-timeout=1
|
||||
font=monospace 14
|
||||
|
||||
[urgency=low]
|
||||
border-color=#cccccc
|
||||
|
||||
[urgency=normal]
|
||||
border-color=#d08770
|
||||
|
||||
[urgency=high]
|
||||
border-color=#bf616a
|
||||
default-timeout=0
|
||||
|
||||
[category=mpd]
|
||||
default-timeout=2000
|
||||
group-by=category
|
|
@ -0,0 +1,104 @@
|
|||
[theme]
|
||||
name = "semi-native"
|
||||
# theme = "solarized-dark"
|
||||
[theme.overrides]
|
||||
separator = "<span font='5'>|</span>"
|
||||
[icons]
|
||||
name = "awesome"
|
||||
|
||||
|
||||
[[block]]
|
||||
block = "pomodoro"
|
||||
length = 25
|
||||
break_length = 5
|
||||
message = "Take a break!"
|
||||
break_message = "Back to work!"
|
||||
notifier = "swaynag"
|
||||
|
||||
[[block]]
|
||||
block = "disk_space"
|
||||
path = "/"
|
||||
info_type = "available"
|
||||
unit = "GB"
|
||||
interval = 20
|
||||
warning = 12.0
|
||||
alert = 8.0
|
||||
alert_absolute = true
|
||||
format = "{icon}/{available}"
|
||||
|
||||
[[block]]
|
||||
block = "disk_space"
|
||||
path = "/home"
|
||||
info_type = "available"
|
||||
unit = "GB"
|
||||
interval = 20
|
||||
warning = 20.0
|
||||
alert = 10.0
|
||||
alert_absolute = true
|
||||
format = "{icon}/home {available}"
|
||||
|
||||
# [[block]]
|
||||
# block = "docker"
|
||||
# interval = 2
|
||||
# format = "{running}/{total} | {images}"
|
||||
|
||||
[[block]]
|
||||
block = "memory"
|
||||
display_type = "memory"
|
||||
format_mem = "{mem_used_percents}"
|
||||
format_swap = "{swap_used_percents}"
|
||||
|
||||
[[block]]
|
||||
block = "cpu"
|
||||
interval = 5
|
||||
|
||||
[[block]]
|
||||
block = "load"
|
||||
interval = 5
|
||||
format = "{1m}"
|
||||
|
||||
[[block]]
|
||||
block = "net"
|
||||
device = "enp0s25"
|
||||
format = "eth {ip} {speed_down;K*b} {graph_down;K*b}"
|
||||
interval = 5
|
||||
|
||||
[[block]]
|
||||
block = "net"
|
||||
device = "wlp3s0"
|
||||
on_click = "alacritty -e nmtui"
|
||||
format = "{ssid} {signal_strength} {ip} {speed_down;K*b}"
|
||||
# format = "{ssid} {signal_strength} {ip} {speed_down;K*b} {graph_down;K*b}"
|
||||
interval = 5
|
||||
|
||||
[[block]]
|
||||
block = "sound"
|
||||
format = "{volume}"
|
||||
show_volume_when_muted = true
|
||||
|
||||
# [[block]]
|
||||
# block = "sound"
|
||||
# name = "Mic"
|
||||
# format = "{output_name} {volume}"
|
||||
# show_volume_when_muted = true
|
||||
|
||||
[[block]]
|
||||
block = "battery"
|
||||
# driver = "upower"
|
||||
driver = "sysfs"
|
||||
format = "{percentage} {time}"
|
||||
allow_missing = true
|
||||
|
||||
[[block]]
|
||||
block = "networkmanager"
|
||||
on_click = "alacritty -e nmtui"
|
||||
interface_name_exclude = ["br\\-[0-9a-f]{12}", "docker\\d+"]
|
||||
interface_name_include = []
|
||||
ap_format = "{ssid^10}"
|
||||
|
||||
|
||||
[[block]]
|
||||
block = "time"
|
||||
timezone = "Europe/Berlin"
|
||||
interval = 5
|
||||
format = "%a %Y-%m-%d %R:%S"
|
|
@ -1,15 +1,15 @@
|
|||
{
|
||||
"layer": "bottom",
|
||||
"position": "bottom",
|
||||
"height": 24,
|
||||
"height": 20,
|
||||
|
||||
// maybe take another look at e.g. https://gitlab.com/wef/dotfiles/-/blob/master/.config/waybar/config
|
||||
// https://github.com/Alexays/Waybar/wiki/Configuration
|
||||
// https://github.com/Alexays/Waybar/wiki/Examples
|
||||
|
||||
"modules-left": ["sway/workspaces", "sway/mode", "sway/window" ],
|
||||
"modules-center": [ "custom/disk_root", "custom/disk_docs", "custom/disk_store", "network"],
|
||||
"modules-right": [ "custom/mail", "battery", "memory", "tray", "clock" ],
|
||||
"modules-left": ["sway/workspaces", "sway/mode"],
|
||||
"modules-center": [ "custom/disk_root", "network"],
|
||||
"modules-right": [ "memory", "tray", "battery", "clock", ],
|
||||
"sway/mode": {
|
||||
"format": " {}"
|
||||
},
|
||||
|
@ -36,27 +36,12 @@
|
|||
"custom/disk_home": {
|
||||
"format": "🏠 {} ",
|
||||
"interval": 30,
|
||||
"exec": "df -h --output=avail $HOME | tail -1 | tr -d ' '",
|
||||
"tooltip": true ,
|
||||
"tooltip-format": "{path} ({percentage_used}% of {total})"
|
||||
"exec": "df -h --output=avail $HOME | tail -1 | tr -d ' '"
|
||||
},
|
||||
"custom/disk_root": {
|
||||
"format": "root💽{} ",
|
||||
"format": "💽 {} ",
|
||||
"interval": 30,
|
||||
"exec": "df -h --output=avail / | tail -1 | tr -d ' '",
|
||||
"tooltip": true ,
|
||||
"tooltip-format": "{path} ({percentage_used}% of {total})"
|
||||
},
|
||||
|
||||
"custom/disk_store": {
|
||||
"format": "store💽{} ",
|
||||
"interval": 30,
|
||||
"exec": "df -h --output=avail /media/store | tail -1 | tr -d ' '"
|
||||
},
|
||||
"custom/disk_docs": {
|
||||
"format": "docs💽{} ",
|
||||
"interval": 30,
|
||||
"exec": "df -h --output=avail /media/docs | tail -1 | tr -d ' '"
|
||||
"exec": "df -h --output=avail / | tail -1 | tr -d ' '"
|
||||
},
|
||||
"temperature": {
|
||||
// "thermal-zone": 2,
|
||||
|
@ -80,6 +65,7 @@
|
|||
},
|
||||
"network": {
|
||||
// "family": "ipv6",
|
||||
"interface": "wlp3*", // (Optional) To force the use of this interface
|
||||
"format-wifi": "<span color='#589df6'></span> <span color='gray'>{essid}</span> {frequency} <span color='#589df6'>{signaldBm} dB</span> <span color='#589df6'>⇵</span> {bandwidthUpBits}/{bandwidthDownBits}",
|
||||
"format-ethernet": "{ifname}: {ipaddr}/{cidr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
|
@ -0,0 +1,90 @@
|
|||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: Iosevka ss08;
|
||||
font-size: 13px;
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
transition-duration: 0s;
|
||||
}
|
||||
|
||||
window.eDP-1 * {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
window {
|
||||
color: #ffffff;
|
||||
background: rgba(35, 38, 53, 0.8);
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
color: rgba(217, 216, 216, 0.6);
|
||||
}
|
||||
|
||||
#workspaces button.visible {
|
||||
color: rgba(217, 216, 216, 1);
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
font-weight: bold;
|
||||
/* border-bottom: 2px solid rgba(217, 216, 216, 1); */
|
||||
}
|
||||
|
||||
#workspaces button.unfocused {
|
||||
/* border-bottom: 2px solid rgba(217, 216, 216, 0); */
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: rgba(238, 46, 36, 1);
|
||||
}
|
||||
|
||||
#mode,
|
||||
#battery,
|
||||
#cpu,
|
||||
#memory,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#idle_inhibitor,
|
||||
#backlight,
|
||||
#custom-storage,
|
||||
#custom-spotify,
|
||||
#custom-weather,
|
||||
#custom-mail {
|
||||
margin: 0px 6px 0px 10px;
|
||||
min-width: 25px;
|
||||
}
|
||||
|
||||
#clock {
|
||||
margin: 0px 2px 0px 2px;
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
#custom-timer {
|
||||
font-weight: bold;
|
||||
color: rgba(247, 172, 66, 1);
|
||||
}
|
||||
|
||||
#battery.warning {
|
||||
color: rgba(255, 210, 4, 1);
|
||||
}
|
||||
|
||||
#battery.critical {
|
||||
color: rgba(238, 46, 36, 1);
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: rgba(217, 216, 216, 1);
|
||||
}
|
||||
|
||||
#custom-storage.warning {
|
||||
color: rgba(255, 210, 4, 1);
|
||||
}
|
||||
|
||||
#custom-storage.critical {
|
||||
color: rgba(238, 46, 36, 1);
|
||||
}
|
|
@ -13,71 +13,73 @@
|
|||
|
||||
** Linux CLI
|
||||
|
||||
Cheat Sheet: https://gist.github.com/chrisswanda/88ade75fc463dcf964c6411d1e9b20f4
|
||||
Cheat Sheet: https://gist.github.com/chrisswanda/88ade75fc463dcf964c6411d1e9b20f4
|
||||
|
||||
Tutorial with best Explaination:
|
||||
https://medium.com/tangram-visions/what-they-dont-tell-you-about-setting-up-a-wireguard-vpn-46f7bd168478
|
||||
Tutorial with best Explaination:
|
||||
https://medium.com/tangram-visions/what-they-dont-tell-you-about-setting-up-a-wireguard-vpn-46f7bd168478
|
||||
|
||||
*** Create Keys
|
||||
|
||||
#+begin_src bash
|
||||
$ umask 077
|
||||
$ wg genkey | tee host.key | wg pubkey > host.pub
|
||||
#+end_src
|
||||
#+begin_src bash
|
||||
$ umask 077
|
||||
$ wg genkey | tee host.key | wg pubkey > host.pub
|
||||
#+end_src
|
||||
|
||||
*** Setup the Interface
|
||||
|
||||
#+begin_src bash
|
||||
# sudo wg-quick up wg0.conf
|
||||
#+end_src
|
||||
#+begin_src bash
|
||||
# sudo wg-quick up wg0.conf
|
||||
#+end_src
|
||||
|
||||
*** Add Peer
|
||||
|
||||
#+begin_src bash
|
||||
# add peer
|
||||
wg set wg0 peer <client_pubkey> allowed-ips 10.0.0.x/32 persistent-keepalive 25
|
||||
#+begin_src bash
|
||||
# add peer
|
||||
wg set wg0 peer <client_pubkey> allowed-ips 10.0.0.x/32 persistent-keepalive 25
|
||||
|
||||
# verify connection
|
||||
wg
|
||||
# verify connection
|
||||
wg
|
||||
|
||||
# save to config
|
||||
wg-quick save wg0
|
||||
#+end_src
|
||||
# save to config
|
||||
wg-quick save wg0
|
||||
|
||||
#+end_src
|
||||
|
||||
**** Mobile Client
|
||||
|
||||
requires ~qrencode~ package installed:
|
||||
~qrencode -t ansiutf8 < tunnel.conf~
|
||||
where ~tunnel.conf~ is the configuration file for the client, including its private and public keys.
|
||||
requires ~qrencode~ package installed:
|
||||
~qrencode -t ansiutf8 < tunnel.conf~
|
||||
where ~tunnel.conf~ is the configuration file for the client, including its private and public keys.
|
||||
|
||||
*** Start/Stop Interface
|
||||
|
||||
#+begin_src bash
|
||||
# Start/stop interface
|
||||
wg-quick up wg0
|
||||
wg-quick down wg0
|
||||
#+begin_src bash
|
||||
# Start/stop interface
|
||||
wg-quick up wg0
|
||||
wg-quick down wg0
|
||||
|
||||
# Start/stop service
|
||||
$ sudo systemctl stop wg-quick@wg0.service
|
||||
$ sudo systemctl start wg-quick@wg0.service
|
||||
# Start/stop service
|
||||
$ sudo systemctl stop wg-quick@wg0.service
|
||||
$ sudo systemctl start wg-quick@wg0.service
|
||||
|
||||
# Enable service at startup
|
||||
sudo systemctl enable wg-quick@wg0.service
|
||||
#+end_src
|
||||
# Enable service at startup
|
||||
sudo systemctl enable wg-quick@wg0.service
|
||||
#+end_src
|
||||
|
||||
*** Sync the configuration without restarting the interface
|
||||
|
||||
From ~man wg-quick~: The strip command is useful for reloading
|
||||
configuration filesystem without disrupting active sessions:
|
||||
From ~man wg-quick~: The strip command is useful for reloading configuration
|
||||
files without disrupting ac‐ tive sessions:
|
||||
|
||||
#+begin_src bash
|
||||
# wg syncconf wg0 <(wg-quick strip wg0)
|
||||
#+end_src
|
||||
#+begin_src bash
|
||||
# wg syncconf wg0 <(wg-quick strip wg0)
|
||||
#+end_src
|
||||
|
||||
** Alternative Webinterfaces for Managing Clients
|
||||
|
||||
- https://github.com/place1/wg-access-server/
|
||||
- https://github.com/WeeJeWel/wg-easy
|
||||
- https://github.com/subspacecommunity/subspace
|
||||
- https://github.com/vx3r/wg-gen-web
|
||||
- non-web: https://github.com/mullvad/wg-manager
|
||||
- https://github.com/place1/wg-access-server/
|
||||
- https://github.com/WeeJeWel/wg-easy
|
||||
- https://github.com/subspacecommunity/subspace
|
||||
- https://github.com/vx3r/wg-gen-web
|
||||
|
||||
- non-web: https://github.com/mullvad/wg-manager
|
||||
|
|
Loading…
Reference in New Issue