Compare commits
No commits in common. "master" and "8a5f9b8131339f94a735390185e7105a2b9de799" have entirely different histories.
master
...
8a5f9b8131
|
@ -1,16 +0,0 @@
|
||||||
#!/usr/bin/env bb
|
|
||||||
|
|
||||||
(require
|
|
||||||
'[clojure.string :as str])
|
|
||||||
|
|
||||||
(def user (System/getenv "SUDO_USER"))
|
|
||||||
|
|
||||||
;;executes shell command but throws exception on error
|
|
||||||
(defn- safe-sh [& commands]
|
|
||||||
(as-> (apply shell/sh commands) $
|
|
||||||
(if (= (:exit $) 0) $ (throw (Exception. (:err $))))))
|
|
||||||
|
|
||||||
;;executes command as user calling this script with sudo
|
|
||||||
(defn- safe-sh-as-user [& commands]
|
|
||||||
(safe-sh "su" "-c" (str/join " " (map #(if (str/includes? % " ") (str "\"" % "\"") %) commands)) user))
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
# once there are more types, this should be handled by a parameter
|
||||||
|
__manjaro_desktop
|
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
package="$__object_id"
|
||||||
|
user="$(cat "$__object/parameter/user")"
|
||||||
|
directory="$(cat "$__object/parameter/directory")/$package"
|
||||||
|
|
||||||
|
#install dependencies as root
|
||||||
|
echo "grep makedepends $directory/PKGBUILD > $directory/deps;"
|
||||||
|
echo "source $directory/deps;"
|
||||||
|
echo 'if [[ !(${#makedepends[@]} -eq 0) ]]; then pacman -Sy --noconfirm --needed --asdeps "${makedepends[@]}"; else echo "no make dependencies"; fi;'
|
||||||
|
|
||||||
|
#make package as user
|
||||||
|
echo "su - $user -s /bin/bash -c \"(cd $directory && makepkg -f)\";"
|
||||||
|
|
||||||
|
#install package as root
|
||||||
|
echo "pacman --noconfirm -U $directory/*-x86_64.pkg.*;"
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
package="$__object_id"
|
||||||
|
user="$(cat "$__object/parameter/user")"
|
||||||
|
directory="$(cat "$__object/parameter/directory")"
|
||||||
|
packagedir="$directory/$package"
|
||||||
|
|
||||||
|
export CDIST_ORDER_DEPENDENCY=on
|
||||||
|
__git $packagedir --source https://aur.archlinux.org/$package.git
|
||||||
|
require="__git/$packagedir" __directory $directory --owner $user --group $user --recursive
|
||||||
|
unset CDIST_ORDER_DEPENDENCY
|
|
@ -0,0 +1,2 @@
|
||||||
|
user
|
||||||
|
directory
|
|
@ -0,0 +1,209 @@
|
||||||
|
# This file has been auto-generated by i3-config-wizard(1).
|
||||||
|
# It will not be overwritten, so edit it as you like.
|
||||||
|
#
|
||||||
|
# Should you change your keyboard layout some time, delete
|
||||||
|
# this file and re-run i3-config-wizard(1).
|
||||||
|
#
|
||||||
|
|
||||||
|
# i3 config file (v4)
|
||||||
|
#
|
||||||
|
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||||
|
|
||||||
|
set $mod Mod4
|
||||||
|
|
||||||
|
# Font for window titles. Will also be used by the bar unless a different font
|
||||||
|
# is used in the bar {} block below.
|
||||||
|
font pango:Fira Code Light 8
|
||||||
|
|
||||||
|
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||||
|
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||||
|
#font pango:DejaVu Sans Mono 8
|
||||||
|
|
||||||
|
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
|
||||||
|
# they are included here as an example. Modify as you see fit.
|
||||||
|
|
||||||
|
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
|
||||||
|
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||||
|
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||||
|
|
||||||
|
# NetworkManager is the most popular way to manage wireless networks on Linux,
|
||||||
|
# and nm-applet is a desktop environment-independent system tray GUI for it.
|
||||||
|
exec --no-startup-id nm-applet
|
||||||
|
|
||||||
|
# Use pactl to adjust volume in PulseAudio.
|
||||||
|
set $refresh_i3status killall -SIGUSR1 i3status
|
||||||
|
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
|
||||||
|
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
|
||||||
|
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||||
|
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
||||||
|
|
||||||
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
# custom keybindings
|
||||||
|
bindsym $mod+Return exec alacritty
|
||||||
|
bindsym $mod+y exec passmenu
|
||||||
|
bindsym $mod+x exec emacs
|
||||||
|
bindsym $mod+c exec firefox
|
||||||
|
bindsym Print exec flameshot gui
|
||||||
|
|
||||||
|
# kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
# start dmenu (a program launcher)
|
||||||
|
bindsym $mod+d exec "dmenu_run -nf '#F8F8F2' -nb '#282A36' -sb '#6272A4' -sf '#F8F8F2' -fn 'monospace-10' -p 'dmenu%'"
|
||||||
|
# There also is the (new) i3-dmenu-desktop which only displays applications
|
||||||
|
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
|
||||||
|
# installed.
|
||||||
|
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
|
||||||
|
|
||||||
|
# change focus
|
||||||
|
bindsym $mod+j focus left
|
||||||
|
bindsym $mod+k focus down
|
||||||
|
bindsym $mod+l focus up
|
||||||
|
bindsym $mod+odiaeresis focus right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# move focused window
|
||||||
|
bindsym $mod+Shift+j move left
|
||||||
|
bindsym $mod+Shift+k move down
|
||||||
|
bindsym $mod+Shift+l move up
|
||||||
|
bindsym $mod+Shift+odiaeresis move right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
|
||||||
|
# split in horizontal orientation
|
||||||
|
bindsym $mod+h split h
|
||||||
|
|
||||||
|
# split in vertical orientation
|
||||||
|
bindsym $mod+v split v
|
||||||
|
|
||||||
|
# enter fullscreen mode for the focused container
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
|
||||||
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
|
bindsym $mod+s layout stacking
|
||||||
|
bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# toggle tiling / floating
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
|
# change focus between tiling / floating windows
|
||||||
|
bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
|
# focus the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
# focus the child container
|
||||||
|
#bindsym $mod+d focus child
|
||||||
|
|
||||||
|
# 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 $ws1 "1"
|
||||||
|
set $ws2 "2"
|
||||||
|
set $ws3 "3"
|
||||||
|
set $ws4 "4"
|
||||||
|
set $ws5 "5"
|
||||||
|
set $ws6 "6"
|
||||||
|
set $ws7 "7"
|
||||||
|
set $ws8 "8"
|
||||||
|
set $ws9 "9"
|
||||||
|
set $ws10 "10"
|
||||||
|
|
||||||
|
# switch to workspace
|
||||||
|
bindsym $mod+1 workspace number $ws1
|
||||||
|
bindsym $mod+2 workspace number $ws2
|
||||||
|
bindsym $mod+3 workspace number $ws3
|
||||||
|
bindsym $mod+4 workspace number $ws4
|
||||||
|
bindsym $mod+5 workspace number $ws5
|
||||||
|
bindsym $mod+6 workspace number $ws6
|
||||||
|
bindsym $mod+7 workspace number $ws7
|
||||||
|
bindsym $mod+8 workspace number $ws8
|
||||||
|
bindsym $mod+9 workspace number $ws9
|
||||||
|
bindsym $mod+0 workspace number $ws10
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace number $ws1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace number $ws2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace number $ws3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace number $ws4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace number $ws5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace number $ws6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace number $ws7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace number $ws8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace number $ws9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
# exit i3 (logs you out of your X session)
|
||||||
|
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||||
|
|
||||||
|
# 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 k resize grow height 10 px or 10 ppt
|
||||||
|
bindsym l resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym odiaeresis 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 or $mod+r
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+r mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
|
# Dracula Theme
|
||||||
|
# class border bground text indicator child_border
|
||||||
|
client.focused #6272A4 #6272A4 #F8F8F2 #6272A4 #6272A4
|
||||||
|
client.focused_inactive #44475A #44475A #F8F8F2 #44475A #44475A
|
||||||
|
client.unfocused #282A36 #282A36 #BFBFBF #282A36 #282A36
|
||||||
|
client.urgent #44475A #FF5555 #F8F8F2 #FF5555 #FF5555
|
||||||
|
client.placeholder #282A36 #282A36 #F8F8F2 #282A36 #282A36
|
||||||
|
|
||||||
|
client.background #F8F8F2
|
||||||
|
|
||||||
|
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||||
|
# finds out, if available)
|
||||||
|
bar {
|
||||||
|
status_command i3status
|
||||||
|
|
||||||
|
colors {
|
||||||
|
background #282A36
|
||||||
|
statusline #F8F8F2
|
||||||
|
separator #44475A
|
||||||
|
|
||||||
|
focused_workspace #44475A #44475A #F8F8F2
|
||||||
|
active_workspace #282A36 #44475A #F8F8F2
|
||||||
|
inactive_workspace #282A36 #282A36 #BFBFBF
|
||||||
|
urgent_workspace #FF5555 #FF5555 #F8F8F2
|
||||||
|
binding_mode #FF5555 #FF5555 #F8F8F2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for_window [class="Lazarus" instance="*"] floating enable
|
|
@ -0,0 +1,18 @@
|
||||||
|
[theme]
|
||||||
|
background = "black"
|
||||||
|
primary = "light white"
|
||||||
|
secondary = "light black"
|
||||||
|
title = "green"
|
||||||
|
playing = "green"
|
||||||
|
playing_selected = "light green"
|
||||||
|
playing_bg = "black"
|
||||||
|
highlight = "light white"
|
||||||
|
highlight_bg = "#484848"
|
||||||
|
error = "light white"
|
||||||
|
error_bg = "red"
|
||||||
|
statusbar = "black"
|
||||||
|
statusbar_progress = "green"
|
||||||
|
statusbar_bg = "green"
|
||||||
|
cmdline = "light white"
|
||||||
|
cmdline_bg = "black"
|
||||||
|
search_match = "light red"
|
|
@ -0,0 +1,105 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
# vars
|
||||||
|
user="schrofi"
|
||||||
|
home="/home/schrofi"
|
||||||
|
|
||||||
|
# setup user
|
||||||
|
__user "$user" --home "$home" --shell /bin/fish
|
||||||
|
require="__user/$user" __directory "$home" \
|
||||||
|
--owner "$user" --group "$user" --mode 0755
|
||||||
|
|
||||||
|
__timezone --tz Europe/Vienna
|
||||||
|
|
||||||
|
# install packages
|
||||||
|
__package_update_index
|
||||||
|
require="__package_update_index" __package_upgrade_all
|
||||||
|
|
||||||
|
package_list="
|
||||||
|
alacritty
|
||||||
|
binutils
|
||||||
|
chromium
|
||||||
|
clipmenu
|
||||||
|
cups
|
||||||
|
dbeaver
|
||||||
|
emacs
|
||||||
|
fakeroot
|
||||||
|
feh
|
||||||
|
filezilla
|
||||||
|
firefox
|
||||||
|
fish
|
||||||
|
flameshot
|
||||||
|
galculator
|
||||||
|
gcc
|
||||||
|
gimp
|
||||||
|
git
|
||||||
|
git-lfs
|
||||||
|
gnupg
|
||||||
|
gmp
|
||||||
|
gparted
|
||||||
|
gradle
|
||||||
|
gtk3
|
||||||
|
htop
|
||||||
|
jdk-openjdk
|
||||||
|
jre-openjdk
|
||||||
|
libreoffice
|
||||||
|
libxss
|
||||||
|
manjaro-pipewire
|
||||||
|
mosh
|
||||||
|
mtpfs
|
||||||
|
nss
|
||||||
|
nss-mdns
|
||||||
|
ntfs-3g
|
||||||
|
openvpn
|
||||||
|
pass
|
||||||
|
patch
|
||||||
|
pipewire
|
||||||
|
pipewire-jack
|
||||||
|
pipewire-pulse
|
||||||
|
plasma-browser-integration
|
||||||
|
ranger
|
||||||
|
realtime-privileges
|
||||||
|
signal-desktop
|
||||||
|
strip-nondeterminism
|
||||||
|
udevil
|
||||||
|
unarchiver
|
||||||
|
vlc
|
||||||
|
zerotier-one
|
||||||
|
"
|
||||||
|
|
||||||
|
for package in $package_list
|
||||||
|
do require="__package_upgrade_all" __package $package --state=present
|
||||||
|
done
|
||||||
|
|
||||||
|
# setup dotfiles
|
||||||
|
#__dot_file .config/i3/config --user "$user" --source "$__type/dotfiles/i3/config"
|
||||||
|
__dot_file .config/ncspot/config.toml --user "$user" --source "$__type/dotfiles/ncspot/config.toml"
|
||||||
|
|
||||||
|
# those have to be done in order, install spacemacs
|
||||||
|
export CDIST_ORDER_DEPENDENCY=on
|
||||||
|
require="__package/emacs" __git "$home/.emacs.d" --source https://github.com/syl20bnr/spacemacs
|
||||||
|
__directory "$home/.emacs.d" --owner $user --group $user --recursive
|
||||||
|
unset CDIST_ORDER_DEPENDENCY
|
||||||
|
|
||||||
|
# install aur packages
|
||||||
|
aurdir="$home/Projects/AUR"
|
||||||
|
|
||||||
|
# the installation of the following libraries is failing:
|
||||||
|
# aura-bin
|
||||||
|
# postman-bin
|
||||||
|
# seafile
|
||||||
|
aur_packages="
|
||||||
|
android-studio
|
||||||
|
helvum
|
||||||
|
ncspot
|
||||||
|
rescrobbled-git
|
||||||
|
scrcpy
|
||||||
|
teams
|
||||||
|
"
|
||||||
|
|
||||||
|
export CDIST_ORDER_DEPENDENCY=on
|
||||||
|
for package in $aur_packages
|
||||||
|
do
|
||||||
|
__aur $package --user $user --directory $aurdir
|
||||||
|
done
|
||||||
|
unset CDIST_ORDER_DEPENDENCY
|
|
@ -1,78 +0,0 @@
|
||||||
[env]
|
|
||||||
TERM = "xterm-256color"
|
|
||||||
|
|
||||||
[colors.primary]
|
|
||||||
background = "#24273a"
|
|
||||||
foreground = "#cad3f5"
|
|
||||||
dim_foreground = "#8087a2"
|
|
||||||
bright_foreground = "#cad3f5"
|
|
||||||
|
|
||||||
[colors.cursor]
|
|
||||||
text = "#24273a"
|
|
||||||
cursor = "#f4dbd6"
|
|
||||||
|
|
||||||
[colors.vi_mode_cursor]
|
|
||||||
text = "#24273a"
|
|
||||||
cursor = "#b7bdf8"
|
|
||||||
|
|
||||||
[colors.search.matches]
|
|
||||||
foreground = "#24273a"
|
|
||||||
background = "#a5adcb"
|
|
||||||
|
|
||||||
[colors.search.focused_match]
|
|
||||||
foreground = "#24273a"
|
|
||||||
background = "#a6da95"
|
|
||||||
|
|
||||||
[colors.footer_bar]
|
|
||||||
foreground = "#24273a"
|
|
||||||
background = "#a5adcb"
|
|
||||||
|
|
||||||
[colors.hints.start]
|
|
||||||
foreground = "#24273a"
|
|
||||||
background = "#eed49f"
|
|
||||||
|
|
||||||
[colors.hints.end]
|
|
||||||
foreground = "#24273a"
|
|
||||||
background = "#a5adcb"
|
|
||||||
|
|
||||||
[colors.selection]
|
|
||||||
text = "#24273a"
|
|
||||||
background = "#f4dbd6"
|
|
||||||
|
|
||||||
[colors.normal]
|
|
||||||
black = "#494d64"
|
|
||||||
red = "#ed8796"
|
|
||||||
green = "#a6da95"
|
|
||||||
yellow = "#eed49f"
|
|
||||||
blue = "#8aadf4"
|
|
||||||
magenta = "#f5bde6"
|
|
||||||
cyan = "#8bd5ca"
|
|
||||||
white = "#b8c0e0"
|
|
||||||
|
|
||||||
[colors.bright]
|
|
||||||
black = "#5b6078"
|
|
||||||
red = "#ed8796"
|
|
||||||
green = "#a6da95"
|
|
||||||
yellow = "#eed49f"
|
|
||||||
blue = "#8aadf4"
|
|
||||||
magenta = "#f5bde6"
|
|
||||||
cyan = "#8bd5ca"
|
|
||||||
white = "#a5adcb"
|
|
||||||
|
|
||||||
[colors.dim]
|
|
||||||
black = "#494d64"
|
|
||||||
red = "#ed8796"
|
|
||||||
green = "#a6da95"
|
|
||||||
yellow = "#eed49f"
|
|
||||||
blue = "#8aadf4"
|
|
||||||
magenta = "#f5bde6"
|
|
||||||
cyan = "#8bd5ca"
|
|
||||||
white = "#b8c0e0"
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 16
|
|
||||||
color = "#f5a97f"
|
|
||||||
|
|
||||||
[[colors.indexed_colors]]
|
|
||||||
index = 17
|
|
||||||
color = "#f4dbd6"
|
|
|
@ -1,58 +0,0 @@
|
||||||
#!/usr/bin/env bb
|
|
||||||
|
|
||||||
(require '[babashka.process :refer [shell process exec]])
|
|
||||||
|
|
||||||
;; setup screens
|
|
||||||
;; todo: check if file exists, get home dir
|
|
||||||
(shell "/home/schrofi/.screenlayout/default.sh")
|
|
||||||
|
|
||||||
;; bspwm configuration
|
|
||||||
(defn- bspc [& commands]
|
|
||||||
(apply shell (cons "bspc" commands)))
|
|
||||||
|
|
||||||
(defn- config [key value]
|
|
||||||
(apply bspc (vector "config" key value)))
|
|
||||||
|
|
||||||
;; setup desktops
|
|
||||||
;; todo: handle no external display gracefully
|
|
||||||
|
|
||||||
;; read workspace configuration from config
|
|
||||||
;; format should be like: eDP-1 1 2 3 4 .., HDMI-A-0 X
|
|
||||||
;; where each monitor is defined on a separate line (no commas)
|
|
||||||
(def workspace-config
|
|
||||||
(->> (slurp "/home/schrofi/.screenlayout/default-workspaces")
|
|
||||||
(str/split-lines)
|
|
||||||
(map #(str/split % #" "))))
|
|
||||||
|
|
||||||
(doseq [config workspace-config]
|
|
||||||
(let [[monitor & workspaces] config]
|
|
||||||
(->> workspaces
|
|
||||||
(map str)
|
|
||||||
(concat ["monitor" monitor "-d"])
|
|
||||||
(apply bspc))))
|
|
||||||
|
|
||||||
(config "border_width" "2")
|
|
||||||
(config "window_gap" "12")
|
|
||||||
|
|
||||||
(config "split_ratio" "0.52")
|
|
||||||
(config "borderless_monocle" "true")
|
|
||||||
|
|
||||||
(config "focus_follows_pointer" "true")
|
|
||||||
|
|
||||||
;; todo
|
|
||||||
(bspc "rule" "-a" "alacritty:scratchpad" "-o" "state=floating" "sticky=on" "layer=above")
|
|
||||||
|
|
||||||
;; autostart
|
|
||||||
(defn- if-not-running [service run-command]
|
|
||||||
(if (empty? (:out (shell {:out :string :continue true} "pgrep" "-x" service)))
|
|
||||||
(run-command)))
|
|
||||||
|
|
||||||
(shell "setxkbmap" "de")
|
|
||||||
(if-not-running "sxhkd" #(process "sxhkd"))
|
|
||||||
(if-not-running "nitrogen" #(process "nitrogen" "--restore"))
|
|
||||||
(if-not-running "picom" #(process "picom" "--config" "/home/schrofi/.config/picom/picom.conf"))
|
|
||||||
(if-not-running "polybar" #(process "polybar"))
|
|
||||||
(if-not-running "flameshot" #(process "flameshot"))
|
|
||||||
|
|
||||||
;; start pipewire
|
|
||||||
;;(process "pipewire")
|
|
|
@ -1,3 +0,0 @@
|
||||||
function dhu
|
|
||||||
/home/schrofi/Android/Sdk/extras/google/auto/desktop-head-unit $argv
|
|
||||||
end
|
|
|
@ -1,3 +0,0 @@
|
||||||
function dm
|
|
||||||
/home/schrofi/Projects/android-scripts/drawable-mover/dm.clj -s $(pwd) -n $argv[1] -d $argv[2]
|
|
||||||
end
|
|
|
@ -1,3 +0,0 @@
|
||||||
function erp
|
|
||||||
/home/schrofi/Projects/android-scripts/enterprise-release-publisher/erp.clj -k /home/schrofi/.ssh/loop $argv
|
|
||||||
end
|
|
|
@ -1,3 +0,0 @@
|
||||||
function pap
|
|
||||||
/home/schrofi/Projects/android-scripts/playstore-apk-puller/pap.clj $argv
|
|
||||||
end
|
|
|
@ -1,3 +0,0 @@
|
||||||
function waht
|
|
||||||
/home/schrofi/Projects/android-scripts/wireless-adb-helper-tool/waht.clj $argv
|
|
||||||
end
|
|
|
@ -1,3 +0,0 @@
|
||||||
gtk-icon-theme-name = "Mint-Y"
|
|
||||||
gtk-theme-name = "Dracula-alt-style"
|
|
||||||
gtk-font-name = "Fira Code Regular 10"
|
|
|
@ -1,430 +0,0 @@
|
||||||
#################################
|
|
||||||
# Shadows #
|
|
||||||
#################################
|
|
||||||
|
|
||||||
|
|
||||||
# Enabled client-side shadows on windows. Note desktop windows
|
|
||||||
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
|
||||||
# unless explicitly requested using the wintypes option.
|
|
||||||
#
|
|
||||||
# shadow = false
|
|
||||||
shadow = true;
|
|
||||||
|
|
||||||
# The blur radius for shadows, in pixels. (defaults to 12)
|
|
||||||
# shadow-radius = 12
|
|
||||||
shadow-radius = 7;
|
|
||||||
|
|
||||||
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
|
||||||
# shadow-opacity = .75
|
|
||||||
|
|
||||||
# The left offset for shadows, in pixels. (defaults to -15)
|
|
||||||
# shadow-offset-x = -15
|
|
||||||
shadow-offset-x = -7;
|
|
||||||
|
|
||||||
# The top offset for shadows, in pixels. (defaults to -15)
|
|
||||||
# shadow-offset-y = -15
|
|
||||||
shadow-offset-y = -7;
|
|
||||||
|
|
||||||
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
|
||||||
# shadow-red = 0
|
|
||||||
|
|
||||||
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
|
||||||
# shadow-green = 0
|
|
||||||
|
|
||||||
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
|
||||||
# shadow-blue = 0
|
|
||||||
|
|
||||||
# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
|
|
||||||
# shadow-color = "#000000"
|
|
||||||
|
|
||||||
# Specify a list of conditions of windows that should have no shadow.
|
|
||||||
#
|
|
||||||
# examples:
|
|
||||||
# shadow-exclude = "n:e:Notification";
|
|
||||||
#
|
|
||||||
# shadow-exclude = []
|
|
||||||
shadow-exclude = [
|
|
||||||
"name = 'Notification'",
|
|
||||||
"class_g = 'Conky'",
|
|
||||||
"class_g ?= 'Notify-osd'",
|
|
||||||
"class_g = 'Cairo-clock'",
|
|
||||||
"_GTK_FRAME_EXTENTS@:c"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window.
|
|
||||||
# clip-shadow-above = []
|
|
||||||
|
|
||||||
# Specify a X geometry that describes the region in which shadow should not
|
|
||||||
# be painted in, such as a dock window region. Use
|
|
||||||
# shadow-exclude-reg = "x10+0+0"
|
|
||||||
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
|
||||||
#
|
|
||||||
# shadow-exclude-reg = ""
|
|
||||||
|
|
||||||
# Crop shadow of a window fully on a particular monitor to that monitor. This is
|
|
||||||
# currently implemented using the X RandR extension.
|
|
||||||
# crop-shadow-to-monitor = false
|
|
||||||
|
|
||||||
|
|
||||||
#################################
|
|
||||||
# Fading #
|
|
||||||
#################################
|
|
||||||
|
|
||||||
|
|
||||||
# Fade windows in/out when opening/closing and when opacity changes,
|
|
||||||
# unless no-fading-openclose is used.
|
|
||||||
# fading = false
|
|
||||||
fading = true;
|
|
||||||
|
|
||||||
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
|
||||||
# fade-in-step = 0.028
|
|
||||||
fade-in-step = 0.03;
|
|
||||||
|
|
||||||
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
|
||||||
# fade-out-step = 0.03
|
|
||||||
fade-out-step = 0.03;
|
|
||||||
|
|
||||||
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
|
||||||
# fade-delta = 10
|
|
||||||
|
|
||||||
# Specify a list of conditions of windows that should not be faded.
|
|
||||||
# fade-exclude = []
|
|
||||||
|
|
||||||
# Do not fade on window open/close.
|
|
||||||
# no-fading-openclose = false
|
|
||||||
|
|
||||||
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
|
||||||
# no-fading-destroyed-argb = false
|
|
||||||
|
|
||||||
|
|
||||||
#################################
|
|
||||||
# Transparency / Opacity #
|
|
||||||
#################################
|
|
||||||
|
|
||||||
|
|
||||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
|
||||||
inactive-opacity = 1
|
|
||||||
|
|
||||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
|
||||||
# frame-opacity = 1.0
|
|
||||||
frame-opacity = 0.7;
|
|
||||||
|
|
||||||
# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
|
|
||||||
# inactive-opacity-override = true
|
|
||||||
inactive-opacity-override = false;
|
|
||||||
|
|
||||||
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
|
||||||
# active-opacity = 1.0
|
|
||||||
|
|
||||||
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
|
||||||
# inactive-dim = 0.0
|
|
||||||
|
|
||||||
# Specify a list of conditions of windows that should never be considered focused.
|
|
||||||
# focus-exclude = []
|
|
||||||
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
|
||||||
|
|
||||||
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
|
||||||
# inactive-dim-fixed = 1.0
|
|
||||||
|
|
||||||
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
|
||||||
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
|
||||||
# Note we don't make any guarantee about possible conflicts with other
|
|
||||||
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
|
||||||
# example:
|
|
||||||
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
|
||||||
#
|
|
||||||
# opacity-rule = []
|
|
||||||
|
|
||||||
|
|
||||||
#################################
|
|
||||||
# Corners #
|
|
||||||
#################################
|
|
||||||
|
|
||||||
# Sets the radius of rounded window corners. When > 0, the compositor will
|
|
||||||
# round the corners of windows. Does not interact well with
|
|
||||||
# `transparent-clipping`.
|
|
||||||
corner-radius = 0
|
|
||||||
|
|
||||||
# Exclude conditions for rounded corners.
|
|
||||||
rounded-corners-exclude = [
|
|
||||||
"window_type = 'dock'",
|
|
||||||
"window_type = 'desktop'"
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
#################################
|
|
||||||
# Background-Blurring #
|
|
||||||
#################################
|
|
||||||
|
|
||||||
|
|
||||||
# Parameters for background blurring, see the *BLUR* section for more information.
|
|
||||||
# blur-method =
|
|
||||||
# blur-size = 12
|
|
||||||
#
|
|
||||||
# blur-deviation = false
|
|
||||||
#
|
|
||||||
# blur-strength = 5
|
|
||||||
|
|
||||||
# Blur background of semi-transparent / ARGB windows.
|
|
||||||
# Bad in performance, with driver-dependent behavior.
|
|
||||||
# The name of the switch may change without prior notifications.
|
|
||||||
#
|
|
||||||
# blur-background = false
|
|
||||||
|
|
||||||
# Blur background of windows when the window frame is not opaque.
|
|
||||||
# Implies:
|
|
||||||
# blur-background
|
|
||||||
# Bad in performance, with driver-dependent behavior. The name may change.
|
|
||||||
#
|
|
||||||
# blur-background-frame = false
|
|
||||||
|
|
||||||
|
|
||||||
# Use fixed blur strength rather than adjusting according to window opacity.
|
|
||||||
# blur-background-fixed = false
|
|
||||||
|
|
||||||
|
|
||||||
# Specify the blur convolution kernel, with the following format:
|
|
||||||
# example:
|
|
||||||
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
|
||||||
#
|
|
||||||
# blur-kern = ""
|
|
||||||
blur-kern = "3x3box";
|
|
||||||
|
|
||||||
|
|
||||||
# Exclude conditions for background blur.
|
|
||||||
# blur-background-exclude = []
|
|
||||||
blur-background-exclude = [
|
|
||||||
"window_type = 'dock'",
|
|
||||||
"window_type = 'desktop'",
|
|
||||||
"_GTK_FRAME_EXTENTS@:c"
|
|
||||||
];
|
|
||||||
|
|
||||||
#################################
|
|
||||||
# General Settings #
|
|
||||||
#################################
|
|
||||||
|
|
||||||
# Enable remote control via D-Bus. See the man page for more details.
|
|
||||||
# dbus = true
|
|
||||||
|
|
||||||
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
|
||||||
# daemon = false
|
|
||||||
|
|
||||||
# Specify the backend to use: `xrender`, `glx`, `egl` or `xr_glx_hybrid`.
|
|
||||||
# `xrender` is the default one.
|
|
||||||
#
|
|
||||||
# backend = "glx"
|
|
||||||
backend = "xrender";
|
|
||||||
|
|
||||||
# Use higher precision during rendering, and apply dither when presenting the
|
|
||||||
# rendered screen. Reduces banding artifacts, but might cause performance
|
|
||||||
# degradation. Only works with OpenGL.
|
|
||||||
dithered-present = false;
|
|
||||||
|
|
||||||
# Enable/disable VSync.
|
|
||||||
# vsync = false
|
|
||||||
vsync = true;
|
|
||||||
|
|
||||||
# Try to detect WM windows (a non-override-redirect window with no
|
|
||||||
# child that has 'WM_STATE') and mark them as active.
|
|
||||||
#
|
|
||||||
# mark-wmwin-focused = false
|
|
||||||
mark-wmwin-focused = true;
|
|
||||||
|
|
||||||
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
|
||||||
# mark-ovredir-focused = false
|
|
||||||
mark-ovredir-focused = true;
|
|
||||||
|
|
||||||
# Try to detect windows with rounded corners and don't consider them
|
|
||||||
# shaped windows. The accuracy is not very high, unfortunately.
|
|
||||||
#
|
|
||||||
# detect-rounded-corners = false
|
|
||||||
detect-rounded-corners = true;
|
|
||||||
|
|
||||||
# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
|
|
||||||
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
|
|
||||||
#
|
|
||||||
# detect-client-opacity = false
|
|
||||||
detect-client-opacity = true;
|
|
||||||
|
|
||||||
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
|
||||||
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
|
||||||
# provided that the WM supports it.
|
|
||||||
#
|
|
||||||
# use-ewmh-active-win = false
|
|
||||||
|
|
||||||
# Unredirect all windows if a full-screen opaque window is detected,
|
|
||||||
# to maximize performance for full-screen windows. Known to cause flickering
|
|
||||||
# when redirecting/unredirecting windows.
|
|
||||||
#
|
|
||||||
# unredir-if-possible = false
|
|
||||||
|
|
||||||
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
|
||||||
# unredir-if-possible-delay = 0
|
|
||||||
|
|
||||||
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
|
||||||
# unredir-if-possible-exclude = []
|
|
||||||
|
|
||||||
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
|
||||||
# in the same group focused at the same time.
|
|
||||||
#
|
|
||||||
# detect-transient = false
|
|
||||||
detect-transient = true;
|
|
||||||
|
|
||||||
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
|
||||||
# group focused at the same time. This usually means windows from the same application
|
|
||||||
# will be considered focused or unfocused at the same time.
|
|
||||||
# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
|
|
||||||
#
|
|
||||||
# detect-client-leader = false
|
|
||||||
|
|
||||||
# Resize damaged region by a specific number of pixels.
|
|
||||||
# A positive value enlarges it while a negative one shrinks it.
|
|
||||||
# If the value is positive, those additional pixels will not be actually painted
|
|
||||||
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
|
||||||
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
|
||||||
# Primarily used to fix the line corruption issues of blur,
|
|
||||||
# in which case you should use the blur radius value here
|
|
||||||
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
|
||||||
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
|
||||||
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
|
||||||
#
|
|
||||||
# resize-damage = 1
|
|
||||||
|
|
||||||
# Specify a list of conditions of windows that should be painted with inverted color.
|
|
||||||
# Resource-hogging, and is not well tested.
|
|
||||||
#
|
|
||||||
# invert-color-include = []
|
|
||||||
|
|
||||||
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
|
||||||
# Might cause incorrect opacity when rendering transparent content (but never
|
|
||||||
# practically happened) and may not work with blur-background.
|
|
||||||
# My tests show a 15% performance boost. Recommended.
|
|
||||||
#
|
|
||||||
# glx-no-stencil = false
|
|
||||||
|
|
||||||
# GLX backend: Avoid rebinding pixmap on window damage.
|
|
||||||
# Probably could improve performance on rapid window content changes,
|
|
||||||
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
|
||||||
# Recommended if it works.
|
|
||||||
#
|
|
||||||
# glx-no-rebind-pixmap = false
|
|
||||||
|
|
||||||
# Disable the use of damage information.
|
|
||||||
# This cause the whole screen to be redrawn every time, instead of the part of the screen
|
|
||||||
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
|
||||||
# The opposing option is use-damage
|
|
||||||
#
|
|
||||||
# no-use-damage = false
|
|
||||||
use-damage = true;
|
|
||||||
|
|
||||||
# Use X Sync fence to sync clients' draw calls, to make sure all draw
|
|
||||||
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
|
||||||
# with GLX backend for some users.
|
|
||||||
#
|
|
||||||
# xrender-sync-fence = false
|
|
||||||
|
|
||||||
# GLX backend: Use specified GLSL fragment shader for rendering window
|
|
||||||
# contents. Read the man page for a detailed explanation of the interface.
|
|
||||||
#
|
|
||||||
# window-shader-fg = "default"
|
|
||||||
|
|
||||||
# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar
|
|
||||||
# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg.
|
|
||||||
#
|
|
||||||
# window-shader-fg-rule = [
|
|
||||||
# "my_shader.frag:window_type != 'dock'"
|
|
||||||
# ]
|
|
||||||
|
|
||||||
# Force all windows to be painted with blending. Useful if you
|
|
||||||
# have a glx-fshader-win that could turn opaque pixels transparent.
|
|
||||||
#
|
|
||||||
# force-win-blend = false
|
|
||||||
|
|
||||||
# Do not use EWMH to detect fullscreen windows.
|
|
||||||
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
|
||||||
#
|
|
||||||
# no-ewmh-fullscreen = false
|
|
||||||
|
|
||||||
# Dimming bright windows so their brightness doesn't exceed this set value.
|
|
||||||
# Brightness of a window is estimated by averaging all pixels in the window,
|
|
||||||
# so this could comes with a performance hit.
|
|
||||||
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
|
||||||
#
|
|
||||||
# max-brightness = 1.0
|
|
||||||
|
|
||||||
# Make transparent windows clip other windows like non-transparent windows do,
|
|
||||||
# instead of blending on top of them.
|
|
||||||
#
|
|
||||||
# transparent-clipping = false
|
|
||||||
|
|
||||||
# Specify a list of conditions of windows that should never have transparent
|
|
||||||
# clipping applied. Useful for screenshot tools, where you need to be able to
|
|
||||||
# see through transparent parts of the window.
|
|
||||||
#
|
|
||||||
# transparent-clipping-exclude = []
|
|
||||||
|
|
||||||
# Set the log level. Possible values are:
|
|
||||||
# "trace", "debug", "info", "warn", "error"
|
|
||||||
# in increasing level of importance. Case doesn't matter.
|
|
||||||
# If using the "TRACE" log level, it's better to log into a file
|
|
||||||
# using *--log-file*, since it can generate a huge stream of logs.
|
|
||||||
#
|
|
||||||
# log-level = "debug"
|
|
||||||
log-level = "warn";
|
|
||||||
|
|
||||||
# Set the log file.
|
|
||||||
# If *--log-file* is never specified, logs will be written to stderr.
|
|
||||||
# Otherwise, logs will to written to the given file, though some of the early
|
|
||||||
# logs might still be written to the stderr.
|
|
||||||
# When setting this option from the config file, it is recommended to use an absolute path.
|
|
||||||
#
|
|
||||||
# log-file = "/path/to/your/log/file"
|
|
||||||
|
|
||||||
# Show all X errors (for debugging)
|
|
||||||
# show-all-xerrors = false
|
|
||||||
|
|
||||||
# Write process ID to a file.
|
|
||||||
# write-pid-path = "/path/to/your/log/file"
|
|
||||||
|
|
||||||
# Window type settings
|
|
||||||
#
|
|
||||||
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
|
||||||
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
|
||||||
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
|
||||||
# "tooltip", "notification", "combo", and "dnd".
|
|
||||||
#
|
|
||||||
# Following per window-type options are available: ::
|
|
||||||
#
|
|
||||||
# fade, shadow:::
|
|
||||||
# Controls window-type-specific shadow and fade settings.
|
|
||||||
#
|
|
||||||
# opacity:::
|
|
||||||
# Controls default opacity of the window type.
|
|
||||||
#
|
|
||||||
# focus:::
|
|
||||||
# Controls whether the window of this type is to be always considered focused.
|
|
||||||
# (By default, all window types except "normal" and "dialog" has this on.)
|
|
||||||
#
|
|
||||||
# full-shadow:::
|
|
||||||
# Controls whether shadow is drawn under the parts of the window that you
|
|
||||||
# normally won't be able to see. Useful when the window has parts of it
|
|
||||||
# transparent, and you want shadows in those areas.
|
|
||||||
#
|
|
||||||
# clip-shadow-above:::
|
|
||||||
# Controls whether shadows that would have been drawn above the window should
|
|
||||||
# be clipped. Useful for dock windows that should have no shadow painted on top.
|
|
||||||
#
|
|
||||||
# redir-ignore:::
|
|
||||||
# Controls whether this type of windows should cause screen to become
|
|
||||||
# redirected again after been unredirected. If you have unredir-if-possible
|
|
||||||
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
|
||||||
# you can set this to `true`.
|
|
||||||
#
|
|
||||||
wintypes:
|
|
||||||
{
|
|
||||||
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
|
||||||
dock = { shadow = false; clip-shadow-above = true; }
|
|
||||||
dnd = { shadow = false; }
|
|
||||||
popup_menu = { opacity = 0.8; }
|
|
||||||
dropdown_menu = { opacity = 0.8; }
|
|
||||||
};
|
|
|
@ -1,176 +0,0 @@
|
||||||
;==========================================================
|
|
||||||
;
|
|
||||||
;
|
|
||||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
|
||||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
|
||||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
|
||||||
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
|
||||||
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
|
||||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
|
||||||
;
|
|
||||||
;
|
|
||||||
; To learn more about how to configure Polybar
|
|
||||||
; go to https://github.com/polybar/polybar
|
|
||||||
;
|
|
||||||
; The README contains a lot of information
|
|
||||||
;
|
|
||||||
;==========================================================
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
background = #282a36
|
|
||||||
background-alt = #44475a
|
|
||||||
foreground = #f8f8f2
|
|
||||||
primary = #bd93f9
|
|
||||||
secondary = #ffb86c
|
|
||||||
alert = #ff5555
|
|
||||||
disabled = #6272a4
|
|
||||||
|
|
||||||
[bar/example]
|
|
||||||
width = 100%
|
|
||||||
height = 24pt
|
|
||||||
radius = 6
|
|
||||||
|
|
||||||
; dpi = 96
|
|
||||||
|
|
||||||
background = ${colors.background}
|
|
||||||
foreground = ${colors.foreground}
|
|
||||||
|
|
||||||
line-size = 3pt
|
|
||||||
|
|
||||||
border-size = 4pt
|
|
||||||
border-color = #00000000
|
|
||||||
|
|
||||||
padding-left = 0
|
|
||||||
padding-right = 1
|
|
||||||
|
|
||||||
module-margin = 1
|
|
||||||
|
|
||||||
separator = |
|
|
||||||
separator-foreground = ${colors.disabled}
|
|
||||||
|
|
||||||
font-0 = Fira Code;2
|
|
||||||
|
|
||||||
modules-left = xworkspaces systray xwindow
|
|
||||||
modules-right = filesystem pulseaudio xkeyboard memory cpu wlan eth date
|
|
||||||
|
|
||||||
cursor-click = pointer
|
|
||||||
cursor-scroll = ns-resize
|
|
||||||
|
|
||||||
enable-ipc = true
|
|
||||||
|
|
||||||
; wm-restack = generic
|
|
||||||
wm-restack = bspwm
|
|
||||||
; wm-restack = i3
|
|
||||||
|
|
||||||
; override-redirect = true
|
|
||||||
|
|
||||||
[module/systray]
|
|
||||||
type = internal/tray
|
|
||||||
|
|
||||||
format-margin = 8pt
|
|
||||||
tray-spacing = 16pt
|
|
||||||
|
|
||||||
[module/xworkspaces]
|
|
||||||
type = internal/xworkspaces
|
|
||||||
|
|
||||||
label-active = %name%
|
|
||||||
label-active-background = ${colors.background-alt}
|
|
||||||
label-active-underline= ${colors.primary}
|
|
||||||
label-active-padding = 1
|
|
||||||
|
|
||||||
label-occupied = %name%
|
|
||||||
label-occupied-padding = 1
|
|
||||||
|
|
||||||
label-urgent = %name%
|
|
||||||
label-urgent-background = ${colors.alert}
|
|
||||||
label-urgent-padding = 1
|
|
||||||
|
|
||||||
label-empty = %name%
|
|
||||||
label-empty-foreground = ${colors.disabled}
|
|
||||||
label-empty-padding = 1
|
|
||||||
|
|
||||||
[module/xwindow]
|
|
||||||
type = internal/xwindow
|
|
||||||
label = %title:0:60:...%
|
|
||||||
|
|
||||||
[module/filesystem]
|
|
||||||
type = internal/fs
|
|
||||||
interval = 25
|
|
||||||
|
|
||||||
mount-0 = /
|
|
||||||
|
|
||||||
label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
|
|
||||||
|
|
||||||
label-unmounted = %mountpoint% not mounted
|
|
||||||
label-unmounted-foreground = ${colors.disabled}
|
|
||||||
|
|
||||||
[module/pulseaudio]
|
|
||||||
type = internal/pulseaudio
|
|
||||||
|
|
||||||
format-volume-prefix = "VOL "
|
|
||||||
format-volume-prefix-foreground = ${colors.primary}
|
|
||||||
format-volume = <label-volume>
|
|
||||||
|
|
||||||
label-volume = %percentage%%
|
|
||||||
|
|
||||||
label-muted = muted
|
|
||||||
label-muted-foreground = ${colors.disabled}
|
|
||||||
|
|
||||||
[module/xkeyboard]
|
|
||||||
type = internal/xkeyboard
|
|
||||||
blacklist-0 = num lock
|
|
||||||
|
|
||||||
label-layout = %layout%
|
|
||||||
label-layout-foreground = ${colors.primary}
|
|
||||||
|
|
||||||
label-indicator-padding = 2
|
|
||||||
label-indicator-margin = 1
|
|
||||||
label-indicator-foreground = ${colors.background}
|
|
||||||
label-indicator-background = ${colors.secondary}
|
|
||||||
|
|
||||||
[module/memory]
|
|
||||||
type = internal/memory
|
|
||||||
interval = 2
|
|
||||||
format-prefix = "RAM "
|
|
||||||
format-prefix-foreground = ${colors.primary}
|
|
||||||
label = %percentage_used:2%%
|
|
||||||
|
|
||||||
[module/cpu]
|
|
||||||
type = internal/cpu
|
|
||||||
interval = 2
|
|
||||||
format-prefix = "CPU "
|
|
||||||
format-prefix-foreground = ${colors.primary}
|
|
||||||
label = %percentage:2%%
|
|
||||||
|
|
||||||
[network-base]
|
|
||||||
type = internal/network
|
|
||||||
interval = 5
|
|
||||||
format-connected = <label-connected>
|
|
||||||
format-disconnected = <label-disconnected>
|
|
||||||
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
|
|
||||||
|
|
||||||
[module/wlan]
|
|
||||||
inherit = network-base
|
|
||||||
interface-type = wireless
|
|
||||||
label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip%
|
|
||||||
|
|
||||||
[module/eth]
|
|
||||||
inherit = network-base
|
|
||||||
interface-type = wired
|
|
||||||
label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
|
|
||||||
|
|
||||||
[module/date]
|
|
||||||
type = internal/date
|
|
||||||
interval = 1
|
|
||||||
|
|
||||||
date = %H:%M
|
|
||||||
date-alt = %Y-%m-%d %H:%M:%S
|
|
||||||
|
|
||||||
label = %date%
|
|
||||||
label-foreground = ${colors.primary}
|
|
||||||
|
|
||||||
[settings]
|
|
||||||
screenchange-reload = true
|
|
||||||
pseudo-transparency = true
|
|
||||||
|
|
||||||
; vim:ft=dosini
|
|
|
@ -1,133 +0,0 @@
|
||||||
/*Dracula theme based on the Purple official rofi theme*/
|
|
||||||
|
|
||||||
configuration {
|
|
||||||
show-icons: true;
|
|
||||||
display-drun: "";
|
|
||||||
disable-history: false;
|
|
||||||
}
|
|
||||||
|
|
||||||
* {
|
|
||||||
font: "Fira Code 18";
|
|
||||||
foreground: #f8f8f2;
|
|
||||||
background-color: #282a36;
|
|
||||||
active-background: #6272a4;
|
|
||||||
urgent-background: #ff5555;
|
|
||||||
urgent-foreground: #282a36;
|
|
||||||
selected-background: @active-background;
|
|
||||||
selected-urgent-background: @urgent-background;
|
|
||||||
selected-active-background: @active-background;
|
|
||||||
separatorcolor: @active-background;
|
|
||||||
bordercolor: @active-background;
|
|
||||||
}
|
|
||||||
|
|
||||||
#window {
|
|
||||||
background-color: @background-color;
|
|
||||||
border: 3;
|
|
||||||
border-radius: 6;
|
|
||||||
border-color: @bordercolor;
|
|
||||||
padding: 15;
|
|
||||||
}
|
|
||||||
#mainbox {
|
|
||||||
border: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
#message {
|
|
||||||
border: 0px;
|
|
||||||
border-color: @separatorcolor;
|
|
||||||
padding: 1px;
|
|
||||||
}
|
|
||||||
#textbox {
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#listview {
|
|
||||||
fixed-height: 0;
|
|
||||||
border: 0px;
|
|
||||||
border-color: @bordercolor;
|
|
||||||
spacing: 2px ;
|
|
||||||
scrollbar: false;
|
|
||||||
padding: 2px 0px 0px ;
|
|
||||||
}
|
|
||||||
#element {
|
|
||||||
border: 0;
|
|
||||||
padding: 3px ;
|
|
||||||
}
|
|
||||||
#element.normal.normal {
|
|
||||||
background-color: @background-color;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#element.normal.urgent {
|
|
||||||
background-color: @urgent-background;
|
|
||||||
text-color: @urgent-foreground;
|
|
||||||
}
|
|
||||||
#element.normal.active {
|
|
||||||
background-color: @active-background;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#element.selected.normal {
|
|
||||||
background-color: @selected-background;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#element.selected.urgent {
|
|
||||||
background-color: @selected-urgent-background;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#element.selected.active {
|
|
||||||
background-color: @selected-active-background;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#element.alternate.normal {
|
|
||||||
background-color: @background-color;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#element.alternate.urgent {
|
|
||||||
background-color: @urgent-background;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#element.alternate.active {
|
|
||||||
background-color: @active-background;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#scrollbar {
|
|
||||||
width: 2px ;
|
|
||||||
border: 0;
|
|
||||||
handle-width: 8px ;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
#sidebar {
|
|
||||||
border: 2px dash 0px 0px ;
|
|
||||||
border-color: @separatorcolor;
|
|
||||||
}
|
|
||||||
#button.selected {
|
|
||||||
background-color: @selected-background;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#inputbar {
|
|
||||||
spacing: 0;
|
|
||||||
text-color: @foreground;
|
|
||||||
padding: 1px ;
|
|
||||||
}
|
|
||||||
#case-indicator {
|
|
||||||
spacing: 0;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#entry {
|
|
||||||
spacing: 0;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#prompt {
|
|
||||||
spacing: 0;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
#inputbar {
|
|
||||||
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
|
|
||||||
}
|
|
||||||
#textbox-prompt-colon {
|
|
||||||
expand: false;
|
|
||||||
str: ">";
|
|
||||||
margin: 0px 0.3em 0em 0em ;
|
|
||||||
text-color: @foreground;
|
|
||||||
}
|
|
||||||
element-text, element-icon {
|
|
||||||
background-color: inherit;
|
|
||||||
text-color: inherit;
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
export USER="<username>"
|
|
||||||
export HOME="/home/<username>"
|
|
||||||
|
|
||||||
groups="$(id -Gn "$USER" | tr ' ' ':')"
|
|
||||||
svdir="$HOME/service"
|
|
||||||
|
|
||||||
exec chpst -u "$USER:$groups" runsvdir "$svdir"
|
|
|
@ -1,174 +0,0 @@
|
||||||
#
|
|
||||||
# wm independent hotkeys
|
|
||||||
#
|
|
||||||
|
|
||||||
# terminal emulator
|
|
||||||
super + {alt +,_}Return
|
|
||||||
alacritty{_, --class scratchpad}
|
|
||||||
|
|
||||||
# program launcher
|
|
||||||
super + a
|
|
||||||
rofi -show drun -show-icons > /dev/null 2>&1
|
|
||||||
|
|
||||||
# make sxhkd reload its configuration files:
|
|
||||||
super + Escape
|
|
||||||
pkill -USR1 -x sxhkd
|
|
||||||
|
|
||||||
#
|
|
||||||
# bspwm hotkeys
|
|
||||||
#
|
|
||||||
|
|
||||||
# quit/restart bspwm
|
|
||||||
super + alt + {q,r}
|
|
||||||
bspc {quit,wm -r}
|
|
||||||
|
|
||||||
# close and kill
|
|
||||||
super + {_,shift + }q
|
|
||||||
bspc node -{c,k}
|
|
||||||
|
|
||||||
# browse files
|
|
||||||
super + b
|
|
||||||
alacritty -e ranger
|
|
||||||
|
|
||||||
# alternate between the tiled and monocle layout
|
|
||||||
super + m
|
|
||||||
bspc desktop -l next
|
|
||||||
|
|
||||||
# send the newest marked node to the newest preselected node
|
|
||||||
# super + y
|
|
||||||
# bspc node newest.marked.local -n newest.!automatic.local
|
|
||||||
|
|
||||||
# swap the current node and the biggest window
|
|
||||||
super + g
|
|
||||||
bspc node -s biggest.window
|
|
||||||
|
|
||||||
#
|
|
||||||
# state/flags
|
|
||||||
#
|
|
||||||
|
|
||||||
# set the window state
|
|
||||||
#super + {t,shift + t,s,f}
|
|
||||||
# bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
|
||||||
|
|
||||||
super + space
|
|
||||||
bspc node -t \~fullscreen
|
|
||||||
|
|
||||||
super + p
|
|
||||||
bspc node -t \~floating
|
|
||||||
|
|
||||||
# set the node flags
|
|
||||||
#super + ctrl + {m,x,y,z}
|
|
||||||
# bspc node -g {marked,locked,sticky,private}
|
|
||||||
|
|
||||||
#
|
|
||||||
# focus/swap
|
|
||||||
#
|
|
||||||
|
|
||||||
# focus the node in the given direction
|
|
||||||
super + {_,alt + }{Left,Down,Up,Right}
|
|
||||||
bspc node -{f,s} {west,south,north,east}
|
|
||||||
|
|
||||||
# focus the node for the given path jump
|
|
||||||
super + {p,b,comma,period}
|
|
||||||
bspc node -f @{parent,brother,first,second}
|
|
||||||
|
|
||||||
# focus the next/previous window in the current desktop
|
|
||||||
#super + {_,shift + }c
|
|
||||||
# bspc node -f {next,prev}.local.!hidden.window
|
|
||||||
|
|
||||||
# focus the next/previous desktop in the current monitor
|
|
||||||
super + bracket{left,right}
|
|
||||||
bspc desktop -f {prev,next}.local
|
|
||||||
|
|
||||||
# focus the last node/desktop
|
|
||||||
super + {grave,Tab}
|
|
||||||
bspc {node,desktop} -f last
|
|
||||||
|
|
||||||
# focus the older or newer node in the focus history
|
|
||||||
super + {o,i}
|
|
||||||
bspc wm -h off; \
|
|
||||||
bspc node {older,newer} -f; \
|
|
||||||
bspc wm -h on
|
|
||||||
|
|
||||||
# focus or send to the given desktop
|
|
||||||
#super + {_,shift + }{1-9,0}
|
|
||||||
#bspc {desktop -f,node -d} '^{1-9,10}'
|
|
||||||
|
|
||||||
# desktop hotkeys
|
|
||||||
super + {_,alt + }x
|
|
||||||
bspc {desktop -f,node -d} 1
|
|
||||||
|
|
||||||
super + {_,alt + }c
|
|
||||||
bspc {desktop -f,node -d} 2
|
|
||||||
|
|
||||||
super + {_,alt + }v
|
|
||||||
bspc {desktop -f,node -d} 3
|
|
||||||
|
|
||||||
super + {_,alt + }s
|
|
||||||
bspc {desktop -f,node -d} 4
|
|
||||||
|
|
||||||
super + {_,alt + }d
|
|
||||||
bspc {desktop -f,node -d} 5
|
|
||||||
|
|
||||||
super + {_,alt + }f
|
|
||||||
bspc {desktop -f,node -d} 6
|
|
||||||
|
|
||||||
super + {_,alt + }w
|
|
||||||
bspc {desktop -f,node -d} 7
|
|
||||||
|
|
||||||
super + {_,alt + }e
|
|
||||||
bspc {desktop -f,node -d} 8
|
|
||||||
|
|
||||||
super + {_,alt + }r
|
|
||||||
bspc {desktop -f,node -d} 9
|
|
||||||
|
|
||||||
super + {_,alt + }z
|
|
||||||
bspc {desktop -f,node -d} X
|
|
||||||
|
|
||||||
# media keys
|
|
||||||
XF86Audio{Raise,Lower}Volume
|
|
||||||
pamixer {-i,-d} 5
|
|
||||||
|
|
||||||
XF86AudioPlay
|
|
||||||
playerctl play-pause
|
|
||||||
|
|
||||||
|
|
||||||
# utility
|
|
||||||
Print
|
|
||||||
flameshot gui
|
|
||||||
|
|
||||||
#
|
|
||||||
# preselect
|
|
||||||
#
|
|
||||||
|
|
||||||
# preselect the direction
|
|
||||||
super + ctrl + {h,j,k,l}
|
|
||||||
bspc node -p {west,south,north,east}
|
|
||||||
|
|
||||||
# preselect the ratio
|
|
||||||
super + ctrl + {1-9}
|
|
||||||
bspc node -o 0.{1-9}
|
|
||||||
|
|
||||||
# cancel the preselection for the focused node
|
|
||||||
# super + ctrl + space
|
|
||||||
# bspc node -p cancel
|
|
||||||
|
|
||||||
# cancel the preselection for the focused desktop
|
|
||||||
# super + ctrl + shift + space
|
|
||||||
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
|
|
||||||
|
|
||||||
#
|
|
||||||
# move/resize
|
|
||||||
#
|
|
||||||
|
|
||||||
# expand a window by moving one of its side outward
|
|
||||||
super + alt + {h,j,k,l}
|
|
||||||
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
|
|
||||||
|
|
||||||
# contract a window by moving one of its side inward
|
|
||||||
super + alt + shift + {h,j,k,l}
|
|
||||||
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
|
|
||||||
|
|
||||||
# move a floating window
|
|
||||||
#super + {Left,Down,Up,Right}
|
|
||||||
# bspc node -v {-20 0,0 20,0 -20,20 0}
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.4 MiB |
|
@ -1,97 +0,0 @@
|
||||||
#!/usr/bin/env bb
|
|
||||||
|
|
||||||
(require
|
|
||||||
'[babashka.fs :as fs]
|
|
||||||
'[clojure.string :as str]
|
|
||||||
'[clojure.tools.cli :refer [parse-opts]])
|
|
||||||
|
|
||||||
(def parsed-params (parse-opts *command-line-args* {}))
|
|
||||||
(def script-base-dir (first (:arguments parsed-params)))
|
|
||||||
|
|
||||||
(if (nil? script-base-dir)
|
|
||||||
(throw (Exception. "error: script base dir needs to be provided as first arg!")))
|
|
||||||
|
|
||||||
(def user (System/getenv "SUDO_USER"))
|
|
||||||
(if (nil? user)
|
|
||||||
(throw (Exception. "error: script needs to be executed with sudo!")))
|
|
||||||
|
|
||||||
(def home (str "/home/" user))
|
|
||||||
|
|
||||||
;;todo: import from base.clj
|
|
||||||
(defn- safe-sh [& commands]
|
|
||||||
(as-> (apply shell/sh commands) $
|
|
||||||
(if (= (:exit $) 0) $ (throw (Exception. (:err $))))))
|
|
||||||
|
|
||||||
(defn- safe-sh-as-user [& commands]
|
|
||||||
(safe-sh "su" "-c" (str/join " " (map #(if (str/includes? % " ") (str "\"" % "\"") %) commands)) user))
|
|
||||||
|
|
||||||
(defn- setup-spacemacs []
|
|
||||||
;; installing spacemacs
|
|
||||||
(println "setting up spacemacs..")
|
|
||||||
(-> (fs/file (str home "/.emacs.d")) (fs/delete-tree))
|
|
||||||
(safe-sh-as-user "git" "clone" "https://github.com/syl20bnr/spacemacs" (str home "/.emacs.d"))
|
|
||||||
(println "spacemacs set up"))
|
|
||||||
|
|
||||||
(defn- setup-android-scripts []
|
|
||||||
(let [android-scripts-dir (str home "/Projects/android-scripts")]
|
|
||||||
(-> (fs/file android-scripts-dir) (fs/delete-tree))
|
|
||||||
(fs/create-dirs android-scripts-dir)
|
|
||||||
(safe-sh "chown" "-R" (str user ":" user) android-scripts-dir)
|
|
||||||
(safe-sh-as-user "git" "clone" "ssh://git@git.schro.fi:4242/schrofi/android-scripts.git" android-scripts-dir)))
|
|
||||||
|
|
||||||
(defn- link-config-file [src dest]
|
|
||||||
;; make sure the parent directory of destination file exists
|
|
||||||
(->> (fs/file dest) (fs/parent) (fs/path) (safe-sh-as-user "mkdir" "-p"))
|
|
||||||
(safe-sh-as-user "ln" "-fs" src dest))
|
|
||||||
|
|
||||||
(defn- link-config-files []
|
|
||||||
(println "setting gtk theme..")
|
|
||||||
(safe-sh-as-user "ln" "-fs" (str script-base-dir "/configs/config-files/gtk-config") "~/.gtkrc-2.0")
|
|
||||||
(println "linking wallpaper..")
|
|
||||||
(link-config-file (str script-base-dir "/configs/config-files/wallpaper.jpg") "~/Pictures/wallpaper.jpg")
|
|
||||||
(println "linking config files..")
|
|
||||||
(link-config-file (str script-base-dir "/configs/config-files/bspwm-config") "~/.config/bspwm/bspwmrc")
|
|
||||||
(link-config-file (str script-base-dir "/configs/config-files/picom-config") "~/.config/picom/picom.conf")
|
|
||||||
(link-config-file (str script-base-dir "/configs/config-files/alacritty-config") "~/.config/alacritty/alacritty.toml")
|
|
||||||
(link-config-file (str script-base-dir "/configs/config-files/sxhkd-config") "~/.config/sxhkd/sxhkdrc")
|
|
||||||
(link-config-file (str script-base-dir "/configs/config-files/rofi-config") "~/.config/rofi/config.rasi")
|
|
||||||
(link-config-file (str script-base-dir "/configs/config-files/polybar-config") "~/.config/polybar/config.ini"))
|
|
||||||
|
|
||||||
(defn- setup-system-services []
|
|
||||||
(println "setting up system services..")
|
|
||||||
;;todo: user services
|
|
||||||
(safe-sh "ln" "-fs" "/etc/sv/bluetoothd" "/var/service")
|
|
||||||
(safe-sh "usermod" "-a" "-G" "bluetooth" user))
|
|
||||||
|
|
||||||
(defn- install-fish-functions []
|
|
||||||
;;todo: symlink files in fish-functions to .config/fish/functions
|
|
||||||
)
|
|
||||||
|
|
||||||
(println "applying configuration..")
|
|
||||||
(setup-spacemacs)
|
|
||||||
|
|
||||||
;;change shell to fish
|
|
||||||
(safe-sh "chsh" "-s" "/usr/bin/fish" user)
|
|
||||||
(println "changed shell to fish")
|
|
||||||
|
|
||||||
(println "setting up fish functions..")
|
|
||||||
(install-fish-functions)
|
|
||||||
|
|
||||||
(safe-sh-as-user "git" "config" "--global" "user.name" "Florian Schrofner")
|
|
||||||
(safe-sh-as-user "git" "config" "--global" "user.email" "florian@schro.fi")
|
|
||||||
(println "changed git user data")
|
|
||||||
|
|
||||||
;;creating projects dir
|
|
||||||
(let [projects-dir (str home "/Projects")]
|
|
||||||
(fs/create-dirs projects-dir)
|
|
||||||
(safe-sh "chown" (str user ":" user) "-R" projects-dir)
|
|
||||||
(println "created project directory"))
|
|
||||||
|
|
||||||
(setup-android-scripts)
|
|
||||||
(println "set up android scripts")
|
|
||||||
|
|
||||||
(setup-system-services)
|
|
||||||
(println "set up system services")
|
|
||||||
|
|
||||||
(link-config-files)
|
|
||||||
(println "configuration applied")
|
|
|
@ -1,89 +0,0 @@
|
||||||
#!/usr/bin/env bb
|
|
||||||
|
|
||||||
(require
|
|
||||||
'[babashka.fs :as fs])
|
|
||||||
|
|
||||||
;;todo: import from base.clj
|
|
||||||
(defn- safe-sh [& commands]
|
|
||||||
(as-> (apply shell/sh commands) $
|
|
||||||
(if (= (:exit $) 0) $ (throw (Exception. (:err $))))))
|
|
||||||
|
|
||||||
(def user (System/getenv "SUDO_USER"))
|
|
||||||
(def home (str "/home/" user))
|
|
||||||
|
|
||||||
(safe-sh "xbps-install" "-Sy" "void-repo-nonfree")
|
|
||||||
(safe-sh "xbps-install" "-Sy" "void-repo-multilib")
|
|
||||||
(safe-sh "xbps-install" "-Sy" "void-repo-multilib-nonfree")
|
|
||||||
(safe-sh "xbps-install" "-S")
|
|
||||||
|
|
||||||
(def packages {
|
|
||||||
:base ["atool" "alacritty" "alsa-firmware" "avahi" "bind-utils" "bluez" "bspwm" "chromium" "clojure" "curl" "cups" "cups-filters" "dragon" "emacs-gtk3" "fish-shell" "firefox" "flameshot" "flatpak" "font-firacode" "foomatic-db" "foomatic-db-nonfree" "fuse-exfat" "gimp" "git" "git-annex" "gparted" "guvcview" "htop" "intel-ucode" "inxi" "leiningen" "libgcc-32bit" "libstdc++-32bit" "libdrm-32bit" "libglvnd-32bit" "mtools" "nitrogen" "nss-mdns" "pamixer" "pass" "picom" "playerctl" "polybar" "ranger" "rofi" "Signal-Desktop" "sof-firmware" "sox" "ssr" "steam" "sysfsutils" "sxhkd" "the_silver_searcher" "udevil" "unzip" "wget" "xbindkeys" "xclip" "xz"]
|
|
||||||
:work ["android-udev-rules" "filezilla" "git-lfs" "kotlin-bin" "libcxx" "libbsd" "libcxxabi" "scrcpy"]
|
|
||||||
:intel ["mesa-intel-dri" "libva-intel-driver" "mesa-dri-32bit"]
|
|
||||||
:amd ["mesa-dri-32bit" "mesa-vulkan-radeon" "mesa-vaapi" "mesa-vdpau" "vulkan-loader"]
|
|
||||||
})
|
|
||||||
|
|
||||||
(def flatpak-packages {
|
|
||||||
:work ["com.getpostman.Postman" "com.slack.Slack"]
|
|
||||||
:game ["com.discordapp.Discord"]
|
|
||||||
})
|
|
||||||
|
|
||||||
;;todo: allow to pick specific package sets later
|
|
||||||
|
|
||||||
;;installing normal xbps packages
|
|
||||||
(println "installing packages..")
|
|
||||||
(let [packages-to-install (flatten (vals packages))]
|
|
||||||
(apply safe-sh (concat ["xbps-install" "-y"] packages-to-install)))
|
|
||||||
(println "packages installed")
|
|
||||||
|
|
||||||
;;installing flatpak packages
|
|
||||||
(println "installing flatpak packages..")
|
|
||||||
(safe-sh "flatpak" "remote-add" "--if-not-exists" "flathub" "https://dl.flathub.org/repo/flathub.flatpakrepo")
|
|
||||||
(let [packages-to-install (flatten (vals flatpak-packages))]
|
|
||||||
(apply safe-sh (concat ["flatpak" "install" "flathub" "--noninteractive"] packages-to-install)))
|
|
||||||
(println "flatpak packages installed")
|
|
||||||
|
|
||||||
|
|
||||||
(def toolbox-link "https://download-cdn.jetbrains.com/toolbox/jetbrains-toolbox-2.2.3.20090.tar.gz")
|
|
||||||
|
|
||||||
(def http-toolkit-version "1.19.1")
|
|
||||||
(def http-toolkit-link (str "https://github.com/httptoolkit/httptoolkit-desktop/releases/download/v" http-toolkit-version "/HttpToolkit-linux-x64-" http-toolkit-version ".zip"))
|
|
||||||
|
|
||||||
(defn- install-application [link filename target-directory extract-command]
|
|
||||||
(let [download-file-path (str home "/Downloads/" filename)
|
|
||||||
download-file (fs/file download-file-path)]
|
|
||||||
(safe-sh "wget" "-O" download-file-path link)
|
|
||||||
(fs/delete-tree target-directory)
|
|
||||||
(fs/create-dirs target-directory)
|
|
||||||
(extract-command download-file-path target-directory)
|
|
||||||
(fs/delete download-file)
|
|
||||||
(safe-sh "chown" (str user ":" user) "-R" target-directory)))
|
|
||||||
|
|
||||||
;;installing jetbrains toolbox
|
|
||||||
(defn- install-jetbrains-toolbox []
|
|
||||||
(println "installing jetbrains toolbox..")
|
|
||||||
(let [target-directory (str home "/Applications/JetbrainsToolbox")]
|
|
||||||
(install-application
|
|
||||||
toolbox-link
|
|
||||||
"toolbox.tar.gz"
|
|
||||||
target-directory
|
|
||||||
#(safe-sh "tar" "-xzf" %1 "-C" %2)))
|
|
||||||
(println "jetbrains toolbox installed"))
|
|
||||||
|
|
||||||
;;installing http toolkit
|
|
||||||
(defn- install-http-toolkit []
|
|
||||||
(println "installing http toolkit..")
|
|
||||||
(let [target-directory (str home "/Applications/HttpToolkit")]
|
|
||||||
(install-application
|
|
||||||
http-toolkit-link
|
|
||||||
"httptoolkit.zip"
|
|
||||||
target-directory
|
|
||||||
#(safe-sh "unzip" %1 "-d" %2)))
|
|
||||||
(println "http toolkit installed"))
|
|
||||||
|
|
||||||
(let [applications-dir (str home "/Applications")]
|
|
||||||
(fs/create-dirs applications-dir)
|
|
||||||
(safe-sh "chown" (str user ":" user) "-R" applications-dir))
|
|
||||||
|
|
||||||
(install-jetbrains-toolbox)
|
|
||||||
(install-http-toolkit)
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
# schrofi's system configuration
|
||||||
|
My personal system configuration using cdist on a Manjaro system, specifically tailored towards me and nobody else ¯\_(ツ)_/¯
|
||||||
|
You can use it for inspiration though.
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
1. Install cdist
|
||||||
|
```
|
||||||
|
git clone https://code.ungleich.ch/ungleich-public/cdist.git
|
||||||
|
cd cdist
|
||||||
|
export PATH=$PATH:$(pwd -P)/bin
|
||||||
|
./bin/cdist-build-helper version
|
||||||
|
make install
|
||||||
|
sudo python setup.py install
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Setup SSH root access
|
||||||
|
Add the following line into your `/etc/ssh/sshd_config`
|
||||||
|
```
|
||||||
|
PermitRootLogin yes
|
||||||
|
```
|
||||||
|
|
||||||
|
Then copy your SSH key to the root user at localhost.
|
||||||
|
```
|
||||||
|
ssh-copy-id root@localhost
|
||||||
|
```
|
||||||
|
|
||||||
|
And change the root login back to
|
||||||
|
```
|
||||||
|
PermitRootLogin without-password
|
||||||
|
```
|
||||||
|
|
||||||
|
Finally, start the ssh daemon if it is not running
|
||||||
|
```
|
||||||
|
sudo systemctl start sshd
|
||||||
|
```
|
||||||
|
|
||||||
|
3. CD into this repository and execute the following command:
|
||||||
|
```
|
||||||
|
cdist config -vv -c ./cdist localhost
|
||||||
|
```
|
Loading…
Reference in New Issue