1
0
Fork 0

Compare commits

..

32 Commits

Author SHA1 Message Date
Massaki Archambault 9e2fd9cf24 Update home/.profile
Update home/.vim/vimrc
2024-07-23 10:48:52 -04:00
Massaki Archambault b60e864116 Update home/.local/bin/sway 2024-07-20 00:37:52 -04:00
Massaki Archambault 239ddc36e0 Remove home/.config/sway/autostart.sh
Update home/.profile
Update home/packages.sh
Change attributes of home/.local/bin/autostart-sway
2024-07-17 10:19:37 -04:00
Massaki Archambault 7054fd2356 Update home/.profile 2024-07-17 09:48:54 -04:00
Massaki Archambault 8120ca9476 Add home/.chezmoidata/packages.yaml
Add home/.chezmoidata/units.yaml
Add home/packages.sh
Remove home/units.sh
Add home/units.sh
2024-07-11 23:11:26 -04:00
Massaki Archambault 70f71f3129 Update home/.config/zsh/custom/themes/custom.zsh-theme 2024-07-11 19:00:25 -04:00
Massaki Archambault 2e6cde80e3 Update home/.local/bin/gamemode-start 2024-07-11 19:00:25 -04:00
Massaki Archambault d5075b3fe0 Update home/.vim/vimrc 2024-07-11 13:41:28 -04:00
Massaki Archambault f11b3162db Update README.md
Update home/.vim/vimrc
Update home/setup-vim.sh
2024-07-11 13:07:31 -04:00
Massaki Archambault f5bd05a5d1 Add home/.config/chezmoi/chezmoi.toml
Update home/.zshrc
2024-07-11 09:28:02 -04:00
Massaki Archambault a511d6e55a migrate to chezmoi 2024-07-11 09:28:02 -04:00
Massaki Archambault 8cfe07e2ea add alias and prompt display for kubectl context management 2024-07-11 09:28:02 -04:00
Massaki Archambault 2940f72eff include GOPATH in PATH 2024-07-03 11:56:43 -04:00
Massaki Archambault 85a9762841 add support for tv in sway 2024-06-18 12:09:41 -04:00
Massaki Archambault 53298f2a8c fix bug with setting WLR_DRM_DEVICES 2024-06-11 00:13:38 -04:00
Massaki Archambault 6e8385b8a9 ajust mouseaccel 2024-06-11 00:13:12 -04:00
Massaki Archambault 7b4da2e4cf set xwayland primary output on gamemode start 2024-06-11 00:12:43 -04:00
Massaki Archambault 51efe15fdc configurat pinentry 2024-03-27 12:35:30 -04:00
Massaki Archambault d04efc4ea9 configure kubecolor 2024-03-27 12:34:56 -04:00
Massaki Archambault 3063576c65 fix display & cursor 2024-03-27 12:34:40 -04:00
Massaki Archambault f071cef6a0 tweak sunshine 2024-03-27 12:34:07 -04:00
Massaki Archambault c10b9dfbf8 migrate alacritty config 2024-03-27 12:32:22 -04:00
Massaki Archambault 2763057d77 add sunshine 2023-11-08 23:06:25 -05:00
Massaki Archambault 19b47a2ff7 ajust after installing new gpu 2023-10-01 23:34:08 -04:00
Massaki Archambault 0620b3e48f fix waybar theming 2022-11-15 00:01:53 -05:00
Massaki Archambault bcea58e7cb tweek electoron and chomium flag for hw acceleration 2022-11-07 17:03:15 -05:00
Massaki Archambault 7c2c6487b5 remove usage of egrep 2022-11-07 17:02:49 -05:00
Massaki Archambault 76a138ab04 add kuberntes context indicator to prompt 2022-04-21 00:51:30 -04:00
Massaki Archambault 6fe71f8c1c sway configs 2022-02-03 18:44:21 -05:00
Massaki Archambault 98405b940b update alacritty config format, remove gtk-nocsd 2022-02-03 18:43:25 -05:00
Massaki Archambault 0e01fbc019 switch to alacritty 2021-12-29 21:21:34 -05:00
Massaki Archambault 7bd8a1fef6 switch from redshift to gammastep 2021-12-29 15:07:29 -05:00
108 changed files with 1033 additions and 1007 deletions

1
.chezmoiroot Normal file
View File

@ -0,0 +1 @@
home

15
.gitmodules vendored
View File

@ -1,15 +0,0 @@
[submodule "files/.config/zsh/oh-my-zsh"]
path = files/.config/zsh/oh-my-zsh
url = https://github.com/robbyrussell/oh-my-zsh.git
[submodule "files/.config/zsh/custom/plugins/zsh-syntax-highlighting"]
path = files/.config/zsh/custom/plugins/zsh-syntax-highlighting
url = https://github.com/zsh-users/zsh-syntax-highlighting.git
[submodule "files/.vim/bundle/repos/github.com/Shougo/dein.vim"]
path = files/.vim/bundle/repos/github.com/Shougo/dein.vim
url = https://github.com/Shougo/dein.vim.git
[submodule "files/.config/zsh/custom/plugins/fast-syntax-highlighting"]
path = files/.config/zsh/custom/plugins/fast-syntax-highlighting
url = https://github.com/zdharma/fast-syntax-highlighting.git
[submodule "files/.tmux/plugins/tpm"]
path = files/.tmux/plugins/tpm
url = https://github.com/tmux-plugins/tpm

View File

@ -2,17 +2,8 @@
![xkcd 1806](https://imgs.xkcd.com/comics/borrow_your_laptop.png)
## Install
Clone the repository with the submodules and run the install script to symlink the files your `$HOME` directory:
This repository uses [chezmoi](https://www.chezmoi.io/) to manage the dotfiles. To install the dotfiles, first install `chezmoi` with your package manage and then run:
``` sh
chezmoi init https://code.badjware.dev/badjware/dotfiles.git
chezmoi apply
```
git clone --recurse-submodules https://github.com/badjware/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.sh
```
The install script supports some options. For exemple:
* Don't ask for confirmation: `./install.sh --yes`
* Copy instead of creating symlinks: `./install.sh --copy`
For a full list of options, run `./install.sh --help`.

View File

@ -1,390 +0,0 @@
# An example configuration file for MPD.
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
#
#music_directory "~/music"
#
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
#
#playlist_directory "~/.mpd/playlists"
#
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the
# server is not up. This setting defaults to disabled which will allow
# MPD to accept files over ipc socket (using file:// protocol) or streaming
# files over an accepted protocol.
#
db_file "~/.config/mpd/database"
#
# These settings are the locations for the daemon log files for the daemon.
# These logs are great for troubleshooting, depending on your log_level
# settings.
#
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog.
#
log_file "syslog"
#
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is disabled by
# default and the pid file will not be stored.
#
#pid_file "~/.mpd/pid"
#
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default and the server
# state will be reset on server start up.
#
#state_file "~/.mpd/state"
#
# The location of the sticker database. This is a database which
# manages dynamic information attached to songs.
#
#sticker_file "~/.mpd/sticker.sql"
#
###############################################################################
# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
#
#user "nobody"
#
# This setting specifies the group that MPD will run as. If not specified
# primary group of user specified with "user" setting will be used (if set).
# This is useful if MPD needs to be a member of group such as "audio" to
# have permission to use sound card.
#
#group "nogroup"
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other then the default, any.
# This setting can deny access to control of the daemon. Not effective if
# systemd socket activiation is in use.
#
# For network
#bind_to_address "any"
#
# And for Unix Socket
#bind_to_address "~/.mpd/socket"
#
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#
#port "6600"
#
# This setting controls the type of information which is logged. Available
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
# argument is recommended for troubleshooting, though can quickly stretch
# available resources on limited hardware storage.
#
#log_level "default"
#
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
# of starting playback after startup.
#
#restore_paused "no"
#
# This setting enables MPD to create playlists in a format usable by other
# music players.
#
#save_absolute_paths_in_playlists "no"
#
# This setting defines a list of tag types that will be extracted during the
# audio file discovery process. The complete list of possible values can be
# found in the user manual.
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
#
# This example just enables the "comment" tag without disabling all
# the other supported tags:
#metadata_to_use "+comment"
#
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
#
#auto_update "yes"
#
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself. There is no limit by default.
#
#auto_update_depth "3"
#
###############################################################################
# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks "yes"
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks "yes"
#
###############################################################################
# Zeroconf / Avahi Service Discovery ##########################################
#
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#
#zeroconf_enabled "yes"
#
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network. %h will be replaced with the hostname.
#
#zeroconf_name "Music Player @ %h"
#
###############################################################################
# Permissions #################################################################
#
# If this setting is set, MPD will require password authorization. The password
# setting can be specified multiple times for different password profiles.
#
#password "password@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in.
#
#default_permissions "read,add,control,admin"
#
###############################################################################
# Database #######################################################################
#
#database {
# plugin "proxy"
# host "other.mpd.host"
# port "6600"
#}
# Input #######################################################################
#
input {
plugin "curl"
# proxy "proxy.isp.com:8080"
# proxy_user "user"
# proxy_password "password"
}
#
###############################################################################
# Audio Output ################################################################
#
# MPD supports various audio output types, as well as playing through multiple
# audio outputs at the same time, through multiple audio_output settings
# blocks. Setting this block is optional, though the server will only attempt
# autodetection for one sound card.
#
# An example of an ALSA output:
#
#audio_output {
# type "alsa"
# name "My ALSA Device"
## device "hw:0,0" # optional
## mixer_type "hardware" # optional
## mixer_device "default" # optional
## mixer_control "PCM" # optional
## mixer_index "0" # optional
#}
#
# An example of an OSS output:
#
#audio_output {
# type "oss"
# name "My OSS Device"
## device "/dev/dsp" # optional
## mixer_type "hardware" # optional
## mixer_device "/dev/mixer" # optional
## mixer_control "PCM" # optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
# type "shout"
# encoder "vorbis" # optional
# name "My Shout Stream"
# host "localhost"
# port "8000"
# mount "/mpd.ogg"
# password "hackme"
# quality "5.0"
# bitrate "128"
# format "44100:16:1"
## protocol "icecast2" # optional
## user "source" # optional
## description "My Stream Description" # optional
## url "http://example.com" # optional
## genre "jazz" # optional
## public "no" # optional
## timeout "2" # optional
## mixer_type "software" # optional
#}
#
# An example of a recorder output:
#
#audio_output {
# type "recorder"
# name "My recorder"
# encoder "vorbis" # optional, vorbis or lame
# path "/var/lib/mpd/recorder/mpd.ogg"
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
#}
#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
# type "httpd"
# name "My HTTP Stream"
# encoder "vorbis" # optional, vorbis or lame
# port "8000"
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
# max_clients "0" # optional 0=no limit
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
#
audio_output {
type "pulse"
name "pulse audio"
## server "remote_server" # optional
## sink "remote_server_sink" # optional
}
#
# An example of a winmm output (Windows multimedia API).
#
#audio_output {
# type "winmm"
# name "My WinMM output"
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
# or
## device "0" # optional
## mixer_type "hardware" # optional
#}
#
# An example of an openal output.
#
#audio_output {
# type "openal"
# name "My OpenAL output"
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
#}
#
# An example of an sndio output.
#
#audio_output {
# type "sndio"
# name "sndio output"
# mixer_type "hardware"
#}
#
# An example of an OS X output:
#
#audio_output {
# type "osx"
# name "My OS X Device"
## device "Built-in Output" # optional
## channel_map "-1,-1,0,1" # optional
#}
#
## Example "pipe" output:
#
#audio_output {
# type "pipe"
# name "my pipe"
# command "aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
# command "nc example.org 8765"
# format "44100:16:2"
#}
#
## An example of a null output (for no audio output):
#
#audio_output {
# type "null"
# name "My Null Output"
# mixer_type "none" # optional
#}
#
###############################################################################
# Normalization automatic volume adjustments ##################################
#
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
# chooses between "track" and "album" depending on the current state of
# random playback. If random playback is enabled then "track" mode is used.
# See <http://www.replaygain.org> for more details about ReplayGain.
# This setting is off by default.
#
#replaygain "album"
#
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#
#replaygain_preamp "0"
#
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
# By default this setting is disabled.
#
#replaygain_missing_preamp "0"
#
# This setting enables or disables ReplayGain limiting.
# MPD calculates actual amplification based on the ReplayGain tags
# and replaygain_preamp / replaygain_missing_preamp setting.
# If replaygain_limit is enabled MPD will never amplify audio signal
# above its original level. If replaygain_limit is disabled such amplification
# might occur. By default this setting is enabled.
#
#replaygain_limit "yes"
#
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has
# equal "loudness". This setting is disabled by default.
#
#volume_normalization "no"
#
###############################################################################
# Character Encoding ##########################################################
#
# If file or directory names do not display correctly for your locale then you
# may need to modify this setting.
#
#filesystem_charset "UTF-8"
#
###############################################################################

View File

@ -1,56 +0,0 @@
; Global settings for redshift
[redshift]
; Set the day and night screen temperatures (Neutral is 6500K)
temp-day=5000
temp-night=3000
; Enable/Disable a smooth transition between day and night
; 0 will cause a direct change from day to night screen temperature.
; 1 will gradually increase or decrease the screen temperature.
transition=1
; Set the screen brightness. Default is 1.0.
;brightness=0.9
; It is also possible to use different settings for day and night
; since version 1.8.
;brightness-day=1.0
;brightness-night=0.9
; Set the screen gamma (for all colors, or each color channel
; individually)
;gamma=0.8
;gamma=0.8:0.7:0.8
; This can also be set individually for day and night since
; version 1.10.
;gamma-day=0.8:0.7:0.8
;gamma-night=0.6
; Set the location-provider: 'geoclue2' or 'manual'
; type 'redshift -l list' to see possible values.
; The location provider settings are in a different section.
location-provider=manual
; Set the adjustment-method: 'randr', 'vidmode'
; type 'redshift -m list' to see all possible values.
; 'randr' is the preferred method, 'vidmode' is an older API.
; but works in some cases when 'randr' does not.
; The adjustment method settings are in a different section.
adjustment-method=randr
; Configuration of the location-provider:
; type 'redshift -l PROVIDER:help' to see the settings.
; ex: 'redshift -l manual:help'
; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
; are negative numbers.
[manual]
lat=45.51
lon=-73.59
; Configuration of the adjustment-method
; type 'redshift -m METHOD:help' to see the settings.
; ex: 'redshift -m randr:help'
; In this example, randr is configured to adjust screen 1.
; Note that the numbering starts from 0, so this is actually the
; second screen. If this option is not specified, Redshift will try
; to adjust _all_ screens.
[randr]
;screen=1

View File

@ -1,77 +0,0 @@
#!/bin/bash
client_id='d9c43c00ff914624a02151e43ab5a16c'
client_secret=''
output="$XDG_RUNTIME_DIR/spotify_status"
token=""
get_token() {
echo -n 'Bearer '
if [[ -z "$token" ]]; then
authorization="$(base64 -w 0 <(echo -n "$client_id:$client_secret"))"
token="$(curl -s -H "Authorization: Basic $authorization" -d 'grant_type=client_credentials' https://accounts.spotify.com/api/token | jq --join-output --raw-output .access_token)"
fi
echo -n "$token"
}
track_data=""
get_track_data() {
if [[ -z "$track_data" ]]; then
track_data="$(curl -s -H "Authorization: $(get_token)" "https://api.spotify.com/v1/tracks/$TRACK_ID")"
fi
echo -n "$track_data"
}
get_artists() {
echo "$(get_track_data)" | jq --join-output --raw-output '[.artists[].name] | join(", ")'
}
get_track() {
echo "$(get_track_data)" | jq --join-output --raw-output '.name'
}
play() {
echo "$(get_track)" >$output
echo "$(get_artists) - $(get_track)" >>$output
}
stop() {
echo "$(get_track)" >$output
echo "$(get_artists) - $(get_track)" >>$output
}
pause() {
echo "$(get_track)" >$output
echo "$(get_artists) - $(get_track)" >>$output
}
case "$PLAYER_EVENT" in
"start")
play
;;
"stop")
pause
;;
"load")
;;
"play")
play
;;
"pause")
pause
;;
"preload")
;;
"endoftrack")
stop
;;
"volumeset")
;;
"change")
play
;;
*)
;;
esac

View File

@ -1,7 +0,0 @@
[global]
username = werhudpj20xndltxqfb95b8dw
#password_cmd = pass web/spotify.com | head -n 1
use_keyring = true
backend = pulseaudio
#onevent=~/.config/spotifyd/onevent.sh

View File

@ -1 +0,0 @@
/usr/lib/systemd/user/modprobed-db.service

View File

@ -1 +0,0 @@
/usr/lib/systemd/user/mpd.service

View File

@ -1 +0,0 @@
/usr/lib/systemd/user/pipewire-media-session.service

View File

@ -1,12 +0,0 @@
[Unit]
Description=Redshift display colour temperature adjustment
Documentation=http://jonls.dk/redshift/
Requires=sway-session.target
After=sway-session.target
[Service]
ExecStart=/usr/bin/redshift -m wayland
Restart=always
[Install]
WantedBy=sway-session.target

View File

@ -1 +0,0 @@
/home/marchambault/.config/systemd/user/mako.service

View File

@ -1 +0,0 @@
/home/marchambault/.config/systemd/user/redshift.service

View File

@ -1 +0,0 @@
/home/marchambault/.config/systemd/user/swayidle.service

View File

@ -1 +0,0 @@
/home/marchambault/.config/systemd/user/wob.service

View File

@ -1,84 +0,0 @@
[options]
#allow_bold = true
#audible_bell = false
#clickable_url = true
#dynamic_title = true
font = Monospace 11
font = Hack 11
font = Hack Nerd Font 11
#fullscreen = true
#geometry = 640x480
#icon_name = terminal
#mouse_autohide = false
#scroll_on_output = false
#scroll_on_keystroke = true
# Length of the scrollback buffer, 0 disabled the scrollback buffer
# and setting it to a negative value means "infinite scrollback"
scrollback_lines = 10000
#search_wrap = true
#urgent_on_bell = true
hyperlinks = true
# $BROWSER is used by default if set, with xdg-open as a fallback
#browser = xdg-open
# "system", "on" or "off"
#cursor_blink = system
# "block", "underline" or "ibeam"
#cursor_shape = block
# Hide links that are no longer valid in url select overlay mode
#filter_unmatched_urls = true
# Emit escape sequences for extra modified keys
#modify_other_keys = false
# set size hints for the window
#size_hints = false
# "off", "left" or "right"
#scrollbar = off
[colors]
background = rgba(17, 19, 20, 0.85)
cursor = #BBBBBB
foreground = #EBDBB2
# black
color0 = #2C2F33
color8 = #4B5056
# red
color1 = #B04C50
color9 = #B04C50
# green
color2 = #919652
color10 = #94985B
# yellow
color3 = #E2995C
color11 = #E2995C
# blue
color4 = #66899D
color12 = #66899D
# magenta
color5 = #8D6494
color13 = #8D6494
# cyan
color6 = #527C77
color14 = #527C77
# white
color7 = #A6ABA6
color15 = #DDE3DC
[hints]
#font = Monospace 12
#foreground = #dcdccc
#background = #3f3f3f
#active_foreground = #e68080
#active_background = #3f3f3f
#padding = 2
#border = #3f3f3f
#border_width = 0.5
#roundness = 2.0
# vim: ft=dosini cms=#%s

@ -1 +0,0 @@
Subproject commit a49045342ac15ee04a0926b16752e9b908b0bd9e

@ -1 +0,0 @@
Subproject commit e900ad8bad53501689afcb050456400d7a8466e5

@ -1 +0,0 @@
Subproject commit e8aba1bf5912f89f408eaebd1bc74c25ba32a62c

View File

@ -1,8 +0,0 @@
#!/bin/bash
shopt -s nullglob
for d in /sys/kernel/iommu_groups/*/devices/*; do
n=${d#*/iommu_groups/*}; n=${n%%/*}
printf 'IOMMU Group %s ' "$n"
lspci -nns "${d##*/}"
done;

View File

@ -1,2 +0,0 @@
*
!.gitignore

@ -1 +0,0 @@
Subproject commit 476f6ca69922c9e67c408ae92dff0eb0ccb8ee51

View File

@ -1 +0,0 @@
Subproject commit 6040e7efeb824058f044b2175cc635817e66fd36

View File

View File

@ -0,0 +1,96 @@
packages:
arch:
base:
- etc-update
- pikaur
# archive
- 7-zip-full
- atool
- unrar
- unzip
- zip
# tools
- bind # for `dig`, `nslookup`
- curl
- dos2unix
- fzf
- github-cli
- glances
- keychain
- less
- lm_sensors
- lsd
- neofetch
- neovim
- pass
- sudo
- thefuck
- tree
- vim
- zsh
# devops
- ansible
- aws-cli-v2
- docker
- helm
- k9s
- kubecolor
- kubectl
- kustomize
- terraform
# language / runtimes
- go
- python-pip
- python-virtualenv
# scripting utils
- dialog
- jq
- pv
- python-pyfiglet
base_desktop:
- alacritty
- dex
- feh
- gammastep
- grim
- libappindicator-gtk3
- mako
- qt5-wayland
- qt6-wayland
- sway
- swayidle
- swaylock
- wob
- xdg-desktop-portal-wlr
- ydotool
# pipewire
- pipewire-jack
- pipewire-pulse
- wireplumber
# fonts
- nerd-fonts-git
- otf-font-awesome-5
- ttf-droid
- ttf-google-fonts-git
- ttf-hack
- ttf-liberation
- ttf-material-design-icons-git
- ttf-ms-win10-auto
# theming
- matcha-gtk-theme
- mint-y-icons
# xorg
- xorg-xauth
- xorg-xhost
- xorg-xwayland

View File

@ -0,0 +1,9 @@
units:
system:
- docker.socket
- sshd.service
user:
- swayidle.service
- wob.service
- mako.service
- gammastep

View File

@ -0,0 +1,17 @@
[colors]
#background = "#111314"
#black = "#2C2F33"
#blue = "#66899D"
#cyan = "#527C77"
#foreground = "#EBDBB2"
#green = "#919652"
#magenta = "#8D6494"
#red = "#B04C50"
#white = "#A6ABA6"
#yellow = "#E2995C"
[font.normal]
family = "Hack Nerd Font"
[window]
opacity = 0.85

View File

@ -0,0 +1,2 @@
[git]
autoCommit = true

View File

@ -0,0 +1,12 @@
--use-gl=egl
--ignore-gpu-blocklist
--enable-gpu-rasterization
--enable-zero-copy
--enable-features=UseOzonePlatform
--ozone-platform=wayland
--enable-features=VaapiVideoEncoder
--enable-features=VaapiVideoDecoder
--disable-features=UseChromeOSDirectVideoDecoder

View File

@ -0,0 +1,4 @@
--enable-features=VaapiVideoDecoder
--enable-features=UseOzonePlatform
--ozone-platform=wayland
--enable-features=WebRTCPipeWireCapturer

View File

@ -77,4 +77,10 @@
<family>IPAGothic</family>
</prefer>
</alias>
<alias>
<family>Lucida Console</family>
<prefer>
<family>monospace</family>
</prefer>
</alias>
</fontconfig>

View File

@ -0,0 +1,3 @@
[custom]
start=gamemode-start
end=gamemode-stop

View File

@ -0,0 +1,68 @@
; Global settings
[general]
; Set the day and night screen temperatures
temp-day=5000
temp-night=3000
; Disable the smooth fade between temperatures when Redshift starts and stops.
; 0 will cause an immediate change between screen temperatures.
; 1 will gradually apply the new screen temperature over a couple of seconds.
fade=1
; Solar elevation thresholds.
; By default, Redshift will use the current elevation of the sun to determine
; whether it is daytime, night or in transition (dawn/dusk). When the sun is
; above the degrees specified with elevation-high it is considered daytime and
; below elevation-low it is considered night.
;elevation-high=3
;elevation-low=-6
; Custom dawn/dusk intervals.
; Instead of using the solar elevation, the time intervals of dawn and dusk
; can be specified manually. The times must be specified as HH:MM in 24-hour
; format.
;dawn-time=6:00-7:45
;dusk-time=18:35-20:15
; Set the screen brightness. Default is 1.0.
;brightness=0.9
; It is also possible to use different settings for day and night
; since version 1.8.
;brightness-day=0.7
;brightness-night=0.4
; Set the screen gamma (for all colors, or each color channel
; individually)
;gamma=0.8
;gamma=0.8:0.7:0.8
; This can also be set individually for day and night since
; version 1.10.
gamma-day=1.0
gamma-night=0.8
; Set the location-provider: 'geoclue2', 'manual'.
; The location provider settings are in a different section.
location-provider=manual
; Set the adjustment-method: 'randr', 'vidmode', 'drm', 'wayland'.
; 'randr' is the preferred X11 method, 'vidmode' is an older API
; that works in some cases when 'randr' does not.
; The adjustment method settings are in a different section.
adjustment-method=wayland
; Configuration of the location-provider:
; type 'gammastep -l PROVIDER:help' to see the settings.
; ex: 'gammastep -l manual:help'
; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
; are negative numbers.
[manual]
lat=45.51
lon=-73.59
; Configuration of the adjustment-method
; type 'gammastep -m METHOD:help' to see the settings.
; ex: 'gammastep -m randr:help'
; In this example, randr is configured to adjust only screen 0.
; Note that the numbering starts from 0, so this is actually the first screen.
; If this option is not specified, Redshift will try to adjust _all_ screens.
[randr]
;screen=0

View File

@ -3,7 +3,7 @@ gtk-icon-theme-name=Mint-Y-Orange
gtk-theme-name=Matcha-aliz
gtk-application-prefer-dark-theme=0
gtk-font-name=Cantarell 11
gtk-cursor-theme-name=Breeze_Snow
gtk-cursor-theme-name=Breeze_Light
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_TEXT
gtk-toolbar-icon-size=GTK_ICON_SIZE_MENU

View File

@ -0,0 +1,258 @@
# Daemon config file for PipeWire version "0.3.58" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/pipewire.conf.d/ for system-wide changes or in
# ~/.config/pipewire/pipewire.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#library.name.system = support/libspa-support
#context.data-loop.library.name.system = support/libspa-support
#support.dbus = true
#link.max-buffers = 64
link.max-buffers = 16 # version < 3 clients can't handle more
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#clock.power-of-two-quantum = true
#log.level = 2
#cpu.zero.denormals = false
core.daemon = true # listening for socket connections
core.name = pipewire-0 # core name and socket name
## Properties for the DSP configuration.
#default.clock.rate = 48000
default.clock.allowed-rates = [ 44100 48000 ]
#default.clock.quantum = 1024
default.clock.min-quantum = 16
#default.clock.max-quantum = 2048
#default.clock.quantum-limit = 8192
#default.video.width = 640
#default.video.height = 480
#default.video.rate.num = 25
#default.video.rate.denom = 1
#
#settings.check-quantum = false
#settings.check-rate = false
#
# These overrides are only applied when running in a vm.
vm.overrides = {
default.clock.min-quantum = 1024
}
}
context.spa-libs = {
#<factory-name regex> = <library-name>
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
audio.convert.* = audioconvert/libspa-audioconvert
avb.* = avb/libspa-avb
api.alsa.* = alsa/libspa-alsa
api.v4l2.* = v4l2/libspa-v4l2
api.libcamera.* = libcamera/libspa-libcamera
api.bluez5.* = bluez5/libspa-bluez5
api.vulkan.* = vulkan/libspa-vulkan
api.jack.* = jack/libspa-jack
support.* = support/libspa-support
#videotestsrc = videotestsrc/libspa-videotestsrc
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
}
context.modules = [
#{ name = <module-name>
# [ args = { <key> = <value> ... } ]
# [ flags = [ [ ifexists ] [ nofail ] ]
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
#
# Uses realtime scheduling to boost the audio thread priorities. This uses
# RTKit if the user doesn't have permission to use regular realtime
# scheduling.
{ name = libpipewire-module-rt
args = {
nice.level = -11
#rt.prio = 88
#rt.time.soft = -1
#rt.time.hard = -1
}
flags = [ ifexists nofail ]
}
# The native communication protocol.
{ name = libpipewire-module-protocol-native }
# The profile module. Allows application to access profiler
# and performance data. It provides an interface that is used
# by pw-top and pw-profiler.
{ name = libpipewire-module-profiler }
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata }
# Creates a factory for making devices that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-device-factory }
# Creates a factory for making nodes that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-node-factory }
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node }
# Allows creating devices that run in the context of the
# client. Is used by the session manager.
{ name = libpipewire-module-client-device }
# The portal module monitors the PID of the portal process
# and tags connections with the same PID as portal
# connections.
{ name = libpipewire-module-portal
flags = [ ifexists nofail ]
}
# The access module can perform access checks and block
# new clients.
{ name = libpipewire-module-access
args = {
# access.allowed to list an array of paths of allowed
# apps.
#access.allowed = [
# /usr/bin/pipewire-media-session
#]
# An array of rejected paths.
#access.rejected = [ ]
# An array of paths with restricted access.
#access.restricted = [ ]
# Anything not in the above lists gets assigned the
# access.force permission.
#access.force = flatpak
}
}
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter }
# Makes a factory for creating links between ports.
{ name = libpipewire-module-link-factory }
# Provides factories to make session manager objects.
{ name = libpipewire-module-session-manager }
# Use libcanberra to play X11 Bell
#{ name = libpipewire-module-x11-bell
# args = {
# #sink.name = ""
# #sample.name = "bell-window-system"
# #x11.display = null
# #x11.xauthority = null
# }
#}
]
context.objects = [
#{ factory = <factory-name>
# [ args = { <key> = <value> ... } ]
# [ flags = [ [ nofail ] ]
#}
#
# Creates an object from a PipeWire factory with the given parameters.
# If nofail is given, errors are ignored (and no object is created).
#
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc Spa:Pod:Object:Param:Props:patternType = 1 } }
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test } }
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
# A default dummy driver. This handles nodes marked with the "node.always-driver"
# property when no other driver is currently active. JACK clients need this.
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Dummy-Driver
node.group = pipewire.dummy
priority.driver = 20000
}
}
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Freewheel-Driver
priority.driver = 19000
node.group = pipewire.freewheel
node.freewheel = true
}
}
# This creates a new Source node. It will have input ports
# that you can link, to provide audio for this source.
#{ factory = adapter
# args = {
# factory.name = support.null-audio-sink
# node.name = "my-mic"
# node.description = "Microphone"
# media.class = "Audio/Source/Virtual"
# audio.position = "FL,FR"
# }
#}
# This creates a single PCM source device for the given
# alsa device path hw:0. You can change source to sink
# to make a sink in the same way.
#{ factory = adapter
# args = {
# factory.name = api.alsa.pcm.source
# node.name = "alsa-source"
# node.description = "PCM Source"
# media.class = "Audio/Source"
# api.alsa.path = "hw:0"
# api.alsa.period-size = 1024
# api.alsa.headroom = 0
# api.alsa.disable-mmap = false
# api.alsa.disable-batch = false
# audio.format = "S16LE"
# audio.rate = 48000
# audio.channels = 2
# audio.position = "FL,FR"
# }
#}
]
context.exec = [
#{ path = <program-name> [ args = "<arguments>" ] }
#
# Execute the given program with arguments.
#
# You can optionally start the session manager here,
# but it is better to start it as a systemd service.
# Run the session manager with -h for options.
#
#{ path = "/usr/bin/pipewire-media-session" args = "" }
#
# You can optionally start the pulseaudio-server here as well
# but it is better to start it as a systemd service.
# It can be interesting to start another daemon here that listens
# on another address with the -a option (eg. -a tcp:4713).
#
#{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
]

View File

@ -0,0 +1,3 @@
adapter_name = /dev/dri/by-path/pci-0000:03:00.0-render
output_name = 1
global_prep_cmd = [{"do":"sunshine-prepare","undo":"sunshine-restore"}]

View File

@ -1,5 +1,5 @@
### Vars
set $terminal termite
set $terminal alacritty
### Color configuration
set $color1 #383838
@ -26,7 +26,7 @@ set $ws6 6
set $ws7 7
set $ws8 8
set $ws9 9
set $ws10 10
set $ws10 "TV"
# default workspace
workspace $ws2
@ -91,41 +91,36 @@ output "*" {
background ~/.local/share/wallpaper fill
}
# defaults, laptop mode
workspace $ws1 output eDP-1
workspace $ws2 output eDP-1
workspace $ws3 output VGA-1
workspace $ws4 output VGA-1
workspace $ws5 output VGA-1
workspace $ws6 output VGA-1
workspace $ws7 output VGA-1
workspace $ws8 output VGA-1
workspace $ws9 output VGA-1
workspace $ws10 output VGA-1
set $output1 "Goldstar Company Ltd LG QHD 0x00001F95"
workspace $ws3 output $output1
workspace $ws4 output $output1
workspace $ws5 output $output1
workspace $ws6 output $output1
workspace $ws7 output $output1
workspace $ws8 output $output1
workspace $ws9 output $output1
workspace $ws10 output $output1
set $output1 "LG Electronics LG QHD 0x00051E95"
workspace $ws3 output $output1 VGA-1
workspace $ws4 output $output1 VGA-1
workspace $ws5 output $output1 VGA-1
workspace $ws6 output $output1 VGA-1
workspace $ws7 output $output1 VGA-1
workspace $ws8 output $output1 VGA-1
workspace $ws9 output $output1 VGA-1
workspace sunshine output $output1 VGA-1
output $output1 {
# we need to explicitly select the mode, otherwise
# sway will select 4k 30Hz
mode 2560x1440@60Hz
position 0 270
# we need to explicitly select the mode
mode 2560x1440@144Hz
adaptive_sync on
position 1080 220
}
set $output2 "Ancor Communications Inc ASUS VH238 BALMIB547836"
workspace $ws1 output $output2
workspace $ws2 output $output2
workspace $ws1 output $output2 eDP-1
workspace $ws2 output $output2 eDP-1
output $output2 {
position 0 0
transform 90
position 2560 0
transform 270
}
set $output3 "Sony SONY TV *30 0x01010101"
workspace $ws10 output $output3
output $output3 {
mode 3840x2160@120Hz
adaptive_sync on
disable
}
### Input configuration
@ -157,7 +152,7 @@ input "*" {
# Mouse
accel_profile flat
pointer_accel 0
pointer_accel -0.4
}
### Key bindings
@ -165,7 +160,7 @@ input "*" {
bindsym $mod+Return exec $terminal
# thunar
bindsym $mod+Mod1+Return exec thunar
bindsym $mod+Mod1+Return exec dolphin
# kill focused window
bindsym $mod+Shift+q kill
@ -257,22 +252,25 @@ 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 $ws10
# toggle TV
bindsym $mod+Alt+0 output $output3 toggle
# Assignation
assign [class="^[Ss]lack$"] $ws1
assign [class="^[Dd]iscord$"] $ws1
#assign [class="^looking-glass-client$"] $ws3
# screen
workspace $ws1 output HDMI-2
workspace $ws2 output HDMI-2
workspace $ws3 output HDMI-1
workspace $ws4 output HDMI-1
workspace $ws5 output HDMI-1
workspace $ws6 output HDMI-1
workspace $ws7 output HDMI-1
workspace $ws8 output HDMI-1
workspace $ws9 output HDMI-1
workspace $ws10 output HDMI-1
# workspace $ws1 output HDMI-A-2
# workspace $ws2 output HDMI-A-2
# workspace $ws3 output HDMI-A-1
# workspace $ws4 output HDMI-A-1
# workspace $ws5 output HDMI-A-1
# workspace $ws6 output HDMI-A-1
# workspace $ws7 output HDMI-A-1
# workspace $ws8 output HDMI-A-1
# workspace $ws9 output HDMI-A-1
# workspace $ws10 output HDMI-A-1
# reload the configuration file
bindsym $mod+Shift+r reload
@ -333,6 +331,9 @@ exec /bin/dex -a
# run a terminal
exec $terminal
# setup outputs
exec_always ~/.local/bin/setup-outputs
bar {
swaybar_command waybar
}

View File

@ -0,0 +1,12 @@
[Unit]
Description=Set color temperature of display according to time of day.
Documentation=https://gitlab.com/chinstrap/gammastep
Requires=sway-session.target
After=sway-session.target
[Service]
ExecStart=/usr/bin/gammastep
Restart=always
[Install]
WantedBy=sway-session.target

View File

@ -0,0 +1,15 @@
[Unit]
Description=Sunshine is a self-hosted game stream host for Moonlight.
StartLimitIntervalSec=500
StartLimitBurst=5
PartOf=graphical-session.target
Wants=sway-session.target
After=sway-session.target
[Service]
ExecStart=/usr/bin/sunshine
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=sway-session.target

View File

@ -6,8 +6,8 @@ PartOf=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/swayidle -w \
timeout 600 'echo RELOADAGENT | gpg-connect-agent; swaylock -f' \
timeout 60 'swaymsg "output * dpms off"' \
timeout 1200 'echo RELOADAGENT | gpg-connect-agent; swaylock -f' \
timeout 600 'swaymsg "output * dpms off"' \
resume 'swaymsg "output * dpms on"' \
before-sleep 'echo RELOADAGENT | gpg-connect-agent; swaylock -f'

View File

@ -9,6 +9,11 @@ window#waybar {
color: rgba(235, 219, 178, 1);
}
label, button {
background: inherit;
color: inherit;
}
#workspaces button {
padding: 0 5px;
background: transparent;
@ -32,7 +37,7 @@ window#waybar {
}
#idle_inhibitor, #tray, #custom-vpn {
padding-right: 0;
padding-right: 6px;
min-width: 23px;
color: white;
}

View File

@ -13,3 +13,7 @@ gpg-connect-agent updatestartuptty /bye >/dev/null
# keychain (for ssh agent)
eval $(keychain --eval --quiet --noask --nogui)
export GOPATH="$HOME/go"
export PATH="$PATH:$GOPATH"

View File

@ -8,6 +8,7 @@ alias http-server="python -m http.server"
alias rename="perl-rename"
alias userctl="systemctl --user"
alias lock="swaylock"
alias etckeeper="sudo etckeeper"
# ls
alias ls='lsd --group-dirs=first'
@ -16,13 +17,6 @@ alias la='ls -a'
alias lla='ls -la'
alias lt='ls --tree'
# powershell seems to have trouble with xterm-256color
alias pwsh="TERM=xterm pwsh"
alias powershell="TERM=xterm pwsh"
# remote often does not have the correct terminfo for termite
alias ssh="TERM=xterm-256color ssh"
# network stuff must always be run with sudo anyway
alias wifi-menu="sudo wifi-menu -o"
alias netctl="sudo netctl"
@ -31,4 +25,14 @@ alias netctl="sudo netctl"
alias minicom="docker run --device=/dev/ttyUSB0 -it registry.massaki.ca/minicom"
alias browsh="docker run --rm -it browsh/browsh"
# kube
alias netshoot="kubectl run tmp-shell --rm -i --tty --image nicolaka/netshoot -- /bin/bash"
alias kubectl="kubecolor"
alias k="kubecolor"
alias kctx="kubectl config use-context"
alias kns="kubectl config set-context --current --namespace"
compdef kubecolor=kubectl
# utils
alias convert-doc="libreoffice --headless --invisible --norestore --convert-to "

View File

@ -20,10 +20,77 @@ ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[cyan]%}?"
ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg_bold[white]%}↑"
ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg_bold[white]%}↓"
git_prompt_status () {
local INDEX STATUS
INDEX=$(command git status --porcelain -b 2> /dev/null)
STATUS=""
if $(echo "$INDEX" | command grep -E '^\?\? ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
fi
if $(echo "$INDEX" | grep '^A ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
elif $(echo "$INDEX" | grep '^M ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
elif $(echo "$INDEX" | grep '^MM ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
fi
if $(echo "$INDEX" | grep '^ M ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
elif $(echo "$INDEX" | grep '^AM ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
elif $(echo "$INDEX" | grep '^MM ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
elif $(echo "$INDEX" | grep '^ T ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
fi
if $(echo "$INDEX" | grep '^R ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS"
fi
if $(echo "$INDEX" | grep '^ D ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
elif $(echo "$INDEX" | grep '^D ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
elif $(echo "$INDEX" | grep '^AD ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
fi
if $(command git rev-parse --verify refs/stash >/dev/null 2>&1)
then
STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS"
fi
if $(echo "$INDEX" | grep '^UU ' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
fi
if $(echo "$INDEX" | grep '^## [^ ]\+ .*ahead' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$STATUS"
fi
if $(echo "$INDEX" | grep '^## [^ ]\+ .*behind' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$STATUS"
fi
if $(echo "$INDEX" | grep '^## [^ ]\+ .*diverged' &> /dev/null)
then
STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$STATUS"
fi
echo $STATUS
}
# Evaluate if root user
__is_root() {
if uname -s | egrep '^(CYGWIN)|(MINGW)|(MSYS)' 2>&1 >/dev/null; then
if uname -s | grep -E '^(CYGWIN)|(MINGW)|(MSYS)' 2>&1 >/dev/null; then
id -G | grep 544 2>&1 >/dev/null
else
[ $UID -eq 0 ]
@ -39,63 +106,6 @@ function __get_runtime_dir() {
fi
}
prompt_cmd() {
# exit code
local exit_code=$?
local exit_code_hex=$(printf '(%02x)' $exit_code)
if [[ exit_code -eq 0 ]]; then
exit_code_hex="%{$FG[008]%}$exit_code_hex"
else
exit_code_hex="%{$fg[red]%}$exit_code_hex"
fi
# name@hostname
local user_color="$ZSH_THEME_HOSTNAME_COLOR"
if __is_root; then
local user_color="red"
fi
local name_hostname="%{$FG[$user_color]%}$USER%{$FG[$ZSH_THEME_HOSTNAME_COLOR]%}@%m"
# working directory
local wd_base="${PWD/$HOME/~}"
local wd_post=$(echo "$wd_base" | grep -Eo '(^~|/[^/]+){1,4}$')
local wd_pre=$(echo "${wd_base/$wd_post/}" | grep -Eo '^~|/[^/]{2}' | tr -d '\n' )
local wd="$wd_pre$wd_post"
[[ "$wd" == "" ]] && wd="/"
wd="%{$fg[yellow]%}$wd"
# prompt
if __is_root; then
# #
local prompt="%{$fg[red]%}#"
else
# $
local prompt="%{$FG[008]%}$"
fi
printf "%s %s %s\n%s %s" "$exit_code_hex" "$name_hostname" "$wd" "$prompt" "%{$reset_color%}"
}
rprompt_cmd() {
# git
if git rev-parse --git-dir >/dev/null 2>&1; then
local prompt_info="$(git_prompt_info)"
if [[ -z "$prompt_info" ]]; then
local git_rev="$(git_prompt_short_sha)"
else
local git_rev="$prompt_info"
fi
local prompt_status="$(git_prompt_status)"
if [[ -n "$prompt_status" ]]; then
local git_status="$(printf "%s[%s%s]" "%{$FG[008]%}" "$prompt_status" "%{$reset_color%}%{$FG[008]%}")"
fi
fi
printf "%s %s%s" "$git_rev" "$git_status" "%{$reset_color%}"
}
# Based on http://www.anishathalye.com/2015/02/07/an-asynchronous-shell-prompt/
ASYNC_PROC=0
function precmd() {
@ -131,4 +141,66 @@ function TRAPUSR1() {
zle && zle reset-prompt
}
prompt_cmd() {
# exit code
local exit_code=$?
local exit_code_hex="$(printf '(%02x)' $exit_code)"
if [[ exit_code -eq 0 ]]; then
exit_code_hex="%{$FG[008]%}$exit_code_hex"
else
exit_code_hex="%{$fg[red]%}$exit_code_hex"
fi
# kubernetes context
if which kubectl &>/dev/null; then
local kubectl_context="%{$FG[008]%}[$(kubectl config current-context)|$(kubectl config view --minify -o jsonpath='{..namespace}')] "
fi
# name@hostname
local user_color="$ZSH_THEME_HOSTNAME_COLOR"
if __is_root; then
local user_color="red"
fi
local name_hostname="%{$FG[$user_color]%}$USER%{$FG[$ZSH_THEME_HOSTNAME_COLOR]%}@%m"
# working directory
local work_dir_base="${PWD/$HOME/~}"
local work_dir_post=$(echo "$work_dir_base" | grep -Eo '(^~|/[^/]+){1,4}$')
local work_dir_pre=$(echo "${work_dir_base/$work_dir_post/}" | grep -Eo '^~|/[^/]{2}' | tr -d '\n' )
local work_dir="$work_dir_pre$work_dir_post"
[[ "$work_dir" == "" ]] && work_dir="/"
work_dir="%{$fg[yellow]%}$work_dir"
# prompt
if __is_root; then
# #
local prompt="%{$fg[red]%}#"
else
# $
local prompt="%{$FG[008]%}$"
fi
printf "%s %s %s %s\n%s %s" "$exit_code_hex" "$name_hostname" "$work_dir" "$kubectl_context" "$prompt" "%{$reset_color%}"
}
rprompt_cmd() {
# git
if git rev-parse --git-dir >/dev/null 2>&1; then
local prompt_info="$(git_prompt_info)"
if [[ -z "$prompt_info" ]]; then
local git_rev="$(git_prompt_short_sha)"
else
local git_rev="$prompt_info"
fi
local prompt_status="$(git_prompt_status)"
if [[ -n "$prompt_status" ]]; then
local git_status="$(printf "%s[%s%s]" "%{$FG[008]%}" "$prompt_status" "%{$reset_color%}%{$FG[008]%}")"
fi
fi
printf "%s %s%s" "$git_rev" "$git_status" "%{$reset_color%}"
}
# vim: syn=zsh

197
home/dot_dircolors Normal file
View File

@ -0,0 +1,197 @@
# Configuration file for dircolors, a utility to help you set the
# LS_COLORS environment variable used by GNU ls with the --color option.
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
# Copying and distribution of this file, with or without modification,
# are permitted provided the copyright notice and this notice are preserved.
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# slackware version of dircolors) are recognized but ignored.
# Below are TERM entries, which can be a glob patterns, to match
# against the TERM environment variable to determine if it is colorizable.
TERM Eterm
TERM ansi
TERM *color*
TERM con[0-9]*x[0-9]*
TERM cons25
TERM console
TERM cygwin
TERM *direct*
TERM dtterm
TERM gnome
TERM hurd
TERM jfbterm
TERM konsole
TERM kterm
TERM linux
TERM linux-c
TERM mlterm
TERM putty
TERM rxvt*
TERM screen*
TERM st
TERM terminator
TERM tmux*
TERM vt100
TERM xterm*
TERM alacritty
# Below are the color init strings for the basic file types.
# One can use codes for 256 or more colors supported by modern terminals.
# The default color codes use the capabilities of an 8 color terminal
# with some additional attributes as per the following codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
#NORMAL 00 # no color code at all
#FILE 00 # regular file: use no color at all
RESET 0 # reset to "normal" color
DIR 01;34 # directory
LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)
MULTIHARDLINK 00 # regular file with more than one link
FIFO 40;33 # pipe
SOCK 01;35 # socket
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
MISSING 00 # ... and the files they point to
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
EXEC 01;32
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
# If you use DOS-style suffixes, you may want to uncomment the following:
#.cmd 01;32 # executables (bright green)
#.exe 01;32
#.com 01;32
#.btm 01;32
#.bat 01;32
# Or if you want to colorize scripts even if they do not have the
# executable bit actually set.
#.sh 01;32
#.csh 01;32
# archives or compressed (bright red)
.tar 01;31
.tgz 01;31
.arc 01;31
.arj 01;31
.taz 01;31
.lha 01;31
.lz4 01;31
.lzh 01;31
.lzma 01;31
.tlz 01;31
.txz 01;31
.tzo 01;31
.t7z 01;31
.zip 01;31
.z 01;31
.dz 01;31
.gz 01;31
.lrz 01;31
.lz 01;31
.lzo 01;31
.xz 01;31
.zst 01;31
.tzst 01;31
.bz2 01;31
.bz 01;31
.tbz 01;31
.tbz2 01;31
.tz 01;31
.deb 01;31
.rpm 01;31
.jar 01;31
.war 01;31
.ear 01;31
.sar 01;31
.rar 01;31
.alz 01;31
.ace 01;31
.zoo 01;31
.cpio 01;31
.7z 01;31
.rz 01;31
.cab 01;31
.wim 01;31
.swm 01;31
.dwm 01;31
.esd 01;31
# image formats
.jpg 01;35
.jpeg 01;35
.mjpg 01;35
.mjpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.pgm 01;35
.ppm 01;35
.tga 01;35
.xbm 01;35
.xpm 01;35
.tif 01;35
.tiff 01;35
.png 01;35
.svg 01;35
.svgz 01;35
.mng 01;35
.pcx 01;35
.mov 01;35
.mpg 01;35
.mpeg 01;35
.m2v 01;35
.mkv 01;35
.webm 01;35
.webp 01;35
.ogm 01;35
.mp4 01;35
.m4v 01;35
.mp4v 01;35
.vob 01;35
.qt 01;35
.nuv 01;35
.wmv 01;35
.asf 01;35
.rm 01;35
.rmvb 01;35
.flc 01;35
.avi 01;35
.fli 01;35
.flv 01;35
.gl 01;35
.dl 01;35
.xcf 01;35
.xwd 01;35
.yuv 01;35
.cgm 01;35
.emf 01;35
# https://wiki.xiph.org/MIME_Types_and_File_Extensions
.ogv 01;35
.ogx 01;35
# audio formats
.aac 00;36
.au 00;36
.flac 00;36
.m4a 00;36
.mid 00;36
.midi 00;36
.mka 00;36
.mp3 00;36
.mpc 00;36
.ogg 00;36
.ra 00;36
.wav 00;36
# https://wiki.xiph.org/MIME_Types_and_File_Extensions
.oga 00;36
.opus 00;36
.spx 00;36
.xspf 00;36

7
home/dot_drirc Normal file
View File

@ -0,0 +1,7 @@
<driconf>
<device>
<application name="Default">
<option name="vblank_mode" value="0" />
</application>
</device>
</driconf>

View File

@ -5,7 +5,7 @@ include "/home/marchambault/.gtkrc-2.0.mine"
gtk-theme-name="Matcha-aliz"
gtk-icon-theme-name="Mint-Y-Orange"
gtk-font-name="Cantarell 11"
gtk-cursor-theme-name="Breeze_Snow"
gtk-cursor-theme-name="Breeze_Light"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_TEXT
gtk-toolbar-icon-size=GTK_ICON_SIZE_MENU

View File

@ -2,4 +2,4 @@
[Icon Theme]
Name=Default
Comment=Default Cursor Theme
Inherits=Breeze_Snow
Inherits=Breeze_Light

View File

View File

@ -1,4 +1,4 @@
#/bin/bash
#!/bin/bash
# Autostart sway if we are on tty1
if [ -z "$WAYLAND_DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
@ -10,4 +10,3 @@ if [ -z "$WAYLAND_DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
exec ~/.local/bin/sway 2>"$log_stderr" >"$log_stdout"
fi

View File

@ -0,0 +1,6 @@
#!/bin/bash
xrandr --output "$(xrandr | grep '+0+' | grep -Eo '^DP-[0-9]')" --primary
systemctl --user stop gammastep
sudo systemctl stop docker.service docker.socket

View File

@ -0,0 +1,5 @@
#!/bin/bash
systemctl --user start gammastep
sudo systemctl start docker

View File

@ -0,0 +1,8 @@
#!/bin/bash
shopt -s nullglob
for g in $(find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V); do
echo "IOMMU Group ${g##*/}:"
for d in $g/devices/*; do
echo -e "\t$(lspci -nns ${d##*/})"
done;
done;

View File

View File

@ -0,0 +1,11 @@
#!/bin/bash
# find displays with duplicate output
# for each displays with duplicate output found, disable the HDMI output
# assuming the other output is DisplayPort (prefered)
while read -r display_with_dup_output; do
while read -r hdmi_output; do
# disable the hdmi output
swaymsg "output $hdmi_output disable"
done < <(swaymsg -t get_outputs | jq --raw-output '.[] | [.name, .make + " " + .model] | @tsv' | grep -E "$display_with_dup_output$" | awk '{print $1}' | grep HDMI) # find the hdmi output
done < <(swaymsg -t get_outputs | jq --raw-output '.[] | [.make + " " + .model] | @tsv' | sort | uniq -d) # list all displays with duplicate outputs

View File

View File

@ -0,0 +1,6 @@
#!/bin/bash
pkill --signal SIGUSR1 swaylock
xrandr --output DP-4 --primary
swaymsg output HDMI-A-2 disable
swaymsg workspace sunshine

View File

@ -0,0 +1,5 @@
#!/bin/bash
swaymsg output HDMI-A-2 enable
swaymsg workspace back_and_forth

View File

@ -11,23 +11,30 @@ import-gsettings() {
eval sed -E $expressions "${XDG_CONFIG_HOME:-$HOME/.config}"/gtk-3.0/settings.ini >/dev/null
}
# list DRM device priority
# Set intel graphics as lowest priority
# https://github.com/swaywm/sway/wiki#i-have-a-multi-gpu-setup-like-intelnvidia-or-intelamd-and-sway-does-not-start
export WLR_DRM_DEVICES="$(drm_info -j | jq --raw-output 'to_entries[] | [if .value.driver.desc == "Intel Graphics" then 1 else 0 end, .key] | @tsv' | sort | awk '{printf "%s:", $2}' | sed -e 's/:$//')"
# temporary fix
# # https://github.com/swaywm/sway/issues/4763
export WLR_DRM_NO_ATOMIC=1
# disable hardware cursor (cause mouse to stutter on my setup)
#export WLR_NO_HARDWARE_CURSORS=1
export XDG_CURRENT_DESKTOP=sway
export XDG_SESSION_TYPE=wayland
# Qt
#export DESKTOP_SESSION=gnome
export QT_STYLE_OVERRIDE=gtk
export QT_QPA_PLATFORMTHEME=gtk2
#export QT_STYLE_OVERRIDE=gtk
#export QT_QPA_PLATFORMTHEME=gtk2
export QT_AUTO_SCREEN_SCALE_FACTOR=0
#export QT_QPA_PLATFORM=wayland-egl
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
# GTK
export CLUTTER_BACKEND=wayland
export GTK_CSD=0
if [[ -f /usr/lib/libgtk3-nocsd.so.0 ]]; then
export LD_PRELOAD=/usr/lib/libgtk3-nocsd.so.0
fi
import-gsettings \
gtk-theme:gtk-theme-name \
icon-theme:gtk-icon-theme-name \
@ -38,7 +45,7 @@ export ECORE_EVAS_ENGINE=wayland_egl
export ELM_ENGINE=wayland_egl
# SDL
export SDL_VIDEODRIVER=wayland
#export SDL_VIDEODRIVER=wayland
# Java
export _JAVA_AWT_WM_NONREPARENTING=1

View File

View File

View File

View File

@ -10,11 +10,22 @@ export PAGER=less
export DIFFPROG=meld
# motd
export MOTD_SERVICES="$MOTD_SERVICES docker.socket"
export MOTD_SERVICES="$MOTD_SERVICES docker.service sshd.service"
# java
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dsun.java2d.opengl=true"
export JAVA_FONTS=/usr/share/fonts/TTF
source ~/.local/profile.d/*
local_profile=$HOME/.local/profile.d
if [ -d $local_profile ]; then
for i in $local_profile/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
unset local_profile
autostart-sway

View File

@ -30,6 +30,8 @@ set updatetime=500
" Case insensitive when all lowercase
set ignorecase
set smartcase
" Clipboard
set clipboard^=unnamed,unnamedplus
" Remap arrow keys
noremap <Up> <NOP>
@ -58,7 +60,7 @@ if dein#load_state(pluginpath)
call dein#add('tpope/vim-sensible')
" Colorscheme
call dein#add('ajh17/Spacegray.vim.git')
call dein#add('https://git.sr.ht/~ackyshake/spacegray.vim')
" Interface
call dein#add('itchyny/lightline.vim')

View File

@ -1,5 +1,3 @@
source ~/.config/sway/autostart.sh
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
@ -49,6 +47,9 @@ DISABLE_AUTO_UPDATE="true"
# Would you like to use another custom folder than $ZSH/custom?
ZSH_CUSTOM="$HOME/.config/zsh/custom/"
# https://github.com/ohmyzsh/ohmyzsh/issues/12328#issuecomment-2043492331
zstyle ':omz:alpha:lib:git' async-prompt no
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)

Some files were not shown because too many files have changed in this diff Show More